版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Windows下反匯編程序例子Windows下編寫的程序經(jīng)編譯鏈接之后,就可用debug等調(diào)試工具調(diào)試執(zhí)行,也能看到反匯編的結(jié)果,這很便于理解“匯編指令”是如何翻譯成“機(jī)器指令”的。對(duì)Windows程序,這樣的工具有很多,像SoftICE、TRW、W32dasm、IDA、Hiew等。這里準(zhǔn)備談一下W32dasm(點(diǎn)此下載。;=;例:取命令行參數(shù),并顯示到消息框中;文件名:6.asm.386.model flat,stdcalloption casemap:noneinclude windows.inc ;常量及結(jié)構(gòu)定義include kernel32.inc ;函數(shù)原型聲明include us
2、er32.incincludelib kernel32.lib ;用到的引入庫(kù)includelib user32.lib.dataszCaption db 命令行參數(shù),0.codestart:invoke GetCommandLineinvoke MessageBox,NULL,eax,addr szCaption,MB_OKinvoke ExitProcess,NULLend start-用到API函數(shù):LPTSTR GetCommandLine(VOIDThis function has no parameters.The return value is a pointer to the
3、command-line string for the current proces s.-編譯鏈接:-下面使用W32dasm來(lái)反匯編6.exe。啟動(dòng)W32dasm,從菜單Disassembler中選Open File to Disassemble.,從出現(xiàn)的對(duì)話框中選擇要進(jìn)行反匯編的程序,比如6.exe并打開。若首次使用該反匯編工具,屏幕顯示可能有點(diǎn)亂,執(zhí)行Disassembler/Font./Select Fon t選擇合適的字體即可解決該問(wèn)題。執(zhí)行Disassembler/Font./Save Default Font,這樣下次啟動(dòng)該軟件時(shí)也不會(huì)亂啦。下面是6.exe反匯編后的結(jié)果:Di
4、sassembly of File: 6.exeCode Offset = 00000400, Code Size = 00000200Data Offset = 00000800, Data Size = 00000200Number of Objects = 0003 (dec, Imagebase = 00400000hObject01: .text RVA: 00001000 Offset: 00000400 Size: 00000200 Flags: 60000020 Object02: .rdata RVA: 00002000 Offset: 00000600 Size: 0000
5、0200 Flags: 40000040 Object03: .data RVA: 00003000 Offset: 00000800 Size: 00000200 Flags: C0000040+ MENU INFORMATION +There Are No Menu Resources in This Application+ DIALOG INFORMATION +There Are No Dialog Resources in This Application+ IMPORTED FUNCTIONS +Number of Imported Modules = 2 (decimal ;本
6、程序用到兩個(gè)引入庫(kù)Import Module 001: KERNEL32.dllImport Module 002: USER32.dll+ IMPORT MODULE DETAILS +Import Module 001: KERNEL32.dll ;要用到本庫(kù)中下面兩個(gè)函數(shù)Addr:00002072 hint(00B6 Name: GetCommandLineAAddr:00002064 hint(0075 Name: ExitProcessImport Module 002: USER32.dllAddr:00002092 hint(01BB Name: MessageBoxA+ EXP
7、ORTED FUNCTIONS +Number of Exported Functions = 0000 (decimal+ ASSEMBLY CODE LISTING +/* Start of Code in Object .text * Program Entry Point = 00401000 (6.exe File Offset:00001600* Reference To: KERNEL32.GetCommandLineA, Ord:00B6h|/* Program Entry Point * ;程序入口點(diǎn):00401000 E81D000000 Call 00401022 ;取命
8、令行參數(shù):00401005 6A00 push 00000000:00401007 680E304000 push 0040300E:0040100C 50 push eax:0040100D 6A00 push 00000000* Reference To: USER32.MessageBoxA, Ord:01BBh|:0040100F E814000000 Call 00401028 ;顯示消息框:00401014 6A00 push 00000000* Reference To: KERNEL32.ExitProcess, Ord:0075h|:00401016 E801000000 C
9、all 0040101C ;結(jié)束程序:0040101B CC int 03* Referenced by a CALL at Address:|:00401016|* Reference To: KERNEL32.ExitProcess, Ord:0075h|:0040101C FF2504204000 Jmp dword ptr 00402004 ;轉(zhuǎn)到ExitProcess去執(zhí)行* Referenced by a CALL at Address:|:00401000|* Reference To: KERNEL32.GetCommandLineA, Ord:00B6h|:00401022
10、FF2500204000 Jmp dword ptr 00402000 ;轉(zhuǎn)到GetCommandLine去執(zhí)行* Reference To: USER32.MessageBoxA, Ord:01BBh|:00401028 FF250C204000 Jmp dword ptr 0040200C ;轉(zhuǎn)到MessageBoxA去執(zhí)行-問(wèn)題:為什么invoke GetCommandLine在編譯時(shí)沒直接翻譯成Call dword ptr 00402000而用下面的形式呢?:00401000 E81D000000 Call 00401022 ;取命令行參數(shù). . . .:00401022 FF2500204000 Jmp dword ptr 00402000 轉(zhuǎn)到GetCommandLine去執(zhí)行注意:加載器在加載程序時(shí),還存在一個(gè)重定位的問(wèn)題,即動(dòng)態(tài)鏈接庫(kù)中的函數(shù)的地址必須
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)業(yè)科技園區(qū)運(yùn)營(yíng)管理合同標(biāo)準(zhǔn)3篇
- 二零二五年度林權(quán)登記與不動(dòng)產(chǎn)登記網(wǎng)絡(luò)安全保障合同
- 2025年度智能控制噴錨工程勞務(wù)施工合同標(biāo)準(zhǔn)
- 二零二五年度美術(shù)教育研發(fā)中心美術(shù)教師聘用合同4篇
- 2025年度民間擔(dān)保人文化創(chuàng)意產(chǎn)業(yè)貸款合同模板
- 二零二五年度數(shù)字經(jīng)濟(jì)派遣合同就業(yè)協(xié)議書范本
- 2025年新能源汽車零部件采購(gòu)及供應(yīng)合同范本2篇
- 2025年度山西旅游行業(yè)勞動(dòng)合同書范本3篇
- 2025版智能門衛(wèi)服務(wù)與社區(qū)治安巡邏合同3篇
- 2025裝載機(jī)駕駛員聘用合同-裝載機(jī)駕駛員職業(yè)技能鑒定協(xié)議3篇
- 《openEuler操作系統(tǒng)》考試復(fù)習(xí)題庫(kù)(含答案)
- 《天潤(rùn)乳業(yè)營(yíng)運(yùn)能力及風(fēng)險(xiǎn)管理問(wèn)題及完善對(duì)策(7900字論文)》
- 醫(yī)院醫(yī)學(xué)倫理委員會(huì)章程
- xx單位政務(wù)云商用密碼應(yīng)用方案V2.0
- 2024-2025學(xué)年人教版生物八年級(jí)上冊(cè)期末綜合測(cè)試卷
- 2025年九省聯(lián)考新高考 語(yǔ)文試卷(含答案解析)
- 死亡病例討論總結(jié)分析
- 第二章 會(huì)展的產(chǎn)生與發(fā)展
- 空域規(guī)劃與管理V2.0
- JGT266-2011 泡沫混凝土標(biāo)準(zhǔn)規(guī)范
- 商戶用電申請(qǐng)表
評(píng)論
0/150
提交評(píng)論