|
3.内存特征码的修改
过去我们已经验证了瑞星的文件和内存用了两套特征码,现在KV也具备了内存检测功能,是否也同样是两套特征码呢?我试了一下,生成服务端并用KV检测,不报警,说明文件特征码已成功修改。但双击运行一下,告知没有权限或找不到文件,一切对服务端文件的操作都给禁止了,这肯定是KV搞的鬼。原理我不太清楚了,也许是KV虚拟机执行后检测到内存特征码吧,但这说明一个问题:内存特征码也得改!
定位内存特征码时可每一回合点暂停,并用KV检测内存,根据报警文件的名称选择CCL的复选框,再点击运行,进入下一回合,直到最后CCL给出结果。至于KV提示的“是否清除”,点否既可。
过程不讲了,直接给结果。对于PcClient.dll,将10002C49处的call 10002BA0改为call 10002C67,并在10002C67处的空白添加如下代码:
10002C67 E8 34FFFFFF call PcClient.10002BA0
10002C6C C3 retn
相当于做了一个间接的CALL。
第二个PcKey.dll在改完文件特征码后直接内存免杀,检验的方法为用OD加载,并用KV检测内存,dll和exe方法一样。
就剩下PcInit.exe了,还真有点麻烦,因为会出现定位结果处怎么修改都不行的情况,下面边说边解释,并给出解决方法。PcInit.exe的内存特征码定位结果倒是很简单,就一处:
0001 00001798 00000010 000017A8
该处代码为:
00401798 je PcInit.00401A58
0040179E mov eax,dword ptr ss:[ebp-20]
004017A1 cmp eax,dword ptr ds:[esi+8]
004017A4 jnz PcInit.00401A58
修改起来很简单,将je处的跳转地址改为一个空白地址004025E0,在空白处添加一个jmp就可以了:004025E0 jmp PcInit.00401A58。可这样修改后,用OD加载仍旧报警。我在这里耽误了好一段时间,最后决定改一下入口试试。在空白处添加新的入口:
004025E5 68 3C244000 push PcInit.
004025EA 58 pop eax
004025EB FFE0 jmp eax
保存后用PeInfo将PcInit.exe的入口改为000025E5。保存修改后再用OD加载并用KV检测内存,呵呵免杀。看来杀软的特征码判断确实和入口处代码(或偏移)相关,至少对待一部分程序是这样。
4.效果检测及PcShare的卸载
由于我没有肉鸡,所以只能在自已机器上检测一下运行情况,而能否正常工作就不试了,应该没问题。先生成服务端,再打开KV的全部监视,双击运行。嘿嘿,服务端的图标一闪就没了,而KV丝毫没有察觉。打开IcsSword,在SSDT里查看PS驱动是否加载。如图5所示,列表中红色的Yxxxxxxx.sys就是PS的核心,PS的文件名总是以Y开头,后面7个字母随机。还有几行红色的KRegEx.sys是什么呢?那是KV的驱动。查看进程,多了个iexplorer.exe,关闭它马上又会重启,这是因为在一个svchost.exe的进程中有守护线程。
打开KV,此时无论你用内存检测还是文件检测都没有用了。(如果可以检测出来,当初KV是不会让PS加载的。)顺便讲一下删除的方法,先在IceSword里的File里将windows\system32\drivers\Y*.sys删除,再重启动计算机。这时另一个被释放的文件windows\system32\Y*.D1L及注册表中的数据就现身了,删除之(也可以启动到DOS下删除)。在注册表里查找Y*,删除所有项就OK了。btw:IceSword确实猛!
结语:
看来靠无休止的升级杀毒软件和打补丁是没法儿保证电脑的安全的,主要还是用户的安全意识和水平的提高。介绍这个方法不是让大家都去改马,而是探讨一种方法,也是为了杀软更好的进步。 上一页 [1] [2] [3] |