逆向工程01

逆向工程学习01

一、HelloWorld

#include "windows.h"
#include "tcar.h"

int _tmain(int argc,TCHAR **argv[])
{
    MessageBox(NULL,
    L"Hello World",
    L"www.reversecore.com",
    MB_OK);
    return 0;
}

二、使用步骤

1.编译后生成HelloWorld.exe,使用ollydbg打开该文件

ollydbg打开HelloWorld.exe说明

2.ollydbg指令说明

ollydbg基本指令:
(1)Restart ctrl+f2 重新开始调试
(2)Step Into F7 执行一句,遇到调用命令,进入函数代码内部
(3)Step Over F8 执行一句,若遇到调用命令,则一次执行完
(4)Execute till Return Ctrl+F9 一直在函数代码内部运行,知道遇到RETN命令,跳出函数
(5) 运行 F9 运行
(6)运行到光标处 F4
(6)Gotto 命令 ctrl+g 输入地址,即可跳转
(7)注释命令 ;
(8)添加标签 :
(9) 设置断点 F2

3.ollydbg查找main()

(1)手动分析
重点观察Call命令,使用F7依次执行,遇到函数调用,则F7进入函数内部,观察是否有MessageBox() API代码,如果没有,则Ctrl+F9跳过。
MessageBox()API代码如下图所示。
在这里插入图片描述
一步步执行上述步骤,会发现一个可疑的函数调用,如下图所示
在这里插入图片描述
按F7进入,则会出现上面提到的MessageBox()API代码,接着执行,会出现弹窗,证明确实是main()函数。
(2)字符串检索
ollydbg载入待调试程序时,会把程序中字符串和调用API摘录出来。
鼠标右键->search for->all referenced text strings,结果如下图所示。
在这里插入图片描述
前两行是messagebox的字符串,第三行由方法一可知是主函数。

4.打补丁修改Hello World字符串

通过3的方式进入main()内部,如下图所示
在这里插入图片描述
可以看到第三行和第五行是对字符串进行赋值,按F7执行到第6行时,可以在右下角的栈中看到字符串对应保存地址。
在这里插入图片描述
记住地址,在左下角的数据区按ctrl+g,跳转到Hello World对应的地址,
在这里插入图片描述
如上图,在UNICODE可以更改自己想要的字符串,但是一般不能超过原来的字符个数,更改确定后,可以看到更改已生效,接着执行,窗口的字符串也随之改变。在这里插入图片描述
如果要改变字符超过原有字符长度,则需要另外找一个未被使用的地址,赋值相应字符串。

在这里插入图片描述
这里全为0即未被使用的地址。选中目标大小长度,按Ctrl+E即可编辑。在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值