图灵社区搜到一本书:
可在线阅读第二章,就读一读吧。
用我的vs2022编写了一个简单的helloworld程序,注意生成的是win32,release
按书上提示,到OllyDbg v1.10 下载了最新的1.10工具,这个工具看网站上说已经停止开发了,可惜了。目前只支持win32, amd64只没有开发完就freeze了,原因不明。还有1个plugin,不知道啥作用,暂不安装。(plugin下载下来,发现还要用古老的BC或者VC5.0编译,那都是90年代的工具,手边并没有)
安装位置:C:\cpp\vc2022\odbg110
看雪学苑有定制版:看雪学苑-看雪-安全培训|安全招聘|www.kanxue.com
用ollydbg打开helloworld.exe, 如图:
很厉害的样子,可以不会用,按书上的一步一步走吧。
在EP代码的00FE126C地址处使用Step Into(F7)指令,进入40270C函数--cookie函数,不知道啥意思,和书上并不一样。
单步调试好像F8走几步就卡住了,不知道怎么解决。
未完待续,这个OllyDbg工具用起来还是比较难的。
2025.04.04 今天学会了单步,走到Messagebox调用的位置,试着改改内存。
单步位置如图:
查看MSDN文档,获取MessageBoxW各参数的功能,找到弹出对话框的标题参数(PUSH Hello OFFSET xxx),此参数保存了字符串的首地址。准备修改www.reservecore.com这一行
细看标红的两个部分,地址应该是0x1F2100.选中数据窗口,使用快捷键Ctrl+G,弹出数据跟随窗口。输入查询地址0x1F2100,单击“确定”快速定位到该地址处。果然不错:
双击HEX数据窗口中“77”处,弹出对应的编辑数据对话框,
去掉“保持大小”的勾选,可向后修改数据。在ASCII文本编辑框中,输入“I Like C++”,由于C\C++中字符串以00结尾,需要将字符串最末尾的数据修改为00。选择十六进制编码文本框,在末尾处插入00。单击“确定”按钮,完成对字符串的修改。
最终改成了乱码:
虽然没有成功,但是已经知道如何修改内存了。今天到此位置。
优快云上别人写的一篇可参考:《逆向工程核心原理》第2章——逆向分析HelloWorld!程序_逆向工程核心原理pdf-优快云博客