十八、插件[Plugins]
插件是一个DLL,存放在OllyDbg的目录中,用于增加OllyDbg的功能。你可以从OllyDbg的主页上(—online.de/home/Ollydbg)免费下载插件开发工具包plug110.zip。
插件可以设置断点,增加标签和注释,修改寄存器和内存。插件可以添加到主菜单和很多的窗口(比如反汇编窗口、内存窗口)的快捷菜单中,也可以拦截快捷键。插件还可以创建MDI(多文档界面)窗口。插件还可以根据模块信息和OllyDbg.ini文件,将自己数据写到.udd文件中;并能读取描述被调试程序的各种数据结构。插件API包含了多达170个函数。
许多第三方插件都可以从Internet网上获得,比如由网友TBD创建并维护的OllyDbg的论坛()。
安装插件的方法:将DLL复制到插件目录[plugin directory]中,然后重新启动Ollydbg。默认情况下,这个插件目录为ollydbg.exe文件所在的目录。
现在的版本中已经包含了两个“原始”插件: 书签[Bookmark]和命令行[Command line]. 他们的源代码都保存在plug110.zip.文件中。这些插件都是免费的,你可以任意修改或使用它们。
十九、技巧提示[Tips and tricks]
(2)假使你修改了内存中的执行文件,这时你想恢复修改的部分,但是你忘记哪里被修改了,你可以把原始文件当作备份进行加载,这样你就可以找到修改的部分了。
(3)分析前,先扫描 O 文件。这时OllyDbg会对已知 C 函数的参数进行解码。
(4)一些表中包含了隐藏数据。可以通过增加列宽来显示出来。
(5)所有数据窗口(包括反汇编窗口),可以通过双击显示相对的地址。
(6)你可以通过 Ctrl ↑ 或 Ctrl↓ 对数据窗口翻动一个字节。
第四章 其他功能
一、调试独立的DLL[Debugging of stand—alone DLLs]
打开DLL,也可以直接将其从资源管理器拖放到OllyDbg上。OllyDbg 会询问你并将该文件的全路径作为参数传递给loaddll.exe。然后链接库被加载并停在代码的入口(<DllEntryPoint>)。你可以设置断点,运行或跟踪启动代码,等等。在初始化完成后,应该程序会再次暂停。这次停在标签名为 Firstbp 的位置,其在立即进入主消息循环之前。
现在,你可以调用DLL函数。从主菜单选择“调试[Debug]—>调用DLL输出[Call DLL export]”。这时会弹出一个对话框。由于这个对话框是无模式对话框,因此你仍然能够使用OllyDbg的全部功能,比如查看代码、数据,查看断点,修改内存等等。
选择你想调用的函数。例如我们将开始使用 USER32.DLL 里的MessageBox 函数。注意loaddll.exe 已经使用了这个链接库,因此会假定这个 DLL 已经初始化而不再调用入口。MessageBox这个函数名是通用函数名,事实上,这个函数有处理 ASCII 的 MessageBoxA 和处理 Unicode 的MessageBoxW 两种。我们继续往下看:
在我们选择这个函数后,右边的消息框中会出现 Number of arguments: 4(有四个参数)的字样。OllyDbg 会根据函数尾部的RET 10语句来正确识别参数的数量。RETnnn 是使用PASCAL调用约定的函数的典型特征。(参数被放入栈中,第一个参数会被最后一个压入栈中,函数调用完毕后,参数会被遗弃)。大多数的 WindowsAPI 函数都是PASCAL形式的。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-41789-24.html
是怨那些害人的传统观念
”易烊千玺朝我笑了笑