09 2014 档案

Win32API起始处的mov edi, edi与用户空间InlineHook
摘要:在x86平台上,无论是在调试器中跟到系统DLL中时,还是反汇编某个系统DLL时,经常会发现很多API的第一条汇编指令都是mov edi, edi。根据经验来讲,C函数的汇编形式,应该是首先push ebp保存原始栈顶,然后mov ebp, esp构造新的栈帧,接下来sub esp, 0nnh分配局部... 阅读全文

posted @ 2014-09-29 15:22 孤影对酌 阅读(2292) 评论(0) 推荐(3)

DLL的导出函数重定向机制
摘要:曾经,调试时跟进HeapAlloc,结果发现直接进入到ntdll的RtlAllocateHeap中,感到很有趣,就使用Dependency Walker查看kernel32.dll的导出函数,结果发现HeapAlloc的地址直接显示的就是NTDLL.RtlAllocateHeap。于是反汇编查看ke... 阅读全文

posted @ 2014-09-28 11:14 孤影对酌 阅读(2862) 评论(1) 推荐(1)

一个Win32API Trace Tool的设计与实现
摘要:用VC编程也有不短的时间了,对kernel32、advapi32、user32、gdi32等动态库里的API多数都已经很熟悉了。API是操作系统提供给应用程序的一组服务,很久以前就想要做个小工具,用来跟踪应用程序对API的调用,对于分析程序的行为、功能的实现原理以及Bug的定位都会有很大的帮助。可是... 阅读全文

posted @ 2014-09-14 10:44 孤影对酌 阅读(2151) 评论(2) 推荐(2)

宏WINAPI和几种调用约定
摘要:在VC SDK的WinDef.h中,宏WINAPI被定义为__stdcall,这是C语言中一种调用约定,常用的还有__cdecl和__fastcall。这些调用约定会对我们的代码产生什么样的影响?让我们逐个分析。首先,在x86平台上,用VC编译这样一段代码: 1 int __cdecl TestC(... 阅读全文

posted @ 2014-09-12 10:30 孤影对酌 阅读(2731) 评论(2) 推荐(2)

导航