[LCG]如何让VMPHelper支持其他壳的SDK模式[DIY篇]
本帖最后由 ps520 于 2010-9-12 00:30 编辑VMPHelper的识别能力可谓惊人,并且处理效率也是一流。但只处理VMP似乎有点不充分利用资源,那么怎么才能同时支持N个壳的SDK呢?
让我们一起来探索下吧。
===================================
第一步,确认实现方法
我们要实现自动找地址的功能,OKey,如果你会写,可以跳过本篇;如果你不会,当然我们就会考虑patch VMPHelper了。
如何patch,最简单的莫过于将VMPHelper写出的地址数据通过文本格式处理转换下,那么我们就按这个思路写代码吧!
第二步,获取关键信息
我们需要哪些信息呢?第一:写到的文件信息。因为写到的文件(*.vms)中包含所有数据,但是如何获取呢?
当然是HookApi了。
那么如何HookAPI才是最方便的呢?
通过调试我们发现,VMPHelper通过CreateFileA获得文件句柄。(你可以下断所有的打开文件API。)
直接HookAPI,如果文件名的后缀是.vms,即可确定是我们需要的SDK文件路径。
那么如何知道文件被写入完成了呢?
当然你可以根据VMS的结束标志判断,但这并不及时。如果使用死循环一直读取,会加大程序的负荷。
所以我们还是想当用HookApi。
写完数据Nooby会弹个MessageBox:"Done."
Hook MessageBoxA又可以轻松获得这个完成数据了。
接下来干嘛呢?
*注意不要弹done啊!!!!
1.读入数据,删除原文件。
2.根据你想支持的壳的SDK格式替换数据
3.导出文件。
4.模拟原始信息框DONE.顺便加句:"其他壳支持by xxx"
当然你可以把所有壳的格式制作成ini配置文件
这样就可以让用户自己扩展壳的功能了。
这样我们又通过修改的方式让一个神器更添光彩。
by Luck
放出源码,大家自己体会吧。转换WL使用的MAP用了很龊的手段。 多谢PS520的讲解,我想问一下,这个东西到底怎么用法,我下载了,一直不知道怎么用,有什么用,但有很多人支持这个工具,多谢了. ps520神出现了? 完全看不懂 天书依旧 大牛能不能多打几个字。。 完完全全彻彻底底看不懂 :lol多打几个字可是会蛋疼的 完全不懂,只能膜拜