青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

小默

[zz]失業(yè)的娛樂-IDA逆向工程入門(二)

【文章標(biāo)題】: 失業(yè)的娛樂-IDA逆向工程入門(二)-匯編程序(1)
【文章作者】: layper
【作者郵箱】: layper@yahoo.com.cn
【作者主頁】: http://blog.csdn.net/layper/
【下載地址】: 自己搜索下載
【作者聲明】: 只是感興趣,沒有其他目的。失誤之處敬請(qǐng)諸位大俠賜教!
--------------------------------------------------------------------------------
【詳細(xì)過程】
  這個(gè)是第二篇,入門就要從最簡單的開始!!!!!!!!
  
  為什么選匯編程序,因?yàn)樵贗DA逆向出來的就是匯編語言.所以選這個(gè)是最好入門的.在這之前你先準(zhǔn)備好幾樣工具,IDA,masm32匯編工具包并安裝好,
  在radasm設(shè)置好你的路徑.
  
  (一)最簡單的win32匯編程序源碼
  hellow.asm
  
  .386
  .model flat,stdcall
  option casemap:none
  include WINDOWS.INC
  include user32.inc
  include kernel32.inc
  includelib user32.lib
  includelib kernel32.lib
  .data
  sztitle db "你好",0
  sztext db "你好!祝你有個(gè)好的開始!!!",0
  .code
  start:
  invoke MessageBox,NULL,offset sztext,offset sztitle,MB_OK
  invoke ExitProcess,NULL
  end start
  
  
  radasm默認(rèn)編譯.無資源段
  
  
  
  (二)IDA自動(dòng)識(shí)別的反匯編代碼(未優(yōu)化直接保存)
  
  
  
  ;
  ; 賞屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
; ?This file is generated by The Interactive Disassembler (IDA)      ?
; ?Copyright (c) 2006 by DataRescue sa/nv,  <ida@datarescue.com>      ?
; ?Licensed to: Paul Ashton - Blue Lane Technologies (1-user Advanced 03/2006)  ?s
  ; 韌屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
