好友
阅读权限40
听众
最后登录1970-1-1
|
ps520
发表于 2010-9-11 17:58
本帖最后由 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[LCG]
放出源码,大家自己体会吧。转换WL使用的MAP用了很龊的手段。 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|