![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
逆向工程
5777opup
小白的学习记录,遇见大佬请见笑。
展开
-
【逆向工程笔记】第13章PE文件——给定一个exe文件,如何找到第一个IID文件
第1个IID的函数地址列表(76324906为文件的入口地址,不真实,要找内存的入口地址)在winhex里导航至6EAC,第1个IID的库名字 comdlg32.dll。WINHEX跳转至6EFA,找到库名字为SHELL32.dll。第1个IID:(从6A04向右数20个字节,为下图黄色区域)在PE中计算:RVA=00007AAC,RAW=6EAC。找到真正的入口地址,PE-数据目录表-IAT表-入口地址。WINHEX导航至6D90:(数40个字节)打开Winhex,导航至6A04。原创 2023-05-31 12:32:59 · 484 阅读 · 0 评论 -
【逆向工程核心原理】第11章笔记——视频讲座(去消息框)
F9运行,观察右下角窗口,确认函数的起始代码存储在栈中的返回地址(7401E5A9)观察EAX为00000001,说明都是相同的运行代码,所以只要对一处打补丁即可。继续运行,弹出消息框,选择确定,出现主画面,按Nag:又会跑到2CFE.找到view——breakpoints——disabled,全部激活。跳转到7401E5A9,找到调用指令7401E5A7,设置断点。运行到7401E5A7,观察到EAX为00402649。转到00402649,最终跳转到402C17。给402C17添加断点,重新启动。原创 2023-04-19 09:37:41 · 320 阅读 · 0 评论 -
【逆向工程核心原理】——第10章笔记 函数调用约定
使用寄存器去传递需要传递给函数的部分参数。下一次再向栈存入其他值时,原有值会被覆盖掉。要恢复到函数调用之前,这样可引用的栈大小才不会缩减。调用函数前要先把参数压入栈然后再传递给函数。调用者:ADD ESP,8。调用者:没有看到加法指令。被调用者:RETN 8。原创 2023-04-19 08:49:13 · 243 阅读 · 0 评论 -
【逆向工程核心原理】第八章笔记——abex‘crackme #2原理分析及如何计算序列号
F9:断点之间的运行,F8:逐步调试0040123D:入口点的指令733735A4属于WindowsAPI函数的代码触发事件找到对应的用户代码用字符串检索法找到对应错误语句,设置断点运行程序LEA : LoadEffectiveAddress载入有效地址,把后面值的地址传到前面。猜测可能比较EDX,EAX。在00403321,右边框中EAX可跟踪dump。Dump-右击-long命令:显示数据为32位地址和十六进制的数值,并尝试将十六进制的数值当作地址进行解析可变长字符串。原创 2023-04-14 08:48:58 · 401 阅读 · 0 评论 -
【逆向工程核心原理】第8章笔记——abex‘crackme #2
再按F8逐步调试,观察EDX,EAX,调试到00403329时,跳转EAX的地址到dump窗口。可以发现Name为ReserveCore 的Unicode为“B6C9D7C9”在00403321处设置断点,先按F9运行,弹出消息框,先输入Name。猜测可能是正确的序列号,输入显示yes.原创 2023-04-06 20:41:47 · 374 阅读 · 0 评论 -
【逆向工程核心原理】第七章笔记——程序运行时栈的变化情况及栈帧代码注释说明
stackframe.exe程序运行时栈的变化情况及栈帧代码注释说明原创 2023-04-06 20:07:26 · 266 阅读 · 0 评论 -
【逆向工程核心原理】笔记——栈帧
0040101A:POP EBP出栈,将栈顶数据给EBP(栈顶数据:main函数的栈底EBP)00401018-0040101B:回收空间,分配给加法的栈帧回收,再恢复main函数的栈帧。把ESP的值传给EBP,将EBPB变成mian函数的EBP, ESP,EBP都指向同一指令。00401015:将EBP-8和ESP-4相加,再放入EBP-8 1+2=3。00401006-00401009:指向a=1的指针指向EBP-8。0040100C-0040100F:指向b=1的指针指向EBP-4。原创 2023-03-30 21:39:07 · 300 阅读 · 0 评论 -
【逆向工程核心原理】第六章——分析abex‘crackme #1
CMP EAX,ESI,COMPARE 将EAX和ESI做对比,内部通过EAX-ESI完成,若两操作数相等,CMP=0,ZF=1.如果不等,ZF=0。比较C语言代码与汇编代码可以看到,函数调用时的参数顺序(正序)与参数入栈时的顺序(逆序)相反。执行到0040101D时,我们可观察到:EAX=00000003,ESI=00401000。按F8逐步执行,运行到40100E的时候点一下消息框 “确定”,之后继续F8执行。函数名(参数1,参数2 ,参数3,参数4)按"确定",显示"这不是一个光驱!原创 2023-03-27 08:44:45 · 346 阅读 · 1 评论 -
【逆向工程核心原理】第五章——栈及栈操作示例(OllyDbg中栈压入或弹出数据时栈顶指针的变化规律)
POP EAX,ESP=ESP+4,将指令中的数据传送至EAX。原创 2023-03-26 21:34:06 · 510 阅读 · 0 评论 -
【逆向工程核心原理】第二章—— 逆向分析Hello World! 在Ollydbg中快速查找指定代码的四种方法
这种情况下,DLL代码库被加载到进程内存后,我们可以直接向DLL代码库添加断点。A)是操作系统对用户应用程序提供的一系列函数,它们实现于C:Windowsisystems32文件夹中.dl文件(如keme132.dI1、USer32.dI、gdi32.d1l、advapi32.dI1、ws2_32.dI1等)内部。使用压缩器/保护器工具对可执行文件进行压缩或保护之后,文件结构就会改变,此时OllyDbg就无法列出API调用列表了(甚至连调试都会变得十分困难)。双击“Hello word!原创 2023-03-19 16:11:14 · 1457 阅读 · 2 评论 -
【逆向工程核心原理】第二章——逆向分析Hello World! OllyDbg调试器操作指令及跳转到指定地址的四种方法:goto命令,设置断点,注释,标签
从指定的位置开始调试代码,四种方法。调试器操作指令(用于代码窗口)原创 2023-03-19 11:19:20 · 999 阅读 · 0 评论