;
  ; Input  MD5   :  10721E858F8E4DA3413D6FBFAE63E7B3
  
  ; File Name   :  D:\lyp\hellow\hellow.exe
  ; Format      :  Portable executable for  80386 (PE)
  ; Imagebase   :  400000
  ; Section 1. (virtual address 00001000)
  ; Virtual size      : 00000026 (   38.)
  ; Section size in file    : 00000200 (  512.)
  ; Offset to raw  data for section: 00000400
  ; Flags  60000020: Text Executable Readable
  ; Alignment  : default
  
      .686p
      .mmx
      .model flat
  
  ; 屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?

  ; Segment type:  Pure code
  ; Segment permissions: Read/Execute
  _text    segment  para public 'CODE' use32
      assume cs:_text
      ;org 401000h
      assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
  
  ; *************** S U B  R O U T  I N E ***************************************
  
  
      public start
  start    proc near
      push  0    ; uType
      push  offset Caption  ; "你好"
      push  offset Text  ; "你好!祝你有個(gè)好的開始!!!"
      push  0    ; hWnd
      call  MessageBoxA
  
      push  0    ; uExitCode
      call  ExitProcess
  
  start    endp
  
  ; [00000006 BYTES: COLLAPSED FUNCTION MessageBoxA. PRESS KEYPAD  "+" TO EXPAND]
  ; [00000006 BYTES: COLLAPSED FUNCTION ExitProcess. PRESS KEYPAD  "+" TO EXPAND]
      align 200h
  _text    ends
  
  ; Section 2. (virtual address 00002000)
  ; Virtual size      : 00000092 (  146.)
  ; Section size in file    : 00000200 (  512.)
  ; Offset to raw  data for section: 00000600
  ; Flags  40000040: Data Readable
  ; Alignment  : default
  ;
  ; Imports from kernel32.dll
  ;
  ; 屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?

  ; Segment type:  Externs
  ; _idata
  ; void __stdcall ExitProcess(UINT uExitCode)
      extrn __imp_ExitProcess:dword ;  DATA XREF: ExitProcessr
  
  ;
  ; Imports from user32.dll
  ;
  ; int __stdcall  MessageBoxA(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType)
      extrn __imp_MessageBoxA:dword ;  DATA XREF: MessageBoxAr
  
  
  ; 屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?

  ; Segment type:  Pure data
  ; Segment permissions: Read
  _rdata    segment  para public 'DATA' use32
      assume cs:_rdata
      ;org 402010h
      db  54h  ; T
      db  20h
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db  6Ah  ; j
      db  20h
      db    0
      db    0
      db    8
      db  20h
      db    0
      db    0
      db  4Ch  ; L
      db  20h
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db  84h  ; ?
    db  20h
      db    0
      db    0
      db    0
      db  20h
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db  76h  ; v
      db  20h
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db  5Ch  ; \
      db  20h
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db  9Dh  ; ?
    db    1
      db  4Dh  ; M
      db  65h  ; e
      db  73h  ; s
      db  73h  ; s
      db  61h  ; a
      db  67h  ; g
      db  65h  ; e
      db  42h  ; B
      db  6Fh  ; o
      db  78h  ; x
      db  41h  ; A
      db    0
      db  75h  ; u
      db  73h  ; s
      db  65h  ; e
      db  72h  ; r
      db  33h  ; 3
      db  32h  ; 2
      db  2Eh  ; .
      db  64h  ; d
      db  6Ch  ; l
      db  6Ch  ; l
      db    0
      db    0
      db  80h  ; ?
      db    0
      db  45h  ; E
      db  78h  ; x
      db  69h  ; i
      db  74h  ; t
      db  50h  ; P
      db  72h  ; r
      db  6Fh  ; o
      db  63h  ; c
      db  65h  ; e
      db  73h  ; s
      db  73h  ; s
      db    0
      db  6Bh  ; k
      db  65h  ; e
      db  72h  ; r
      db  6Eh  ; n
      db  65h  ; e
      db  6Ch  ; l
      db  33h  ; 3
      db  32h  ; 2
      db  2Eh  ; .
      db  64h  ; d
      db  6Ch  ; l
      db  6Ch  ; l
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
      db    0
  _rdata    ends
  
  ; Section 3. (virtual address 00003000)
  ; Virtual size      : 0000001E (   30.)
  ; Section size in file    : 00000200 (  512.)
  ; Offset to raw  data for section: 00000800
  ; Flags  C0000040: Data Readable  Writable
  ; Alignment  : default
  ; 屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?

  ; Segment type:  Pure data
  ; Segment permissions: Read/Write
  _data    segment  para public 'DATA' use32
      assume cs:_data
      ;org 403000h
  ; char Caption[]
  Caption    db '你好',0             ; DATA XREF: start+2o
  ; char Text[]
  Text    db '你好!祝你有個(gè)好的開始!!!',0 ; DATA XREF: start+7o
      align 200h
  _data    ends
  
  
      end start
  用radasm編譯成功,不用修改!!!
  
  (三)比對(duì)文件
  
  (1)模式定義
  相同度:
  
  .386                                                .686p                      ;不同
  無                                                  .mmx
  .model flat,stdcall                                 .model flat        
  option casemap:none                                 無                         ;不同
  
  我的IDA默認(rèn)的為686p模式,model語句無語言模式,無option語句.
  
  (2)inc文件,lib文件去向
  
  源文件中的
  include WINDOWS.INC
  include user32.inc
  include kernel32.inc
  includelib user32.lib
  includelib kernel32.lib
  消失在代碼中,要尋找回他們!!
  這幾個(gè)語句其實(shí)就是連接系統(tǒng)的dll文件的,在反匯編代碼中尋找user32.dll,kernel32.dll,找到這里
  ; Imports from kernel32.dll
  ;
  ; 屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
  
  ; Segment type:  Externs
  ; _idata
  ; void __stdcall ExitProcess(UINT uExitCode)
      extrn __imp_ExitProcess:dword ;  DATA XREF: ExitProcessr
  
  ;
  ; Imports from user32.dll
  ;
  ; int __stdcall  MessageBoxA(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType)
      extrn __imp_MessageBoxA:dword ;  DATA XREF: MessageBoxAr
  
  注釋很明白了,輸入表有兩個(gè)dll在_idata段,include語句的在_idata段找尋.
  
  (3)段定義的變化
  源代碼中段定義是這樣
  .段名
  而反匯編中的段定義
  段名    segment  para public 'DATA' use32
      assume cs:_data
  段名    ends
  傳統(tǒng)的dos匯編寫法.
  
  (4)段的增減
  我們通過比對(duì),發(fā)現(xiàn)段的數(shù)量跟我們?cè)镜牟灰恢?br>  原本我們只有兩個(gè)段
  .data和.code段,而反匯編后變成
  .text和.idata和.rdata和.data段
  經(jīng)過仔細(xì)辨認(rèn)你就可以發(fā)現(xiàn)
  反匯編的text段就是源代碼中的.code段,data段是代碼段,.idata和.rdata是編譯器生成的,而idata是尋找include語句的地方,
  .idata基本沒什么用處,可以刪掉.
  
  (5)數(shù)據(jù)段
  通過比對(duì)發(fā)現(xiàn)基本上一致無什么增加,增加了一個(gè)    align 200h
  刪掉即可.
  
  (6)代碼段變化
  入口函數(shù)變化
                  public start
  start    proc near
      push  0    ; uType
      push  offset Caption  ; "你好"
      push  offset Text  ; "你好!祝你有個(gè)好的開始!!!"
      push  0    ; hWnd
      call  MessageBoxA
  
      push  0    ; uExitCode
      call  ExitProcess
  
  start    endp
  
  。。。。。。
  
  。。。。。。。
  
      end start
  
  注意end start放在了所有段后面
  
  到這里我們大體上看完這個(gè)程序反匯編的大體輪廓。
  
