Office Tab13.10 过黑名单 简明版 by ZeNiX 2018-04-02 上一篇的方法,大家搞定了没有呢? 由于发现不少朋友一直搞不定,于是我再介绍个简单的姿势给大家练习。 有些上一篇提到过的内容,在这里就不重复了。 有需要的时候,记得回去翻翻上一篇。 首先我们需要知道:有个核心的 DLL 是隐藏在 Userdata.dat 里面,验证注册信息时动态释放的。 我们在 VirtualAlloc 下断点,观察是否来自 Userdata 以及大小为 2150400 file:///F:/TMP/msohtmlclip1/01/clip_image001.jpg 然后再 VirtualAlloc 返回的地方停下来,新申请的内存区块基址保存在 EAX。 我们现在就跟随过去看的话,内容还是空的。 这时候可以取消对 VirtualAlloc 的断点了。 file:///F:/TMP/msohtmlclip1/01/clip_image003.jpg
从 VirtualAlloc 返回后,会回到 Userdata 的领空。 然后,它开始往刚才申请的内存里面填充代码。 有兴趣的朋友可以慢慢跟随代码,了解过程。 赶时间的朋友,直接往下拉到返回的地方,按一下 F4 让它跑到这里停下来。(喜欢 F2 再 F9 的也可以。) file:///F:/TMP/msohtmlclip1/01/clip_image005.jpg 这时候代码已经填充完毕,但这里并不是真实运行的代码,这里的代码会被搬到另一个内存空间去运行。 我们在它被复制过去之前,就修改的话,复制过去的代码也会跟我们修改过的一样。 file:///F:/TMP/msohtmlclip1/01/clip_image007.jpgfile:///F:/TMP/msohtmlclip1/01/clip_image009.jpg 这段搜索的代码,就是比对黑名单的代码。 [eax] 以及 [ecx] 就是上一篇那个不容易搞清楚的黑名单地址。 由于我个人比较调皮,修改的方式比较随性,跟一般的教程不太一样,这只是个人风格,没有好或坏之分。 8B30 mov esi,dword ptr ds:[eax] 3B31 cmp esi,dword ptr ds:[ecx] 7474 je short 02AAE29B file:///F:/TMP/msohtmlclip1/01/clip_image010.jpg 补充一点,刚才提到我们修改的代码会被复制到另一个内存空间去运行。 因此,万一你在内存搜索的时候发现找到两个,那么就是错过第一时机了,不要紧,修改第二个就行了。 不放心的话,两个都修改吧! 8B 30 3B31 74 74 -- -- ---- 48 90 file:///F:/TMP/msohtmlclip1/01/clip_image012.png
如果曾经注册成功过,它会在系统里面写入注册信息。 每次启动的时候,都会去验证,因此交给你们自己想想该怎么应付它。 file:///F:/TMP/msohtmlclip1/01/clip_image014.jpg ZeNiX 2018-04-02
|