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

小默

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

【文章標題】: 失業的娛樂-IDA逆向工程入門(二)-匯編程序(1)
【文章作者】: layper
【作者郵箱】: layper@yahoo.com.cn
【作者主頁】: http://blog.csdn.net/layper/
【下載地址】: 自己搜索下載
【作者聲明】: 只是感興趣,沒有其他目的。失誤之處敬請諸位大俠賜教!
--------------------------------------------------------------------------------
【詳細過程】
  這個是第二篇,入門就要從最簡單的開始!!!!!!!!
  
  為什么選匯編程序,因為在IDA逆向出來的就是匯編語言.所以選這個是最好入門的.在這之前你先準備好幾樣工具,IDA,masm32匯編工具包并安裝好,
  在radasm設置好你的路徑.
  
  (一)最簡單的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 "你好!祝你有個好的開始!!!",0
  .code
  start:
  invoke MessageBox,NULL,offset sztext,offset sztitle,MB_OK
  invoke ExitProcess,NULL
  end start
  
  
  radasm默認編譯.無資源段
  
  
  
  (二)IDA自動識別的反匯編代碼(未優化直接保存)
  
  
  
  ;
  ; 賞屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
; ?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  ; "你好!祝你有個好的開始!!!"
      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 '你好!祝你有個好的開始!!!',0 ; DATA XREF: start+7o
      align 200h
  _data    ends
  
  
      end start
  用radasm編譯成功,不用修改!!!
  
  (三)比對文件
  
  (1)模式定義
  相同度:
  
  .386                                                .686p                      ;不同
  無                                                  .mmx
  .model flat,stdcall                                 .model flat        
  option casemap:none                                 無                         ;不同
  
  我的IDA默認的為686p模式,model語句無語言模式,無option語句.
  
  (2)inc文件,lib文件去向
  
  源文件中的
  include WINDOWS.INC
  include user32.inc
  include kernel32.inc
  includelib user32.lib
  includelib kernel32.lib
  消失在代碼中,要尋找回他們!!
  這幾個語句其實就是連接系統的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
  
  注釋很明白了,輸入表有兩個dll在_idata段,include語句的在_idata段找尋.
  
  (3)段定義的變化
  源代碼中段定義是這樣
  .段名
  而反匯編中的段定義
  段名    segment  para public 'DATA' use32
      assume cs:_data
  段名    ends
  傳統的dos匯編寫法.
  
  (4)段的增減
  我們通過比對,發現段的數量跟我們原本的不一致
  原本我們只有兩個段
  .data和.code段,而反匯編后變成
  .text和.idata和.rdata和.data段
  經過仔細辨認你就可以發現
  反匯編的text段就是源代碼中的.code段,data段是代碼段,.idata和.rdata是編譯器生成的,而idata是尋找include語句的地方,
  .idata基本沒什么用處,可以刪掉.
  
  (5)數據段
  通過比對發現基本上一致無什么增加,增加了一個    align 200h
  刪掉即可.
  
  (6)代碼段變化
  入口函數變化
                  public start
  start    proc near
      push  0    ; uType
      push  offset Caption  ; "你好"
      push  offset Text  ; "你好!祝你有個好的開始!!!"
      push  0    ; hWnd
      call  MessageBoxA
  
      push  0    ; uExitCode
      call  ExitProcess
  
  start    endp
  
  。。。。。。
  
  。。。。。。。
  
      end start
  
  注意end start放在了所有段后面
  
  到這里我們大體上看完這個程序反匯編的大體輪廓。
  
--------------------------------------------------------------------------------
【經驗總結】
  (1)模式定義少了語言模式和opention語句,我們要看情況是否加回上去。
  (2)include語句尋找_idata中的dll名,得到常用包含庫文件.
  (3).rdate段不用看,可以刪掉
  (4)入口開始處尋找start.
  
--------------------------------------------------------------------------------
【版權聲明】: 本文原創于看雪技術論壇, 轉載請注明作者并保持文章的完整, 謝謝!

                                                       2007年03月02日 13:56:14

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

導航

統計

留言簿(13)

隨筆分類(287)

隨筆檔案(289)

漏洞

搜索

