CCL MYCCL Multiccl定位的原理

1.CCL定位原理

 假设一段木马程序代码是这样(0代表NULL,X代表程序代码,a、b、c等代表特征

 

码):

001h:XXXXXXXXXXXXXXXXXXXX

002h:XXXXXXXXXXXXXXaXXXXX

003h:XXXXXXXXXXXXXXXXXXXX

004h:XXXXXXXXXXXXXXXXXXXX

005h:XXXXXXXXXXXXXXXXXXXX

 

当用CCL进行手动定位的时候,它生成了5个文件

==========File1===========

001h:00000000000000000000

002h:XXXXXXXXXXXXXXaXXXXX

003h:XXXXXXXXXXXXXXXXXXXX

004h:XXXXXXXXXXXXXXXXXXXX

005h:XXXXXXXXXXXXXXXXXXXX

==========File2===========

001h:XXXXXXXXXXXXXXXXXXXX

002h:00000000000000000000

003h:XXXXXXXXXXXXXXXXXXXX

004h:XXXXXXXXXXXXXXXXXXXX

005h:XXXXXXXXXXXXXXXXXXXX

==========File3===========

001h:XXXXXXXXXXXXXXXXXXXX

002h:XXXXXXXXXXXXXXaXXXXX

003h:00000000000000000000

004h:XXXXXXXXXXXXXXXXXXXX

005h:XXXXXXXXXXXXXXXXXXXX

==========File4===========

001h:XXXXXXXXXXXXXXXXXXXX

002h:XXXXXXXXXXXXXXaXXXXX

003h:XXXXXXXXXXXXXXXXXXXX

004h:00000000000000000000

005h:XXXXXXXXXXXXXXXXXXXX

==========File5===========

001h:XXXXXXXXXXXXXXXXXXXX

002h:XXXXXXXXXXXXXXaXXXXX

003h:XXXXXXXXXXXXXXXXXXXX

004h:XXXXXXXXXXXXXXXXXXXX

005h:00000000000000000000

=========================

当你用杀软来扫这5个文件时只有File2没有报毒,很明显因为File2的特征码a被

 

填0了,这样也就暴露

了特征码a的位置了。CCL定位原理就是这样,然后反复的循环定位,缩小范围。

 

最后就可以定位出我

们想要的特征码了。当然这是针对单一特征码。

----------------------------------------------------------------------

 

------------------------

 

 

2.MyCCL定位原理

假设一段木马程序代码是这样(0代表NULL,X代表程序代码,a、b、c等代表特征码

 

):

001h:XXXXXaXXXbXXXXXXXXXX

002h:XXXXXXXXcXXXXXxXXXXX

003h:XXXXXXXXXaXXXXXXXXXX

004h:XXXXXXXXXbXXXXXXXXXX

005h:XXXXXXXXXXXXcXXXXXXX

当文件同时包含a.b.c三种特征码的时候,杀软就报毒啦。这就是所谓的复合特征

 

码。当然杀软在定义

复合特征码的时候可能有好几种组合,好几套特征码。当是复合特征码的时候,

 

在用CCL来定位结果

是很困难的。而MyCCL在CCL的基础上又进步了。这里我们手动用MyCCL来生成5个

 

文件。

========File1=============

001h:XXXXXaXXXbXXXXXXXXXX

002h:00000000000000000000

003h:00000000000000000000

004h:00000000000000000000

005h:00000000000000000000

========File2=============

001h:XXXXXaXXXbXXXXXXXXXX

002h:XXXXXXXXcXXXXXxXXXXX

003h:00000000000000000000

004h:00000000000000000000

005h:00000000000000000000

========File3=============

001h:XXXXXaXXXbXXXXXXXXXX

002h:XXXXXXXXcXXXXXxXXXXX

003h:XXXXXXXXXaXXXXXXXXXX

004h:00000000000000000000

005h:00000000000000000000

========File4=============

001h:XXXXXaXXXbXXXXXXXXXX

002h:XXXXXXXXcXXXXXxXXXXX

003h:XXXXXXXXXaXXXXXXXXXX

004h:XXXXXXXXXbXXXXXXXXXX

005h:00000000000000000000

========File5=============

001h:XXXXXaXXXbXXXXXXXXXX

002h:XXXXXXXXcXXXXXxXXXXX

003h:XXXXXXXXXaXXXXXXXXXX

004h:XXXXXXXXXbXXXXXXXXXX

005h:XXXXXXXXXXXXcXXXXXXX

=========================

