![](https://img-blog.csdnimg.cn/2021042911183886.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
逆向工程笔记
文章平均质量分 76
逆向工程原理记录
孤月丶星辰
以吾之所学,创吾之所思
展开
-
WinDbg+VMware 调试驱动
一、环境准备1.WinDbg2.VMware虚拟机(这里使用xp系统)二、配置VMware1.首先选择windows XP的虚拟机,要处于关机状态。2.然后“编辑虚拟机设置”->“添加”->“串行端口”->“输出到命名管道”。在命名管道这里需要选择“另一端是应用程序”,并且勾选“启动时连接”。详细如下图:最后点击“完成”。3.此时的VMware硬件配置完成,但还需要在系统中配置调式模式。这样在系统启动时,才可以被WinDbg连接。三、配置Windows XP系统,开原创 2021-04-25 12:40:29 · 714 阅读 · 1 评论 -
逆向学习笔记(5)——高级反调试技术
1.垃圾代码向程序添加大量无意义的代码来增加代码调试的难度,这就是“垃圾代码”反调试技术。尤其是,这些垃圾代码中还含有真正有用的代码或者应用其他反调试技术时,调试程序会变得更加困难。1)一些指令(PUSH/POP、XCHEG、MOV)拥有相同的操作数,最终执行的是一些无意义的运算。(命令执行后没有什么变化)2)将一些简单的指令复杂化实现,增加分析难度。2.扰乱代码对齐(花指令)通过巧妙的编写汇编代码,实现干扰调试器反汇编的结果,让反汇编看上去一团乱。在正常的汇编中插入多余的call、原创 2021-04-12 14:38:34 · 300 阅读 · 0 评论 -
逆向学习笔记(4)——动态反调试技术
1.SEH异常处理windows中存在许多的异常处理类型,如下:EXCEPTION_DATATYPE_MISALIGNMENT (0x80000002)EXCEPTION_BREAKPOINT (0x80000003) 断点异常EXCEPTION_SINGLE_STEP (0x80000004) 单步执行EXCEPTION_ACCESS_VIOLATION (0x8000000原创 2021-04-12 14:31:09 · 893 阅读 · 0 评论 -
逆向学习笔记(3)——静态反调试技术
1.PEB结构+0x002 BeingDebugged : UChar+0x00c Ldr : Ptr32 _PEB_LDR_DATA+0x018 ProcessHeap : Ptr32 Void+0x068 NtGlobalFlag : Uint4B...1)BeingDebugged(+0x002)当进程处于调试状态时,该标识为1,反之为0。对应的API是IsDebuggerPresent(),用于获取当前进程的调试状态原创 2021-04-12 14:22:25 · 405 阅读 · 0 评论 -
逆向学习笔记(2)——注入技术
1.windows消息钩子使用API SetWindowsHookEx()进行dll注入,在dll中可以截获GUI界面消息。函数定义:HHOOK SetWindowsHookEx( int idHook, // hook type HOOKPROC lpfn, // hook procedure HINSTANCE hMod, // hook procedure所属的DLL句柄(Handle) DOWORD d原创 2021-04-12 14:12:19 · 201 阅读 · 0 评论 -
逆向学习笔记(1)
1.TLS回调函数1)TLS回调会在线程的创建和销毁时被调用,常用来做反调试。2)TLS回调函数位于IMAGE_DATA_DIRECTORY[9](数据目录)的位置,即TLS table,与导入导出表类似。3)其中TLS table结构是IMAGE_TLS_DIRECTORY。而其中的AddressOfCallback则表示回调函数地址的数组,也就是说可能会有多个TLS回调函数。4)TLS回调函数定义:typedef VOID(NTAPI *PIMAGE_TLS_CALLBACK)(原创 2021-04-12 14:04:36 · 276 阅读 · 0 评论