天道酬勤 发表于 2025-3-22 12:06:22

逆向工程核心原理读书笔记 01

odb:

- Ctrl+F2 重新调试
- f7:步入,f8:步过
- ctrl+F9:一直运行,知道ret

拿helloworld.exe来演示:

刚进去的EP:

!(./mdimg/2/image-20211101164149494.png)

先是个call,,然后是jmp

call会将下一条指令的地址压栈:

!(./mdimg/2/image-20211101164308875.png)

右侧是odb的注释,红色是API,

ret后:

!(./mdimg/2/image-20211101164549043.png)

接下来找main函数,步入后:

!(./mdimg/2/image-20211101164845815.png)

继续步入,并没有发现messagebox的调用,退出该代码,继续如上步骤,会遇到:

!(./mdimg/2/image-20211101165127942.png)

目前不需要进入被调用的函数,步过,继续,会遇到:

!(./mdimg/2/image-20211101165354261.png)

调用了4001000,步入:

!(./mdimg/2/image-20211101165437815.png)

就是main了。

---

修改字符串,两种方法

1.直接改缓冲区,

!(./mdimg/2/image-20211101170037045.png)

!(./mdimg/2/image-20211101170050604.png)

!(./mdimg/2/image-20211101170125180.png)

f9运行,成功修改

选中修改的字符串,右键复制到可执行文件,然后在右键保存文件就OK。            .

第二种就是直接修改push的地址。

xxxxbzn1 发表于 2025-3-22 12:29:51

学习学习~

898727201 发表于 2025-3-22 15:50:13

学习一下,谢谢!!
页: [1]
查看完整版本: 逆向工程核心原理读书笔记 01