很明显,很明显从File2开始就有abc特征码的组合了,这样File2到File5就被杀

 

了。被杀以后再用MyCCL,进行二次定位,这样我们就知道了特征码c的位置了。然

 

后再把002h那行置0,再生成一次。

第二次生成5个文件:

========File1=============

001h:XXXXXaXXXbXXXXXXXXXX

002h:00000000000000000000

003h:00000000000000000000

004h:00000000000000000000

005h:00000000000000000000

========File2=============

001h:XXXXXaXXXbXXXXXXXXXX

002h:00000000000000000000

003h:00000000000000000000

004h:00000000000000000000

005h:00000000000000000000

========File3=============

001h:XXXXXaXXXbXXXXXXXXXX

002h:00000000000000000000

003h:XXXXXXXXXaXXXXXXXXXX

004h:00000000000000000000

005h:00000000000000000000

========File4=============

001h:XXXXXaXXXbXXXXXXXXXX

002h:00000000000000000000

003h:XXXXXXXXXaXXXXXXXXXX

004h:XXXXXXXXXbXXXXXXXXXX

005h:00000000000000000000

========File5=============

001h:XXXXXaXXXbXXXXXXXXXX

002h:00000000000000000000

003h:XXXXXXXXXaXXXXXXXXXX

004h:XXXXXXXXXbXXXXXXXXXX

005h:XXXXXXXXXXXXcXXXXXXX

=========================

很明显因为002h被我们置0了,这里只有File5有abc特征码了,所以File5被杀,

 

这样另一处c也暴露出来了,这样我们就把所有c特征码都定位出来了。解决了CCL

 

定位复合特征码的困难。然而我们回过头来想想,如果你想修改a或b特征码呢?

 

又如何定位出a或b的特征码呢?这就是MyCCL的一个缺陷。不是定位不出来,而是

 

很费劲。没有特征码保护机制。

 

----------------------------------------------------------------------

 

------------------------

 

3.multiccl定位原理

 

1.假设一种比较极端的情况:

  某杀毒软件针对某样本

  抽取了如下 a b c d  e 的五个特征码片段

  而其中的任何一个单独的片段都不构成完整的特征码

    更极端的情况是可能有两套这样的组合。

 

  却以其中任何两处来识别。(见 图1)

 

这样,如果用原来的CCL就很难定位了,就算能定位,操作也

   变得很复杂。

(图1)

..............................aaaaaaaaa........................

...............................................................

.............bbbbbbb.........ccc...............................

...............................................................

...................ddddddddd...............eeeee...............

 

2.针对这种情况

  有个思路是从一端开始盖零(考虑到PE文件文件头的重要性

  multiCCL选择了从尾端开始往前盖)。

 

  直到如图2所示时,杀毒软件才不能识别

     (b片段被破坏了一个字节)

  这样b尾端就出来了。

 

(图2)

..............................aaaaaaaaa.........................

................................................................

.............bbbbbb000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

 

------------------------------------------------------------------

下面是定b片段的头端了

   看看图3 图4 图5 ,注意看b片段中间那个字节的零的移动

    (后来发现有时用一个字节的零不行,可改用N个零)

 

(图3)

..............................aaaaaaaaa.........................

................................................................

.............bbbb0bbb0000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

 

----------------------------------

(图4)

..............................aaaaaaaaa.........................

................................................................

.............0bbbbbb00000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

 

----------------------------------------------------------------------

 

(图5)

..............................aaaaaaaaa.........................

................................................................

............0bbbbbbb00000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

 

--------------上图的a 和 b 两个片段都暴露了--------------------------

  图5 中,暴露出完整的a b 两个片段,这下又被杀毒软件认出来了

 

这样就定位出b段了。

接下来把b希用0盖掉作为新的样本,用杀毒软件检测一下是否被杀,还杀就

重复前面的步骤定 c 段,如图6

 

(图6)

..............................aaaaaaaaa........................

...............................................................

.............0000000.........ccc...............................

...............................................................

...................ddddddddd...............eeeee...............

 

-----------------------------------------------------------------------

如果定好c段盖掉后还是被杀就再定 d 段

 如图7

 

(图7)

..............................aaaaaaaaa........................

...............................................................

.............0000000.........000...............................

...............................................................

...................ddddddddd...............eeeee...............

 

-----------------------------------------------------------------------

这样重复,直到片段d e ……都被找出盖掉后,杀毒软件再也不认了

(后来又发现有些杀毒软件针对零覆盖有干扰,改用随机串)

 

