浅试《逆向工程核心原理》快速查找指定代码的四种方法

新人拙作,如果有错误希望指正,谢谢!!!

一、环境搭建:

windows操作系统及ollydbg(注:这里的系统要求和调试工具不唯一)。

调试程序:http://HelloWorld.exe https://www.aliyundrive.com/s/ycqm9SRjNhT 

二、实验目标:

查找main()函数中调用MessageBox()函数的代码。

三、正文:

1、代码执行法:

:此方法适用于代码量较少的程序。

(1)打开od-->放入调试程序(程序放在文章末尾)-->然后一直按F8

出现下面的结果:

我们发现出现这个消息框的地址401144处有一条调用函数call 00401000。

(2)重新调试(Ctrl+F2)-->然后按F8(在地址0040113E处暂停)-->然后按F7

出现以下结果就代表我们找到目标了:

2、字符串索检法:

:此方法适用于我们了解此程序的一些信息。

(1)打开od-->鼠标右键-->查找-->所有参考文本字串

 英文版od:鼠标右键-->Search for -->All referenced text strings

(2)找到我们的目标-->双击

(3)结果如下:

3、API检索法(1):在调用代码中设置断点:

:1.此方法要对API代码有所了解。2.对被压缩器/保护器操作过的程序此方法作用有限。

(1)打开od-->鼠标右键-->查找-->所有模块间的调用

英文版od:鼠标右键-->Search for-->All intermodular calls

(2)找到我们的目标-->鼠标双击

(3)结果如下

4、API检索法(2):在API代码中设置断点:

:此方法对PE结构和汇编语言有较高要求(虽然此次实验体现不出来)

(1)打开od-->打开内存映射窗口(快捷键:Alt+M)-->观察user32库

(2)打开All names窗口

打开方法:鼠标右键-->查找-->所有模块中的名称

(3)在All names窗口中对着键盘直接敲messageboxw-->找到目标-->双击进入

(4)到达下面程序-->下断点(F2)-->然后运行代码(F9)-->结果如下

下断点:

结果如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值