--------------------------------------------------------------------------------
【經(jīng)驗(yàn)總結(jié)】
  (1)模式定義少了語言模式和opention語句,我們要看情況是否加回上去。
  (2)include語句尋找_idata中的dll名,得到常用包含庫文件.
  (3).rdate段不用看,可以刪掉
  (4)入口開始處尋找start.
  
--------------------------------------------------------------------------------
【版權(quán)聲明】: 本文原創(chuàng)于看雪技術(shù)論壇, 轉(zhuǎn)載請(qǐng)注明作者并保持文章的完整, 謝謝!

                                                       2007年03月02日 13:56:14

posted on 2009-12-25 12:10 小默 閱讀(725) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Tools

導(dǎo)航

統(tǒng)計(jì)

留言簿(13)

隨筆分類(287)

隨筆檔案(289)

漏洞

搜索

積分與排名

最新評(píng)論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品1区| 久久影视精品| 亚洲国产你懂的| 亚洲毛片播放| 久久亚洲影院| 国产亚洲人成a一在线v站| 99热精品在线观看| 久久午夜视频| 一本久久综合亚洲鲁鲁五月天| 9色国产精品| 午夜激情一区| 欧美激情女人20p| 国产精品亚洲综合一区在线观看| 国产一级一区二区| 亚洲欧洲另类国产综合| 欧美福利在线观看| 西西人体一区二区| 亚洲国产成人av| 亚洲精品一二三区| 99视频精品全部免费在线| 久久精品国产成人| 欧美理论电影网| 激情欧美一区二区三区| 一区二区欧美在线| 欧美国产视频一区二区| 欧美在线视频不卡| 久久久不卡网国产精品一区| 欧美jizz19性欧美| 精品不卡一区| 麻豆精品在线播放| 香蕉久久夜色精品国产| 国产麻豆日韩| 一区二区三区视频观看| 欧美成人r级一区二区三区| 午夜影院日韩| 亚洲经典在线| 亚洲高清在线精品| 欧美激情视频在线播放| 激情综合在线| 欧美激情 亚洲a∨综合| 欧美久久电影| aa亚洲婷婷| 在线中文字幕日韩| 欧美日韩专区在线| 午夜久久久久| 久久成人免费网| 一区二区三区在线不卡| 免费在线看成人av| 欧美高清在线精品一区| 亚洲在线电影| 国产精品黄视频| 亚洲午夜精品| 麻豆精品视频| 亚洲在线视频| 欧美视频在线一区二区三区| 久久国产精品久久久久久| 美女精品网站| 亚洲成人直播| 国内久久精品| 小处雏高清一区二区三区 | 亚洲精品欧美一区二区三区| 亚洲国产精品一区在线观看不卡| 国产午夜亚洲精品理论片色戒| 日韩一区二区精品| 夜夜夜久久久| 欧美福利一区二区三区| 嫩草国产精品入口| 在线观看91久久久久久| 西瓜成人精品人成网站| 亚洲日本在线观看| 欧美一区影院| 欧美日韩在线播放| 亚洲一区二区精品在线| 欧美天堂亚洲电影院在线观看| 亚洲成色最大综合在线| 亚洲午夜激情| 亚洲经典自拍| 国内偷自视频区视频综合| 欧美精品久久久久久| 久久成人18免费网站| 亚洲人成在线观看网站高清| 欧美一区二区日韩一区二区| 亚洲精品中文字| 久久久欧美一区二区| 国产精品稀缺呦系列在线| 欧美成人一区二免费视频软件| 国产一区在线视频| 日韩视频不卡中文| 99re视频这里只有精品| 欧美午夜无遮挡| 欧美大片网址| 黄色在线一区| 久久久精品tv| 亚洲国产成人不卡| 欧美韩国日本一区| 欧美激情第8页| 伊人成人在线视频| 久久久精品国产99久久精品芒果| 亚洲综合社区| 蜜臀av性久久久久蜜臀aⅴ| 亚洲精选一区| 久久在线精品| 久久久欧美精品sm网站| 国产精品一区免费观看| 亚洲精品久久久蜜桃| 免费看的黄色欧美网站| 午夜精品在线看| 国产乱码精品一区二区三区av| 亚洲一级在线观看| 一本色道久久综合狠狠躁的推荐| 欧美一级二区| 国产精品久久久久久久app| 久久天天狠狠| 国内精品美女在线观看| 久久久久久久久蜜桃| 老司机精品久久| 在线视频欧美日韩精品| 韩国av一区二区三区四区| 日韩一区二区电影网| 欧美综合第一页| 性亚洲最疯狂xxxx高清| 欧美国产视频在线观看| 久久久久久久久久久久久9999| 欧美风情在线观看| 免费在线观看日韩欧美| 国产区在线观看成人精品| 日韩网站在线看片你懂的| 亚洲第一福利在线观看| 午夜精品久久久久久久99樱桃| 99国产精品久久久久久久成人热| 欧美在线观看一区二区| 亚洲国产成人一区| 午夜精品一区二区三区在线| 欧美日韩你懂的| 亚洲欧美日韩一区二区在线| 亚洲黄色免费电影| 一本色道久久综合亚洲精品小说| 国产精品分类| 欧美日韩三区| 欧美成人免费在线观看| 亚洲免费视频在线观看| 亚洲国产精品欧美一二99| 久久夜色精品国产欧美乱| 亚洲影院高清在线| 亚洲激情自拍| 亚洲日本va午夜在线电影| 在线观看中文字幕亚洲| 国产一区二区按摩在线观看| 国产精品美女久久| 在线免费观看日本欧美| 永久域名在线精品| 国产一区二区在线免费观看| 欧美午夜精品电影| 欧美在线观看一二区| a4yy欧美一区二区三区| 亚洲一区二区视频| 美日韩免费视频| 欧美不卡高清| 欧美日韩在线不卡| 亚洲国产综合视频在线观看| av成人免费在线| 91久久亚洲| 欧美亚洲一区二区在线| 欧美一区二区精美| 黄色亚洲大片免费在线观看| 久久亚洲综合网| 亚洲看片免费| 欧美在线观看视频一区二区| 伊人成人开心激情综合网| 欧美精品www| 亚洲天堂黄色| 欧美黄色免费| 亚洲欧美大片| 久久精品2019中文字幕| 亚洲国产综合在线看不卡| 欧美理论在线播放| 性伦欧美刺激片在线观看| 亚洲高清视频在线| 午夜性色一区二区三区免费视频| 一区在线免费| 国产精品爱啪在线线免费观看| 久久国产直播| 一区二区三区免费网站| 久久综合九色九九| 亚洲一区二区三区四区五区黄| 国产在线不卡精品| 欧美午夜片欧美片在线观看| 久久亚洲欧洲| 性欧美xxxx大乳国产app| 亚洲精品日产精品乱码不卡| 开心色5月久久精品| 午夜精品福利在线| 99在线热播精品免费| 永久免费毛片在线播放不卡| 国产精品午夜在线观看| 欧美精品一卡二卡| 免费成人av在线看| 久久久国产一区二区三区| 亚洲综合第一| 亚洲一区二区在线|