存档

文章标签 ‘ASM’

调试与反调试(二)——BeingDebugged

2011年4月21日 2 条评论

如果进程处于被调试状态,那么PEB里面的BeingDebugged标志会置位,《调试与反调试(一)——IsDebuggerPresent》中的IsDebuggerPresent就是这么实现的~不信?可以看网上流传的Windows 2000源代码,在“\win2k\private\windows\base\client\debug.c”里面可以看到,就是这么实现的:

BOOL
APIENTRY
IsDebuggerPresent(
VOID
)
 
/*[......]

继续阅读

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 标签: , ,

一些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 标签: , , , ,