-
-
[原创]OD插件 - MemoryMonitor v0.1 模仿CE监视内存访问
-
发表于:
2014-9-24 11:44
13762
-
[原创]OD插件 - MemoryMonitor v0.1 模仿CE监视内存访问
自从学习了OD脚本和OD插件之后,真心觉得可扩展才是OD真正的意义,可以自己写DLL与OD通信,从而操控OD。
本插件是我这两天的学习的附属产品,我已经尽可能使自己的代码写的像人样了,小菜作品,欢迎大家批评指正。
功能:
利用内存或者硬件断点,对指定地址下断,一旦有指令对该地址操作了,就记录下寄存器,并打印出来。类似CE里边的,查找访问此地址的代码。这样可以从汇编角度,利用动态地址定位到基址。进而分析程序结构。
下面说一下使用说明:
首先设置一下,
采用内存访问断点,记录eax的值。并且在stop后合并重复的EIP,使每个EIP只出现一次,避免某些地址访问过多影响我们的判断。
第二就点击插件中的Start菜单,开始下断,并响应断点回调。
使用DebugView可以查看到每次断下的信息,可以用“@@@”过滤。
点击stop后,停止记录。
可以看到“###”开头的会合并相同的EIP输出。
再来试试硬断,
这次我们去掉合并重复EIP,采用硬件访问,长度默认都是1,记录三个寄存器。
看一下效果,我们监视同样的地址,但发现硬件断点和内存断点记录的并不一样。
因为硬断的特殊性吧,大小是1,记录不完全,并且记录的EIP是在下一行断下的。
我认为这就是硬断的缺点,而内存断点因为内存页面大小和频繁的切换属性,会影响监视进程的速度。希望大牛帮忙科普一下...
好了,这是小菜的作品,希望有人喜欢。接下来我想写一个能帮助我们找某地址的跳转来自何处的插件。例如有很多跳转跳到相同的地址,我们需要判断是那个跳过来的。我的思路是通过关键的寄存器值来判断。
最后给朋友打个广告:
广州多玩YY招聘反外挂工程师,欢迎咨询Q2921632442。
成品+源码:(只包含所有非VS创建的代码)
MemoryMonitor_0.1.zip
[课程]Linux pwn 探索篇!