OllyDbg使用笔记

OD步过后,返回到之前某位置,重新单步执行

找到你想返回的行,

右键选择New origin here,快捷键Ctrl+Gray *,

然后程序会返回到这一行,再次按F7或者F8等执行即可

77C3078F再次执行

定位代码,逐行执行

对于代码量较小的程序,这种方式也是可以接受的。

方法就是一直F7配合F8等,直到调用我们想要的功能,

CALL调用的这个函数就是我们要定位的函数了。

定位代码,快速搜索

OD加载待调试程序时,会预分析过程。

此过程会查看进程内存,程序中引用的字符串和API会被摘录出来。

也可以利用这个特点快速定位。

过程如下:

1.首先用OD打开待调试的程序

2.右键, Search for, All referenced text strings

这时候会打开R窗口,显示搜索的结果,

3.R窗口中查询你要查询的字符串

右键Search for text,输入你要查询的字符串

找到你要查找的字符串,比如Hello World!

4.双击,定位到函数

5.Dump窗口查看数据

点击下方Dump查看内存窗口,

快捷键Ctrl+G,或者

右键Go to, Expression

输入Hello World!地址00A42108

定位代码,API检索定位,在调用代码中定位

同样利用OD预分析加载的特性,通过API实现代码定位。

用OD打开待调试的程序,然后,

右键,Search for, All intermodular calls,

查询结果会显示在R窗口,

你可以对API列表排序,Sort by, Destination

然后,找到你认为是目标的那个API函数,双击,

比如,我这里就打印了一个字符串Hello World!,API函数用的MessageBox,我就找到这个API双击

然后,OD会定位到目标函数内部,看看是不是你要找的那个。

同样的可以在Dump窗口查看内存。

定位代码,API检索定位,API代码中定位

有时候发布的程序代码会被压缩或者保护起来,这样OD的预分析加载就废掉了,上面的方式就不能使用了。

这时候,我们需要通过对程序加载的DLL进行分析,在DLL中筛选合适的目标API,进API中下断点,然后调试。

比如还是用MessagexBox这个API打印Hello World!字符串,我们假设程序被压缩或者保护了。

分析下目标特征,弹窗打印了一个字符串,那这个应该是使用的MessagexBox这个函数,这个API所在的DLL

USER32.DLL,那我们就从USER32.DLL下手。

打开内存映射窗口,菜单栏,View, Memory 或者快捷键 Alt+M

找到USER32.DLL,确认被加载到了内存,

列出所有模块中的API,点击C窗口,右键,Search for, Name in all modules,结果会显示在N窗口,

可以点击Name按名字排序,键盘直接输入要查询的API名字,就会自动定位,

上图中显示出了含有MessageBox字符的所有DLL,这里我们只关心USER32.DLL

双击MessageBoxW(UNICODE版),跳转到函数实现代码,F2下断点,F9继续执行代码。

程序暂停到了API断点处,F8单步步过执行代码,成功打印显示窗口。

左下角寄存器ESP的值就是调用该函数的进程栈地址,这里我忘记记录了,重新模拟一遍,仅作验证。

00A41014是返回地址,也就是CALL调用MessageBox后,下一条要执行的指令所在地址,那CALL调用就是上一条真正调用MessageBox的地址。

跟踪查看地址,Ctrl+G

红色表示过程调用地址,绿色表示过程返回地址。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OllyDbg是一款用于调试和分析Windows可执行文件的工具。使用它可以帮助开发人员理解程序的运行方式,以便进行错误修复和代码优化等工作。 要开始使用OllyDbg,你可以按照以下步骤进行操作: 1. 下载和安装OllyDbg:你可以从OllyDbg的主页(http://home.t—online.de/home/Ollydbg)下载最新版本的OllyDbg,并按照安装向导进行安装。 2. 启动OllyDbg:你可以通过命令行指定可执行文件,也可以从菜单中选择,或直接拖放可执行文件到OllyDbg中。另外,你还可以重新启动上一个被调试程序,或者挂接(Attach)一个正在运行的程序。OllyDbg支持即时调试,不需要安装,可以直接在软盘中运行。 3. 调试功能:一旦你打开了一个可执行文件,OllyDbg将会显示程序的汇编代码和相关的调试信息。你可以使用OllyDbg的各种功能来分析代码、设置断点、查看和修改寄存器和内存中的值,以及跟踪程序的执行流程。 4. 插件功能:如果你需要增加更多功能,你可以使用OllyDbg的插件。插件是一个DLL,可以通过OllyDbg的主页免费下载。插件可以提供额外的调试功能,例如反汇编插件、内存查看插件、脚本扩展等。 请注意,OllyDbg的插件是无法通过调试OllyDbg本身的方式来进行调试的,因为Windows系统不能在同一个应用程序中加载和运行两个可执行文件。 总之,OllyDbg是一款功能强大而灵活的调试工具,使用它可以帮助你分析和调试Windows可执行文件。你可以根据需要选择运行方式、设置断点、查看和修改内存值等。如果需要更多功能,可以考虑使用插件来扩展OllyDbg的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Ollydbg入门](https://blog.csdn.net/n3verl4nd/article/details/84443295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值