逆向分析HelloWorld程序 实验目的:修改如下图窗口中的文字“Hello World!”为“Hello Reversing”和“Hello Reversing World!!!”
逆向分析HelloWorld程序
一;直接修改字符串缓冲区 打开界面,我们发现窗口中弹出字符串“Hello World”我们知道弹框通常使用的API是MessageBox。那我们找到字符串“Hello World”位置可以等同于找API函数MessageBox位置。当然也是可以根据字符串来寻找 右击 ---》查找 ---》所有单靠文本字串
逆向分析HelloWorld程序
查找到对应字符串
逆向分析HelloWorld程序
双击字符串,切换到如下图界面,查找到字符串存放虚拟地址
逆向分析HelloWorld程序
在内存中找到该虚拟地址位置。
逆向分析HelloWorld程序
修改内存字符串
逆向分析HelloWorld程序
逆向分析HelloWorld程序
保存文件
逆向分析HelloWorld程序
逆向分析HelloWorld程序
逆向分析HelloWorld程序
验证:
逆向分析HelloWorld程序
二;在其他内存区域生成新字符串并传递给消息函数
如下图:我们查看汇编代码,发现字符串“Hello World”是通过一个PUSH将一个虚拟地址压入栈。该虚拟地址指向了内容就是字符串“Hello World”。那么我们来换个思路,我们将内容为其他字符串的虚拟地址替换去压入栈,那是不是就是修改了字符串“Hello World”了呢?
逆向分析HelloWorld程序
寻找内存其他位置,且输入修改之后的字符串
逆向分析HelloWorld程序
修改汇编指令
逆向分析HelloWorld程序
F9运行
逆向分析HelloWorld程序
|