逆向工程核心原理
你的名字5686
这个作者很懒,什么都没留下…
展开
-
DLL卸载
DLL卸载DLL卸载的工作原理实现DLL卸载DLL卸载的工作原理主要来说与DLL注入类似,DLL注入是驱使目标进程调用LoadLibrary() API,DLL卸载则是驱动目标进程调用FreeLibrary() API:将FreeLibrary() API的地址传递给CreatRemoteThread()的lpStartAddress参数将要卸载的DLL的句柄传递给lpParameter...原创 2020-02-19 13:58:57 · 305 阅读 · 0 评论 -
DLL注入
DLL注入DLL注入DLL注入的作用DLL注入的实现方法CreatRemoteThread()流程DLL注入DLL注入:向运行中的其他进程强制插入特定的DLL文件。DLL被加载到进程后会自动运行DllMain()函数。BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved){ switch(dw...原创 2020-02-17 14:37:34 · 289 阅读 · 0 评论 -
Windows消息钩取
Windows消息钩取消息钩子SetWindowsHookEx()示例代码参考文献消息钩子消息钩子:钩取OS发送给应用程序的消息。以键盘消息为例,常规的Windows消息流:发生键盘输入事件时,WM_KEYDOWN消息将被添加到[OS message queue]OS判断发生事件的应用程序,从[OS message queue]取出消息,添加到相应应用程序的[application m...原创 2020-02-15 12:25:59 · 199 阅读 · 0 评论 -
内嵌补丁
内嵌补丁内嵌补丁Patchme内嵌补丁内嵌补丁:难以直接修改指定代码时,插入并执行被称为“洞穴代码”的补丁代码后,对程序打补丁。代码补丁内嵌补丁对象文件文件&内存次数一次文件中1次,内存中每次运行时方法直接对指定位置打补丁提前设置洞穴代码,在内存中对指定区域解密时打补丁Patchme...原创 2020-02-15 11:26:05 · 184 阅读 · 0 评论 -
UPack调试——查找OEP
UPack调试——查找OEPOD运行错误解码循环设置IAT参考文献OD运行错误OD直接加载会报错,通过Stud_PE确定EP虚拟地址:并在OD中通过New origin here命令进行设置。解码循环设置IAT一般而言,压缩器执行完解码循环后会根据原文件重新组织IAT:参考文献《逆向工程核心原理》...原创 2020-02-14 20:25:13 · 197 阅读 · 0 评论 -
UPack PE头文件分析
UPack PE头文件分析Stud_PE比较PE头文件原始的PE文件头UPack后的PE文件头分析UPack的PE文件头重叠文件头IMAGE_FILE_HEADER.SizeOfOptionalHeaderIMAGE_OPTIONAL_HEADER.NumberOfRvaAndSizes重叠节区RVA to RAW导入表参考文献Stud_PE查看UPack后的文件:比较PE头文件原始的P...原创 2020-02-13 16:20:01 · 184 阅读 · 0 评论 -
从可执行文件中删除.reloc节区
从可执行文件中删除.reloc节区.reloc节区reloc.exe删除.reloc节区头删除.reloc节区修改IMAGE_FILE_HEADER修改IMAGE_OPTIONAL_HEADER参考文献.reloc节区EXE形式的PE文件中“.reloc”项对运行没什么影响对DLL和SYS而言“.reloc”项则是必须的.reloc一般位于所有节区的最后reloc.exe删除.re...原创 2020-02-13 11:46:22 · 839 阅读 · 0 评论 -
基址重定位表
基址重定位表PE重定位PE重定位操作原理基址重定位表IMAGE_BASE_RELOCATION结构体计算参考文献PE重定位PE重定位:向进程的虚拟内存加载PE文件(EXE\DLL\SYS)时,文件会被加载到PE头指定的ImageBase所指定的地址处。若加载DLL或SYS时,指定位置已经被占用,就会将其加载到其他未被占用的空间。PE重定位操作原理PE重定位的基本操作原理:在应用程序中查...原创 2020-02-12 17:03:01 · 150 阅读 · 0 评论 -
运行时压缩
运行时压缩数据压缩无损压缩有损压缩运行时压缩器压缩器保护器运行时压缩测试调试notepad.exe的EP代码notepad_upx.exe的EP代码参考文献数据压缩无损压缩无损压缩:经过压缩的文件能100%恢复有损压缩有损压缩:经过压缩的文件不能恢复原状,压缩多媒体文件时大部分使用有损压缩运行时压缩器运行时压缩器:针对可执行文件而言,可执行文件内部含有解压缩代码,文件在运行瞬间于内存...原创 2020-02-12 12:25:04 · 281 阅读 · 0 评论 -
PE文件格式
PE文件格式介绍PE文件格式介绍PE文件:Windows操作系统下使用的可执行文件,PE文件是指32位的可执行文件,也称PE32,64位可执行文件称为PE+或PE32+。PE文件格式PE文件种类:种类主要扩展名可执行系列EXE、SCR库系列DLL、OCX、CPL、DRV驱动程序系列SYS、VXD对象文件系列OBJ...原创 2020-02-11 16:00:34 · 247 阅读 · 0 评论 -
函数调用约定
函数调用约定函数调用约定cdeclstdcall参考文献函数调用约定函数调用约定:是对函数调用时如何传递参数的一种约定。函数执行完成后,栈中的参数如何处理?——不用管函数执行完毕后,ESP值如何变化?——ESP要恢复到函数调用之前,使得可引用的栈大小不会缩减;cdecl主要在C语言中使用调用方负责处理栈可以向被调用函数传递长度可变的参数#include "stdio.h"...原创 2020-02-09 12:12:28 · 124 阅读 · 0 评论 -
abex' crackme #2
abex' crackme #2运行abex' crackme #2VB文件的特征调试运行abex’ crackme #2VB文件的特征VB文件可以编译为本地代码(N code)以及伪代码(P code),本地代码一般使用IA-32指令,伪代码是一种解释器语言,由VB引擎实现虚拟机并可自解析.VB程序采用Windows操作系统的事件驱动方式工作,所以在main()或WinMain()中...原创 2020-02-08 12:13:39 · 472 阅读 · 0 评论 -
栈帧
栈帧栈帧调试示例StackFrame.cpp程序调试参考文献栈帧栈帧:栈帧就是利用EBP寄存器访问栈内局部变量、参数、函数返回地址等的手段。栈帧结构:PUSH EBP //函数开始,将现在的EBP入栈进行保存MOV EBP,ESP //保存当前ESP到EBP... //函数体,此时...原创 2020-02-07 11:26:12 · 171 阅读 · 0 评论 -
分析abex' creakme #1
分析abex' creakme #1abex' crackme #1Crack过程调试代码分析破解参数入栈参考文献abex’ crackme #1abex‘ crackme程序是由汇编语言直接编写,程序的运行效果如下:点击确定后:Crack过程调试通过OD加载程序,可以发现程序很短,逻辑也很清晰,就是做了一个简单的判断然后根据判断的结果进行不同的跳转。代码分析破解直接让函...原创 2020-02-06 13:07:29 · 320 阅读 · 0 评论 -
栈
栈栈栈的作用栈的特征栈栈的作用暂时保存函数内的局部变量调用函数时传递参数保存函数返回后的地址栈的特征栈的内存结构:进程中,栈顶指针(ESP)初始状态指向栈底,随数据入栈而上移,既栈是由高地址向低地址扩展的。...原创 2020-02-05 13:12:44 · 108 阅读 · 0 评论 -
IA-32寄存器基础
IA-32寄存器基础CPU寄存器基本程序运行寄存器通用寄存器段寄存器指令状态与控制寄存器指令指针寄存器参考文献CPU寄存器寄存器:是CPU内部用来存放数据的小型存储区域基本程序运行寄存器通用寄存器通用寄存器均为32位(4字节),共8个:EAX:(针对操作数和结果数据)累加器,所以Win32 API都会将结果返回值存储在EAXEBX:(DS段中的数据指针)基址存储器ECX:(字符串...原创 2020-02-04 15:37:05 · 463 阅读 · 0 评论 -
小端序标记法
逆向分析Hello World!Hello World程序Hello World程序原创 2020-02-04 13:22:17 · 158 阅读 · 0 评论 -
关于逆向工程
关于逆向工程逆向工程代码逆向工程逆向分析的方法静态分析动态分析源代码、十六进制代码、汇编代码“打补丁”与“破解”参考文献逆向工程逆向工程(RE):一般指通过分析物体、设备或系统了解其结构、功能以及行为等,掌握其中的原理并改善不足之处。代码逆向工程代码逆向工程(RCE):是逆向工程在软件领域的应用。逆向分析的方法静态分析静态分析是在不执行代码的情况下对代码进行分析,包括:文件类型、大小...原创 2020-02-01 00:46:02 · 326 阅读 · 0 评论