-----------------------------------

  一个字节一个字节来显然太费时间,效率很低的,一次性

生成上千个文件也是不现实的。

  所以考虑先用二分法粗定。到范围小时再逐字节替换。

-----------------------------------

从尾端开始数,以1.2.4.6.8……的大小往前盖

   即取2的指数阶 , 2^n <文件尺寸就行了。

     一次生成20个左右的样本文件,用杀毒软件检测

以例图说明吧(见 图8图9)

下面这个盖了128 bytes 的还被识别

 

(图8)

..............................aaaaaaaaa........................

...............................................................

.............bbbbbbb.........ccc...............................

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

 

-----------上面这个盖了128 bytes的还被识别-------------

--------------下面这个盖了256 bytes 的不被识别了--------------------

 

(图9)

..............................aaaaaaaaa........................

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

 

--------------------------------------------------------------------

那就说明距文件末尾256--128之间有个特征码片段,

下一步就以图8为样本,

    定位的范围是 图10 中经XXXX标记的区域

 

(图10)

..............................aaaaaaaaa........................

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

---------------------------------

如此反复,当范围缩小到32字节或更小,二分法就显得效率低下了,

  改用逐字节替换法,一次生成最多32个文件。

 

-----------

另外,

图8 图9 图10 之外,还有一种情况,

     就是某次用二分法生成的所有文件

     杀毒软件都不识别,那就说明特征码集中在最大盖0范围之前

   即图9中 未盖0的区域,这时只要以图9为样本,

     定位图11中以YYYY标记的区域

 

(图11)

YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000000000000000000000

 

-----------------------------------

后来实际测试及应用中发现这种算法效率不高。

文件定位时改用等分法,内存定位时用一半一半法,这样效率最高。

------------

 

尾端定出后,再用 图3图4图5 所示的方法把0还字节前移,一次生成32个

文件用杀毒软件检测,如果32个全不被杀时,就取这32个字节作为定位结果

对于这种大尺寸的片段,没必要完全定位出片段的头端。

    (因为一个片段中只要修改一个字节就够了)

本文章转载自:http://hi.baidu.com/ddd1206/blog/item/027381d4cf76ed09a18bb717.html

