1.Win32汇编程序开发

原创 2015年07月07日 15:00:19

		.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











相关文章推荐

图解命令行手动编译构建一个win32汇编程序

首先安装masm32 V11.0;安装完后出现下列对话框; 图没截好;下面图的 k. 是 link. ;ktopPath是DesktopPath; 此段代码的含义是用WScript创建了一个快捷方...

masm win32汇编程序设计

Win32汇编--使用MASM   使用MASM   Win32汇编源程序的结构 任何种类的语言,总是有基本的源程序结构规范。 下面以经典的Hello World程序为例,展示一个C语...

win32汇编程序运行方法 --MASM32、makefile、makeit

最近刚学习win32汇编程序,用的工具是MASM32,MASM32安装包不会对注册表进行写操作,安装后,它会在桌面创建qeditor.exe的快捷方式,qeditor是MASM32的IDE环境,我们要...
  • erick08
  • erick08
  • 2011年10月13日 19:33
  • 4511

win32汇编程序设计 答案

  • 2011年12月16日 10:26
  • 731KB
  • 下载

跟我一起玩Win32开发(1):关于C++的几个要点

我不知道各位,一提起C++,第一感觉是什么?而据俺的观察,许多人几乎成了“谈C色变”。不管是C还是C++,一直以来都被很多人视为相当难学的玩意儿,幸好只是一个C++,没有C--,C**和C//,不然,...
  • tcjiaan
  • tcjiaan
  • 2013年01月11日 16:02
  • 37090

WIN32汇编程序设计

  • 2008年09月28日 10:31
  • 574KB
  • 下载

win32汇编程序

  • 2011年11月04日 22:22
  • 2.1MB
  • 下载

Eclipse (eclipse-jee-juno-SR1-win32-x86_64 4.2)搭建ndk开发环境

Eclipse (eclipse-jee-juno-SR1-win32-x86_64 4.2)搭建ndk开发环境 一、关于NDK: NDK全称:Native Development Kit。 1...
  • yxm0603
  • yxm0603
  • 2012年11月29日 20:07
  • 2448
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1.Win32汇编程序开发
举报原因:
原因补充:

(最多只允许输入30个字)