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

小默

[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>
            亚洲视频免费| 国产热re99久久6国产精品| 亚洲日本成人网| 久久综合国产精品台湾中文娱乐网| 国产精品手机视频| 国产精品久久久久国产a级| 欧美日韩国产成人| 欧美视频中文字幕| 国产精品高潮在线| 国产美女精品视频免费观看| 国产伦精品一区| 国内精品久久久久久久97牛牛| 国产视频久久网| 亚洲综合999| 欧美亚洲视频在线看网址| 香蕉乱码成人久久天堂爱免费 | 亚洲理伦在线| 一本久久精品一区二区| 一区二区三区欧美| 欧美中文字幕在线播放| 裸体素人女欧美日韩| 亚洲欧洲免费视频| 亚洲一区二区成人在线观看| 欧美一区二区播放| 欧美高清在线视频观看不卡| 欧美日韩综合| 精品不卡视频| 亚洲在线免费观看| 欧美xx视频| 中文在线资源观看网站视频免费不卡| 午夜在线观看欧美| 欧美人成在线视频| 国产日韩一区二区三区在线播放| 在线日韩日本国产亚洲| 亚洲综合首页| 欧美激情亚洲| 欧美一区二区精品在线| 欧美日韩久久久久久| 激情综合五月天| 午夜视频在线观看一区| 亚洲激情在线视频| 久久天堂国产精品| 国产麻豆成人精品| 中文精品视频一区二区在线观看| 美女主播一区| 欧美一区免费视频| 国产精品久久久久久久久| 亚洲黄网站黄| 老司机精品导航| 欧美亚洲专区| 国产精品一区亚洲| 亚洲午夜精品一区二区| 亚洲福利视频二区| 久久人人97超碰精品888| 国产精品亚洲激情| 国产精品99久久久久久有的能看| 嫩草伊人久久精品少妇av杨幂| 亚洲主播在线| 国产精品一区二区三区成人| 中文在线不卡视频| 亚洲人成在线免费观看| 欧美凹凸一区二区三区视频| 影音先锋一区| 久久久亚洲成人| 欧美在线观看日本一区| 国产欧美日韩专区发布| 小辣椒精品导航| 亚洲一级片在线看| 国产精品你懂的在线| 亚洲午夜精品网| 性欧美1819sex性高清| 一本到高清视频免费精品| 欧美日韩大片| 亚洲视频在线观看三级| 亚洲免费观看在线视频| 欧美日韩久久精品| 亚洲一区二区精品在线观看| 9久re热视频在线精品| 国产精品福利影院| 欧美一区二区三区在线观看| 亚欧成人精品| 亚洲国产精品一区二区尤物区| 欧美第一黄色网| 欧美精品亚洲二区| 亚洲一区二区高清| 亚洲自拍另类| 狠狠色狠狠色综合日日91app| 久久久久久自在自线| 免费的成人av| 亚洲视频 欧洲视频| 亚洲欧美影音先锋| 亚洲国产高清一区二区三区| 91久久精品一区二区三区| 欧美色综合网| 久久久xxx| 欧美mv日韩mv国产网站| 亚洲主播在线观看| 久久亚洲欧美国产精品乐播| 国产精品99久久久久久宅男| 欧美一区二区三区视频在线观看| 伊人久久久大香线蕉综合直播 | 国精品一区二区| 欧美国产亚洲视频| 国产精品播放| 欧美成人一区二区| 国产精品免费网站| 亚洲韩国日本中文字幕| 国产精品免费aⅴ片在线观看| 久久久噜噜噜久久久| 欧美日韩国产区| 开心色5月久久精品| 欧美丝袜一区二区| 亚洲高清久久| 狠狠干综合网| 亚洲一区二区影院| 亚洲精品一二三区| 久久精品成人一区二区三区蜜臀| 一区二区三区国产盗摄| 久久婷婷成人综合色| 欧美一区二区三区久久精品| 欧美大色视频| 欧美xart系列高清| 国产综合激情| 亚洲综合日韩| 亚洲欧美乱综合| 欧美日韩亚洲成人| 亚洲国产精品福利| 亚洲国产一区二区三区高清| 亚洲一区区二区| 亚洲一区二区毛片| 欧美日韩四区| 日韩视频永久免费观看| 日韩视频中文字幕| 亚洲精品免费在线播放| 亚洲大胆在线| 久久久久久久网站| 久久夜色精品国产欧美乱| 国产精品久久久久久影视| 亚洲欧洲精品一区二区三区| 亚洲第一级黄色片| 久久三级福利| 欧美大片在线观看一区二区| 在线观看成人一级片| 久久久久九九九| 免费欧美高清视频| 亚洲日本一区二区三区| 欧美高清你懂得| 亚洲经典在线| 亚洲国产一区在线观看| 欧美成人精品不卡视频在线观看| 欧美成人福利视频| 亚洲精品国偷自产在线99热| 欧美成人自拍| 99精品视频免费观看视频| 亚洲在线免费| 国产亚洲欧美一区| 久热re这里精品视频在线6| 亚洲电影在线播放| 一本久久青青| 国产日韩欧美高清| 久久久国产精彩视频美女艺术照福利| 久久久午夜视频| 91久久久久久| 国产精品成人v| 欧美在线不卡| 亚洲第一区中文99精品| 99精品热视频| 国产欧美综合一区二区三区| 久久婷婷久久| 99亚洲一区二区| 久久手机精品视频| 一本大道久久a久久精品综合| 国产精品视屏| 久久久另类综合| 亚洲精品免费网站| 久久久久国产精品厨房| 亚洲免费黄色| 国产欧美一区二区精品忘忧草 | 久久国产夜色精品鲁鲁99| 合欧美一区二区三区| 欧美国产亚洲另类动漫| 亚洲欧美日韩国产一区二区| 欧美激情一区二区三级高清视频| 亚洲图片激情小说| 136国产福利精品导航网址| 国产精品草草| 欧美韩日高清| 久久久久一区二区| 午夜精品久久| 9久草视频在线视频精品| 久久频这里精品99香蕉| 亚洲与欧洲av电影| 99精品福利视频| 亚洲国产精品999| 国产色产综合色产在线视频| 欧美日韩一二三区| 欧美精品一区在线播放| 久久伊伊香蕉| 久久黄色网页| 午夜在线一区|