特别说明: 本软件谢绝任何支持或使用3721(及及该公司其他产品如雅虎助手等)的人士使用。 multiCCL      by niu-cow in NE365 开发调试环境及工具 : win2k+sp4 dev-cpp 4.992 Lcc_win32 MASM32 v9.0 Radasm ollydbg 1.10 winHex 12.5 包含文档: 1. multiCCL_f.exe 文件特征码专用版 2. multiCCL_m.exe 内存特征码专用版 3. multiCCL_inj.exe 注入代码块内存定位专用版 4. memtest.exe  用作内存定位时加载dll或运行exe或向目标进程注入的辅助程序          (为了防止主程序被杀毒软件Kill,用了远程线程注入) 5. multiCCL_readme.txt 本说明文档 6. multiCCL原理图示.htm 基本原理图示 功能: 原来已有的 文件特征码定位功能 (对 PE文件 和 非PE文件)--此功能已较稳定 本版新增功能:内存特征码定位(对PE文件)---------此功能测试中 因为现在杀毒软件针对特征码定位器设置了某些干扰,最终决定把文件定位和   内存定位做成两个独立的部分。 其实代码基本一样的,只为方便日后的维护和升级。 ----------------------------------- ......内存定位.重要提示....... 1.定位期间不要浏览任何放有病毒样本的文件夹 以免被杀毒软件的实时监控删掉 2. 现在打开杀毒软件的实时检测(保护级别在自定义中设置得严格些) 实时检测的执行动作可设置为: a. 提示用户操作 b. 禁止访问并删除 推荐选 a ,千万不要选“仅禁止访问”,“隔离”也不要选 3. 当然也可以按提示手动扫描内存 执行动作设为“仅报告”或“提示用户操作” 只要杀毒软件报告检测结果就行了,不需要它删除或禁用什么 4. 防火墙不要监视远程线程 因为multiCCL为了避免主程序被杀毒软件kill,用远程线程加载样本   (另外,正在找有关驱动方面的资料) ------------------------------------ ------------------------------------ 现在重点测试内存特征码的定位功能。 通过后再添加。现在的界面也还有点马虎,用cmd界面也是为测试 方便,因为随时都可输出中间信息。 ((听 tankaiha 一说还真不想写GUI界面了)) 需要说明的问题是:     1. 开始定位一个样本时,如果发现样本目录中存在旧的记录文件,           程序会读取并认可 旧记录中的特征码。 如果想完全重新开始定位,应该先把旧的记录文件删除或改名, 之后再打开multiCCL 。 2. 输出目录里不要放置任何您想保留的文件,以免给您带来损失。 定位过程中将删除里面的一些文件。 另一个简单的做法是:先手动在样本所在目录下建一个名为              output 的子目录,然后在选择目录的对话框点 “取消”,这样输出文件就都放到这个output 目录下了。 3. 设置保护片段时,如果所保护的片段本身是独立的特征码,就会        导致定位失败,因为所生成的文件会全部被杀,而且一直如此。         所以在设置前,          先要确认所保护的片段不是独立的特征码。 v 0.100 beta 之后的版本用的是等分法,限制区域的优化效果, 对于文件特征码来说是很不明显的, 而对于内存特征码的定位还是比较明显的。 ;  要注意的是,文件定位每次提醒杀毒时,一定要把识别出的文件全部删除, 否则程序会判断错误的。(内存定位就没关系了) 记录文件格式: 只要注意以下几个字段和键值就可以了: [CharactorCodz] ;特征码总数 CharactorTotal= ;特征码的记录格式是 H_起始偏移_结束偏移_长度_…… ;一般只要注意 起始偏移 结束偏移 就够了。记录的是文件偏移, ; 用十六进制表示 ;特征码1 Codz1= ;特征码2 Codz2= ;…… ;当OK=1时表示定位成功完成,ok=0表示定位没有完成 ok= ----------- ;文件定位的记录文件是 multiCCL_f_Log.txt ;内存定位的记录文件是 multiCCL_m_Log.txt ;都放在样本文件所在的目录下。 ----------- ;看内存定位结果时,还有一个字段需要注意的: [antiLocateCodz] newCodz=1 OK=1 CharactorTotal= Codz1= Codz2= …… ;这是杀毒软件针对内存定位干扰码,( antiLocateCodz ) ;定位不出内存特征码或修改内存特征码无效时, ;可以考虑修改入口点(修改代码或转移入口点), ;若以上修改还是无效,则试试修改干扰码。 ;---------------------------- ;另外也请看看更新记录,里面也有部分说明 ; ; 同时也请帮助统计定位一个样本特征码所需的时间,大致记录下就行 ; 结果请反馈到: http://vxer.cn/bbs/read.php?fid=9&tid=112&page=1 ;----------------------------------------------- ;统计内容包括: ;-------- ;基本信息: 哪种杀毒软件的XXX文件定位(病毒库版本XXXX) ;1 样本文件大小: ;2 总共定位出特征码片段的数量: ;3 总共需要杀毒软件扫描几次: ;4 定位总用时: ;5 定位结果评价: 基本可用/有较大偏差/很不可靠 ;---------------------------------------------- ;BTW: 本程序针对的目标是杀毒软件的复合特征码的定位,    当然也包括单一特征码了。 ;免责声明:本程序只供学习,不得用于商业。本程序可能存在某些缺陷,       及其他可能隐含的问题,      使用中可能造成的一切后果,均由使用者自行负责。 如果您对此很在意则请勿使用。 ;感谢您的测试,使用中请保留软件文档的完整,发现任何问题请到NE365的BBS上反馈。 ;(借用一下NE365的空间 http://vxer.cn/bbs ,一并致谢NE365 ;及各位网友的帮助和测试 ,大家多多支持NE365吧) ; ;特别说明:本软件谢绝任何支持或使用 3721 的人士使用。             niu-cow 2006-05-22 --------------------------------------------- 大致上找到了特征码没完没了的原因了   很可能是因为保护区域设置得过大,其中含有相当数量的隐含病毒特征, 导致启发式扫描的极高的实现机率。 实际测试中也发现当没有设置保护区域时, 定位出的特征码就很有限。   看来,设置合理的保护区域,对于定位是非常重要的, 尤其是针对“启发式扫描”(NOD32称之为“高级智能侦测模式”)的定位。   尽管以上只是猜测,不过本人认为这下被猜中了。 niu-cow 2006-05-31 20:08 ----------------   在tanknight(myCCL的作者)的BLOG上看到NOD32定位的有关讨论,据说定位 精度太高时,对NOD32的定位往往失败。一般控制在8--16字节为宜。   依照这个原理增加了个控制定位精度的模块,重复的现象有所减少,但 问题好象还没有解决。 niu-cow 2006-06-10 17:04 ------------------------------------------------------------------ ------------------------------------------------------------------ 更新历史: v 1.150 (当前版本) 1.解决了memtest.exe被杀时,主程序的SendMessage无法返回的问题 2.为注入型的提升权限(只有当拥有Administrators以上权限时才起 作用) 这样就可以注入某些系统进程。 注:本版的memtest.exe、memtiCCL_m.exe、multiCCL_inj.exe 和之前的版本均无法兼容,不要混用。 2006-11-29 v 1.140 1.修正了第一次生成Except.txt(用于设置保护区域定位精度等)时, 未能生成完整的模板,导致很多使用者第一次使用时无所适从, 2.将内存定位的一个容易引起误解的“判断……”改为“将判断……” (以上两处BUG感谢网友woaicomputer等的反馈) 3.增加了定位注入数据块的特征码的功能(主要用于对付flux等) 方法是:a 想办法从内存中抓取注入的数据块 (这个要自己想办法) b 用multiCCL_inj.exe处理数据块并注入了目标进程, 结合杀毒软件扫描内存,进行判断定位 注:memtest.exe 再次升级,以适用于multiCCL_inj.exe 2006-11-15 v 1.130 (仅针对内存定位模块) 1.改变EXE的加载方式为创建进程(原来用LoadLibrary) 2.增加对保护区域设置的检测,这样加载失败的机率更少      (本版的 multiccl_m.exe 和 memtest.exe 与过去的版本不兼容) 2006-11-5 v 1.120 (仅针对内存定位模块) 因为有的杀毒软件监视远程线程,用注入法要先关闭这个监视 感觉这样有些麻烦,改用发消息让宿主程序主动加载 ( 此版的 multiccl_m.exe 和 memtest.exe 得配合使用了) 2006-10-23 v 1.110 (仅针对内存定位模块) 有网友(无涯)反馈说内存定位时有问题 发现问题的系统是WIN2003 本人在WIN2K+SP4下测试未发现问题 从出错截图看,问题很可能在杀进程的函数 检查源代码,只发现一个进程句柄没有及时关闭,修正了这个函数, 作为试探性修改,看看问题是否解决。 2006-07-14 v 1.100 : 1- 修正了处理干扰码的方式,并在记录中用~~作标记,或许有点用。 (注:干扰码也可能是特征码的一部分) 2- 修正了定位头端时的还原方式。 3- 生成文件时增加一秒停顿。 这个版本的两处修正都只是试探性的修改。 2006-07-04 v 1.010 : 仅修正了内存定位的模块,使其生成的文件数更少(定头端时) 这样每轮加载次数最多35次,绝大多数时候是28次 (尾端20次,头端8次) 文件定位仍用v 1.000版 2006-06-20 v 1.000 : 从本版本开始,已经是正式版了~~~~ 1- 记录文件文件名中 包含了样本文件名,以有所区别, 感谢pipapi的建议。 2- 增加了一个控制定位精度的功能。 具体是在Except.txt文件中改变dwX的值 当dwX=1 时精度为一字节(最高),如果存在旧的Except.txt 则请自行增加这个字段,如下(前后都不要有空格): [dwX] dwX=1 降低精度的目的是减少一些干扰(如NOD32的启发式扫描), 经实际测试发现仍然无法完全避免。 (一般降为 12-16 字节左右为宜,dwX的值用十进制) 保护区域设置的合适一些,不要太大才是最重要的。                  2006-06-09 v 0.120 beta: 1- 实际使用中发现,杀毒软件的“启发式扫描” (NOD32的称“高级智能侦测模式”的扫描速度实在慢, 为提高效率,减少每次生成文件的数量, 当然多扫一遍了(以 1 MB 计算)。 这样一来,对磁盘空间的需求也减少了一半。不过现在 的硬盘都很大,不会在乎这点的。 此修正针对文件定位(也包括内存定位前的干扰码定位) 2- 提示音作了细小的调整。 2006-05-31 v 0.110 beta: 1- 增加了内存定位功能(二分法),这样每定位一处特征码 最多只需加载64次(其中定尾端20次,头端32次) 2- 修正了卸载方式。 3- 彻底屏蔽限制点区能。 4- 文件定位仍使用 v 0.100 beta 版 2006-05-25 v 0.100 beta: 1- 修正了winXP下当软件路径带空格时出错的问题, 感谢 最近的星球 的测试和反馈 2- 改用了等分法(原来用二分法),效率提高明显。           测试过程中发现的一个偶然的错误却解决了算法中的一个  细节问题,进一步提高了效率(与理论效率相比) 激动ing ,每次最多可能生成64个文件 使用新版本时,把旧版本的记录文件重命名或删除吧, 以免造成潜在的冲突。 3- 增加了定位限制点的功能,就是说只定位限制点之前的部分 且直接从此点开始,   限制点之后的所有数据都将被随机数据串填充。               若需要保护某区数据,请与保护区域配合使用。 限制点的格式为 8 位的十六进制值,以表示文件偏移。 且只当标志设为1时起作用,限制标志为0时不起作用。 特别说明: 这个功能只是预留,目前测试表明没什么用处。   目前的版本只有文件定位功能,就不要使用限制点了。 4- 使用新算法multiCCL版本号从 v 0.100 beta 开始。 目前只有文件定位功能。先测试BUG。 2006-05-22 v 0.017 beta-p: 再次作一小的修正,因为发现和卡巴对0.012版类似干扰, 这次是别的杀毒软件了,也不清楚原理是什么,干脆连 同干扰码一起定位了,这样还省心些。 (以后前面冒出的干扰码就不怕了, 今后的升级只要应付覆盖区冒出的干扰码就行了) 本BUG系astronomer反馈,致谢 2006-05-18 v 0.017 beta : 再次修正随机数据的生成方式,修正的效果有待测试 因为定位NOD32对彩虹桥英文1.02版的文件特征码时 发现有干扰。(感谢yxrx的测试)                 2006-05-18 v 0.016 beta-p: 1-修正一个针对已找出的特征码的覆盖方式, 因为针对ewido定位时,发现特征码不断地“往前长”, 看看更改后能否通过。 (只为只是小的修正,界面上仍标识为 v 0.016 ) 感谢 honhon 的测试和反馈。 2-用LCC_win32+RadAsm重写宿主程序(内存定位用),体积 更小了。                2006-05-16 v 0.016 beta : 1-修正了随机数据串的生成方式 (感谢abc27的针对NOD32的测试) 2=修正了其他已发现的次要的BUG。 2006-05-13 v 0.015 beta : 1-增加了内存定位的功能,为防止加载样本时被杀毒软件关 闭,启动了一个靶程序,用远程线程注入到宿主进程 2-当样本文件所在目录存在旧的记录文件时,程序将读取旧 记录文件中所记录的已定位出的特征码,并认可这些特 征码。 新增这个功能主要是考虑到有些杀毒软件的特征码片段 的数量很大,每次从头再来显然太浪费时间了。 尤其是相对烦琐的内存定位,万一中途意外中断, 丢弃之前的结果从头再来是不可容忍的。 3-修正了一些已发现的BUG(比较次要,不影响使用) 4-针对杀毒软件的干扰做了些应对性的改变。 2006-04-30 v 0.014 beta : 1-改用随机数据串填充,因为发现有的杀毒软件用检测填充 0来反定位(他们动作蛮快的哈) 2-把记录文件放到要定位的样本文件所在的目录下了,因为             考虑到以后杀毒软件可能会检测改写记录文件来反定位,              和输出文件放在一起不妥。 3-修正了一处因优化中带来的定位重复造成失败的BUG 感谢frip反馈 4-增加了保护片段(或区域设置),这是为了对付NDD32这类             关联输入表的特征码。(设置方法软件会有提示的) (此功能效果有等测试,感谢111111113提供有关针对NDD32的建议) 因为此版修复和更新相对较大,就跳到0.014 版了,本来想写内存定位的, 不过这两天忙于对付杀毒软件的反定位,内存定位就留到下个版本了。             (其实很想休息几天的,有点累) 2006-04-24 v 0.012 alpha : 1-修正了记录中特征码长度多出一个字节的错误。 ( tandaiha发现 ) 2-当发现特征码片段的长度超过32byte时,就取这32位作为片段结果 反正只要篡改片段里的任何一个字节就行,定出这么长就够了, 发现有的杀毒软件的取样片段(如卡巴斯基 vs AngleShell )               的长度有点不可思议,硬要找出片段的头端简直是浪费时间。            所以,在分析定位结果时,特征码片段的尾端一般是精确的,              当片段长度 <32bytes(记录中用的是十六进制的20) 时, 头端也是精确的,否则头端可能还在更前面。 反正记录结果对于修改来说,已经够用了。 2006-04-22 v 0.011 alpha : 重新排列了按键及暂停,便操作更简洁 2006-04-21 v 0.010 alpha : 原始版本,算法调试基本通过 2006-04-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值