積分與排名

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久综合五月| 欧美揉bbbbb揉bbbbb| 久久久蜜桃精品| av72成人在线| 亚洲国产精品一区制服丝袜| 美女精品一区| 久久久久久999| 久久久久久一区二区| 亚洲欧美日韩精品久久亚洲区| 亚洲精品123区| 一本色道久久| 日韩视频一区二区在线观看 | 欧美视频免费| 欧美乱妇高清无乱码| 欧美成人精品高清在线播放| 久久国产福利| 欧美资源在线观看| 国产日产亚洲精品| 国产无遮挡一区二区三区毛片日本| 韩国亚洲精品| 一本色道久久88综合日韩精品| 午夜伦欧美伦电影理论片| 久久亚洲春色中文字幕| 亚洲激情自拍| 久久国产66| 欧美性色aⅴ视频一区日韩精品| 国产日韩欧美一区二区三区四区| 亚洲国产日韩综合一区| 亚洲欧美制服另类日韩| 欧美激情视频在线播放| 亚洲一级高清| 欧美激情一区二区三区在线视频观看| 欧美午夜精品理论片a级大开眼界| 国产欧美综合一区二区三区| 亚洲麻豆av| 裸体女人亚洲精品一区| 宅男噜噜噜66一区二区| 免费成人在线观看视频| 国产精品久久久久久久久果冻传媒| 亚洲国产高潮在线观看| 久久精品视频亚洲| 亚洲自拍三区| 国产精品福利在线| 一区二区三区高清在线观看| 欧美阿v一级看视频| 欧美在线免费视屏| 国产人成一区二区三区影院| 亚洲欧美日韩久久精品 | 午夜精品网站| 欧美三级网页| 99人久久精品视频最新地址| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲欧美综合网| 国产乱子伦一区二区三区国色天香 | 久久综合国产精品台湾中文娱乐网| 一区二区欧美精品| 欧美日韩国产小视频| 最新日韩在线| 亚洲高清在线观看一区| 欧美jjzz| 亚洲精品久久久久久久久久久 | 这里只有视频精品| 欧美日韩在线一二三| 99国产精品99久久久久久粉嫩| 欧美激情精品久久久久久久变态| 美女主播一区| 日韩小视频在线观看| 亚洲乱码精品一二三四区日韩在线 | 久久一区中文字幕| 久久久九九九九| 亚洲高清123| 亚洲国产精品ⅴa在线观看| 欧美激情精品久久久久久蜜臀 | 欧美在线三级| 久久久久久久久综合| 亚洲国产精品www| 亚洲精品乱码久久久久久蜜桃麻豆 | 久久久精品免费视频| 在线看欧美视频| 欧美激情一区三区| 欧美日韩视频在线| 欧美一区=区| 美日韩精品视频免费看| 99精品视频免费观看视频| 一本色道久久99精品综合| 国产精品一区二区久久国产| 久久人人爽人人爽| 欧美日韩精品一区二区三区| 欧美在线啊v| 欧美阿v一级看视频| 亚洲一级一区| 久久国产精彩视频| 日韩亚洲欧美一区二区三区| 亚洲一区三区在线观看| 亚洲福利av| 亚洲视频在线观看网站| 激情久久一区| 亚洲图片欧美一区| 亚洲精品1234| 亚洲欧美日本日韩| 亚洲精品少妇| 欧美在线高清视频| 亚洲一区二区三区免费在线观看| 久久久午夜精品| 欧美一级视频| 欧美日韩精品欧美日韩精品一| 久久夜色精品国产欧美乱| 欧美三级日本三级少妇99| 欧美成人伊人久久综合网| 国产欧美日韩另类一区| 亚洲毛片在线| 亚洲精品国产精品国自产观看| 亚洲女人天堂av| 亚洲一品av免费观看| 欧美va亚洲va国产综合| 久久精品视频免费| 国产精品综合色区在线观看| 亚洲人体影院| 亚洲精品日韩在线观看| 久久婷婷久久| 麻豆av福利av久久av| 国产日韩欧美在线视频观看| 99riav1国产精品视频| 亚洲精品在线免费观看视频| 久久婷婷色综合| 美女久久一区| **性色生活片久久毛片| 欧美一区二区福利在线| 久久精品国产91精品亚洲| 国产精品视频免费一区| 在线一区观看| 亚洲欧美日韩爽爽影院| 欧美吻胸吃奶大尺度电影| 亚洲精品乱码久久久久| 夜夜嗨av一区二区三区免费区| 免费在线成人av| 亚洲国产日韩在线一区模特| 亚洲精品一区在线观看| 欧美精品在线播放| 亚洲三级毛片| 亚洲一区二区在线观看视频| 欧美日韩在线精品| 一区二区国产日产| 先锋影音久久| 国产一区二区0| 久久精品国产91精品亚洲| 久久久久久久欧美精品| 黑丝一区二区| 久久综合伊人77777蜜臀| 欧美电影免费观看高清完整版| 亚洲春色另类小说| 欧美日本韩国一区| 国产精品99久久久久久www| 午夜精品福利在线| 狠狠爱综合网| 欧美精品一区二区三| 亚洲线精品一区二区三区八戒| 欧美日韩高清在线观看| 亚洲一级黄色片| 久久婷婷国产综合尤物精品| 亚洲高清网站| 国产精品激情偷乱一区二区∴| 欧美一级欧美一级在线播放| 免费久久99精品国产自| 日韩一区二区久久| 国产精品蜜臀在线观看| 欧美在线黄色| 亚洲免费不卡| 久久久噜噜噜久久久| 99re6热只有精品免费观看| 国产精品久久看| 欧美/亚洲一区| 午夜精品久久久久久久99樱桃| 免费在线欧美视频| 亚洲专区在线| 亚洲精品一区二区三| 国产欧美一区二区三区沐欲| 你懂的亚洲视频| 欧美一区激情| 国产精品99久久久久久有的能看| 男男成人高潮片免费网站| 亚洲女优在线| 一区二区精品在线| 亚洲国产精品黑人久久久| 国产精品嫩草久久久久| 欧美激情一区| 免费成人在线观看视频| 性欧美8khd高清极品| 99国产精品久久久久久久成人热| 久久在线精品| 久久精品日产第一区二区| 亚洲线精品一区二区三区八戒| 亚洲黄色片网站| 尤物视频一区二区| 国产欧美日韩视频一区二区三区| 欧美伦理91i| 欧美精品福利在线| 免费国产一区二区| 老**午夜毛片一区二区三区| 欧美亚洲综合在线|