用户形象图片

早就听说pcshare的免杀需要做sys驱动文件的定位。记得06年的时候曾经专门研究过sys的免杀。但早就忘的干净了。今天有朋友提出来说这东西最新版本过主动防御。于是就来了精神。和他一起研究起来。


   不废话了。先抄家伙。myccl定位特征码。直接载入。定位瑞星的。最终定位结果  D90  位置存在特征。晕死。虽然驱动文件小。但也不能位置这么靠前吧?用C32载入看看




晕死。啥东西嘛。乱乱的。。sys文件又不能用od载入。只好硬改。。到汇编模式下看看。是个push命令。周围又没有什么相同的指令。由于改驱动弄不好就会死机。所以就没碰这代码。


  朋友这时候给了新思路。定位sys文件。如果用myccl定位出输入表函数的话。那么是不能去动它的。需要用multiCCL这款经典的定位工具把该段代码保护起来。然后重新定位出真实特征码。既然不知道特征码是不是输入表。干脆死马当活马吧!就先把它保护起来再定位。具体方法如下


   首先找到D90 按理论来讲。 需要找到D90对应的内存地址于是先OC转换得出10D90  然后需要搜索 90 0D 这个格式搜索出来就是对应的内存位置。但无奈我如何搜索都没有结果。


这时候陷入僵局。正想放弃的时候。突然想到。既然就是为了保护起来这么一段代码。而且他还是单一的特征码。所以只要保护只要保护到部分。就能定位出真正特征码了。为什么这么说因为杀毒软件对单一病毒特征码的分析是。当全部符合条件才成立。。那么比如“你好逐渐变黑”这句是特征码,那么只要我把“你好”保护起来。那么这个特征码就不成立了。不一定非要找到90 0D。只要找到个 90 0C 0B的什么也行。。于是呼。就继续搜索90 0C。0B。居然也没有。后来干脆。我直接从D90向上寻找。找到的第1处就是





一个90  0E









OK。e90 和D90差的不是很远。再继续向上找找。还有在不远初有个90 0E 再向上。就是一个90 8X了。还有就是PE头的90 00了。。于是经过判断。决定把保护段。选在 90 0E这里 再想上那里。跟我的90 0D  可就差的太多了。





OK。现在运行定位工具


multiCCL 开始定位。设置那里写保护区域。


保护到多少呢?又犯难了?


于是选在了D90这片混乱代码的结束处E80






保护好了。开始定位。具体过程不多说。定位结果是


Codz1=H_0000056C_0000056F_00000004_00000D0E


C32找到56C如图7








进入汇编模式下看看。


如图8



上下两个跳转指令。中间是特征码。于是首先想到。把上下两个跳转。调换位置。修改后被杀。于是。把中间这句CMP     DWORD PTR [110A0],0


nop 掉。然后写在nop出来的第2个空位上面。保存。成功免被瑞星查杀!测试驱动加载。一切正常上线!又给dll以及exe做了免杀后。主动防御顺利通过!





总结。这次过程技术含量很低。但学到的东西还是不少的。比如。保护代码定位。以及向上寻找内存代码保护。等等技术。希望大家在学习别人的教程的时候。不要总强调对方的步骤。不然就会像我刚开始那样。始终找不到90 0D 换个思路想问题。。也许你的视野一下就开阔了。

-]皒′承 (284428088) 于 2008-02-01 19:12:13 对此贴进行了编辑
回到帖子顶部