1.Win32汇编程序开发

		.386
		.model flat,stdcall
		option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include		windows.inc
include		user32.inc
includelib	user32.lib
include		kernel32.inc
includelib	kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		.const

Caption	db	'hello',0
Text		db	'你好 is my wife',0

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		.code
start:
		invoke	MessageBox,NULL,offset Text,offset Caption,MB_OK
		;invoke	GetModuleHandle,NULL
		invoke	ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		end	start

反汇编调试
CPU Disasm
Address   Hex dump          Command                                  Comments
00401000  /.  6A 00         PUSH 0                                   ; Type = MB_OK|MB_DEFBUTTON1|MB_APPLMODAL
00401002  |.  68 10204000   PUSH OFFSET 00402010                     ; Caption = "hello"
00401007  |.  68 16204000   PUSH OFFSET 00402016                     ; Text
0040100C      6A 00         PUSH 0
0040100E      E8 07000000   CALL <JMP.&user32.MessageBoxA>           ; Jump to user32.MessageBoxA
00401013  |.  6A 00         PUSH 0                                   ; /ExitCode = 0
00401015  \.  E8 06000000   CALL <JMP.&kernel32.ExitProcess>         ; \KERNEL32.ExitProcess
0040101A    - FF25 08204000 JMP DWORD PTR DS:[<&user32.MessageBoxA>]
00401020   $- FF25 00204000 JMP DWORD PTR DS:[<&kernel32.ExitProcess
00401026      00            DB 00
00401027      00            DB 00

从start出开始执行,数据压缩堆栈,然后call 调用。若要逆向message中的数据,

CRTL + G 。 定位断点messagebox函数,然后查看堆栈压入的数据即可。

CPU Disasm
Address   Hex dump          Command                                  Comments
75E7EAA5  |.  FF75 14       PUSH DWORD PTR SS:[EBP+14]               ; |Type
75E7EAA8  |.  FF75 10       PUSH DWORD PTR SS:[EBP+10]               ; |Caption
75E7EAAB  |.  FF75 0C       PUSH DWORD PTR SS:[EBP+0C]               ; |Text
75E7EAAE  |.  FF75 08       PUSH DWORD PTR SS:[EBP+8]                ; |hOwner
75E7EAB1  |.  E8 73FFFFFF   CALL MessageBoxExA                       ; \USER32.MessageBoxExA











阅读更多
个人分类: 2.Win32汇编代码
上一篇8.16位中断程序
下一篇9.全局描述符表与分页机制
想对作者说点什么? 我来说一句

MASM8.0

2008年05月28日 2.99MB 下载

Linux 汇编语言开发指南.doc

2011年05月09日 102KB 下载

ibm pc汇编语言程序设计

2010年05月24日 7.31MB 下载

MASM6.11(xp安装版)

2011年12月21日 3.12MB 下载

没有更多推荐了,返回首页

关闭
关闭