存档

文章标签 ‘汇编’

mov edi,edi和Hot Patching的一点解释

2011年7月13日 3 条评论

最近发现不少函数开头都有mov edi,edi这样的指令,正好在《Advanced Windows Debugging》一书中看到了一点解释。书上说是为了Hot Patching,网上也有这样的解释。
不过网上的解释有两种情况,一种是函数开头有mov edi, edi,再往前则是5个连续的nop的,就是用来Hot Patching的。而如果仅仅只是mov edi, edi,则是为了对齐设置的指令,和两个nop差不多,不过据说前者速度更快。MessageBoxA的情况如下:

7632EA68 [......]

继续阅读

分类: 逆向调试 标签: , ,

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年4月2日 没有评论

今天跟几位同学讨论了一点小问题,最后谈到指针和引用的区别……最后,谈到引用永远指向初始化它的对象。。。问题就从这里提出。按我的理解,引用是可以改变指向的(说明:这是错误的思维)。

#include <iostream>
using namespace std;
 
int main(int argc, char *argv[])
{
int a = 10, b = 20;
int &p = a;[......]

继续阅读

分类: C++编程 标签: , ,

初探逆向之URLegal破解

2011年3月23日 7 条评论

【文章标题】: 初探逆向之URLegal破解
【文章作者】: 代码疯子
【作者邮箱】: stackexploit@gmail.com
【操作系统】: Windows XP
【软件名称】: URLegal 3.3.0.0
【软件介绍】: 可以自动找出HTML文件中的断链接并自动对其进行修复
【加壳方式】: 无
【保护方式】: 注册码
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: OD + PEID + IDA
【作者声明】: 纯属技术交流,没有其他目的。仅以本文[......]

继续阅读

[转]汇编基础知识

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

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

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