摘要:
回调函数(TLS) 若在编程中启用了TLS功能,PE头文件中就会设置一个TLS表(TLS Table)。 (IMAGE_NT_HEADERS-IMAGE_OPTIONAL_HEADER-IMAGE_DATA_DIRECTORY[9])) 我们可以看到TLS回调函数的定义: 启动参数DllHandle 阅读全文
摘要:
ASLR ASLR(地址空间布局随机化),针对缓冲区溢出的保护机制,微软从内核6开始使用的保护机制。 我们写两个个简单的程序,一个打开ASLR,一个关闭ASLR,进行比较。 ASLR.cpp #include<studio.h> void main() { printf("ASLR test pro 阅读全文
摘要:
x64处理器 64位系统中的内存地址为64位(8个字节),所以使用64位大小的指针。所以含有的绝对地址(AV)的指令大小比原来增加了4个字节。 x64系统中,通用寄存器的大小扩展到了64位(8个字节),数量也增加到了18个(新增加了R8~R15寄存器)。x64系统下的所有通用寄存器的名称均以字母“R 阅读全文
摘要:
64位计算 64位计算是32位的升级版。 64位cpu 理论上的寻址能力为2的64次方。 64位OS 与64位cpu配套的os(这里以微软为例),微软的64位os可以方便的向下兼容。 微软为了64位os向下兼容,推出了WOW64机制。 WOW64 在64位windows中,64位应用程序会加载ker 阅读全文
摘要:
高级全局API钩取:IE链接控制 在上一章,API钩取虽然成功了,但是重新打开任务管理器,进程又会显示出来。 为了解决这个问题,书本引出了”高级全局API“这个概念。 钩取常规API,我们需要在进程创建时钩取其API: 全局API钩取,则是在创建进程之前就钩取API: 相对于低级API钩取, 阅读全文
摘要:
进程隐藏 本章实验环境为windows7 x86 隐藏进程之前,我们首先要对系统的API有一个大致的了解,在书中就运用到了ZwQuerySystemInformation 这个API,这个API的作用则是获取运行中的所有进程信息。 而基本的进程查看软件都是使用的这个API(proceXP和任务管理器 阅读全文
摘要:
计算器显示中文数字 此实验中使用的代码只适用于x86系统。 本章讲解API钩取技术时将以Windows计算器( calc.exe)为示例,向计算器进程插人用户的 DLL文件,钩取IAT的user32.SetWindowTextW() API地址。 SetWindowTextW() API的作用是显示 阅读全文
摘要:
API钩取——钩取记事本WriteFile()API 打开myhookdbg.exe,按照提示输入PID: 然后在记事本上输入字符,然后保存: 输入的字符被截取,并且变为了大写,API钩取成功。 最后附上源码,这个源码是在博客园的大神修改过可以在x64系统上运行(书上的系统为x86),我的编译器为V 阅读全文
摘要:
第二十八章,利用汇编指令,注入代码 这里我们生成CodeInjection2.exe文件,通过文件将汇编语言插入notepad: 代码: // CodeInjection2.cpp // reversecore@gmail.com // http://www.reversecore.com #inc 阅读全文
摘要:
代码注入 这里我们需要向notepad注入一段代码,从而达到弹出窗口的目的。 我们知道DLL注入,是要将我们想执行的代码,放入DLL中,在程序运行DLL时,运行我们想要执行的代码,而代码注入则不需要DLL文件,直接就可以执行。 代码注入练习: 首先使用process explorer查看已经运行的n 阅读全文