存档

‘Win32 ASM’ 分类的存档

Windows SEH汇编版

2011年5月17日 没有评论

SEH,即Structured Exception Handling,中文为结构化异常处理。是Windows操作系统提供给程序设计者的强有力的处理程序错误或异常的武器。Ring3下fs:[0]指向TEB(Thread Environment Block)结构,打开WinDbg,查看_TEB结构:

nt!_TEB
+0×000 NtTib : _NT_TIB
+0x01c EnvironmentPointer : Ptr32 Void
+0×020 Cli[......]

继续阅读

分类: Win32 ASM 标签: , , ,

用OllyDbg对Win32汇编进行源码级调试

2011年4月19日 2 条评论

如果是刚开始学习汇编,肯定对调试有很大的困难,我以前都是用OD来反汇编,对于Win32Asm的话,感觉还是过得去的,效果也还好。今天在网上看到有源码级调试方法,所以就搬过来了,试了一下,效果不错。
首先是编译的时候要生产符号表,类似用WinDbg进行驱动程序源码级调试一样。所以,makefile需要这样写(这只是一个例子):

NAME = NoImport
EXE = $(NAME).exe
OBJ = $(NAME).obj
 
ML_FLAG = [......]

继续阅读

[转]汇编基础知识

2011年3月16日 2 条评论

1. 通用寄存器
通用寄存器包括了8个16/32位的寄存器:AX/EAX、BX/EBX、CX/ECX、DX/EDX、SP/ESP、BP/EBP、DI/EDI及SI/ESI。其中AX/EAX、BX/EBX、CX/ECX、DX/EDX在一般情况下作为通用的数据寄存器,用来暂时存放计算过程中所用到的操作数、结果或其他信息。它们还可分为两个独立的8位寄存器使用,命名为AL、AH、BL、BH、CL、CH、DL和DH。这4个通用数据寄存器除通用功能外,还有如下专门用途:
AX/EAX作为累加器用,所以它是算[......]

继续阅读

分类: Win32 ASM 标签: , , ,

error A2108: use of register assumed to ERROR

2011年3月16日 没有评论

汇编编译时出现如下错误:error A2108: use of register assumed to ERROR。错误的原因有多种,常见的如下:

  1. 在使用fs寄存器的时候先assume fs:nothing
  2. 代码中可能存在非英文字符
  3. 没有写.code声明或者一些属于.code的东西放在了数据段中
分类: Win32 ASM 标签: , ,

极度BT的一段汇编代码

2011年3月14日 2 条评论

源自看雪论坛,《ASM的魅力(一)》,目前就弄懂了他怎么通过堆栈调用函数,至于程序是怎么结束的还是不清楚。原帖地址:http://bbs.pediy.com/showthread.php?t=96969。整个看得比较头晕,转来转去的。
对函数的调用是先压入参数,然后压入返回地址,压入函数地址,接着一句lea esp,[esp + 4],让esp加4,于是esp指向返回地址了。然后jmp dword ptr [esp - 4],就相当于跳转到了函数地址,整个模仿了call的实现,很是精辟。
下面的[......]

继续阅读

分类: Win32 ASM 标签: , ,

一款资源编辑器——Resource Editor

2011年3月6日 没有评论

首先,VC6的以及Visual Studio的资源编辑器都是强大的。并且是微软的产品,自然可以很好的适用于微软的Windows应用程序开发。但是对于Win32 SDK以及MASM就不行了。
VC6生成的资源里面带有大量的头文件,还有很多很多乱七八糟的语句,一旦拿到SDK下或者MASM下就会出错,你需要小心的清理一下资源代码才可以用。而且清理过后,那个rc文件就不能再用VC或者VS打开了。
对于VS更是可恨,干脆就不能把资源保存为rc文件,让人彻底死心。据说Borland有一个资源编辑器,不过说很[......]

继续阅读

分类: Win32 ASM 标签: , ,

一些Win32汇编知识

2010年9月22日 没有评论

具体就看看源代码吧,有详细注释:
.386
.model flat, stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;&gt[......]

继续阅读

Win32 ASM Hello World

2010年9月20日 1 条评论

第一个Win32ASM 程序,照旧是HelloWorld。
.386
.model flat, stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g[......]

继续阅读

分类: Win32 ASM 标签: , , ,

Makefile详解(二)

2010年9月20日 3 条评论

本文文字内容来自罗云彬的《琢石成玉*Windows环境下32位汇编语言程序设计》,转载请注明本原始出处。
3.显式规则
makefile中包含有一些规则,这些规则定义了文件之间的依赖关系和产生命令,一个规则的格式是这样的:
目标文件:依赖文件;命令        (方法1)

目标文件:依赖文件          &nbs[......]

继续阅读

分类: Win32 ASM 标签: , , , ,

Makefile详解(一)

2010年9月20日 没有评论

本文文字内容来自罗云彬的《琢石成玉*Windows环境下32位汇编语言程序设计》,转载请注明本原始出处。
2.4.3  描述文件的语法
make工具最主要也是最基本的功能就是通过描述文件来描述源程序之间的相互关系并自动维护编译工作,而描述文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并链接生成可执行文件,并要求定义源文件之间的依赖关系,为了更方便使用,文件中同时可以用一些宏定义。描述文件一般需要包含以下内容:
● 注释
● 宏定义
● 显式规则
● 隐含规则
在这里,首[......]

继续阅读

分类: Win32 ASM 标签: , , , ,