登录 注册
当前位置:主页 > 资源下载 > 15 > 定位软件病毒特征码的工具是multiCCL

定位软件病毒特征码的工具是multiCCL

  • 更新:2024-09-20 18:35:50
  • 大小:96KB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:网络攻防 - 安全技术
  • 格式:RAR

资源介绍

特别说明: 本软件谢绝任何支持或使用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. AutoStartScanDll.dll 自动操作模块,使得部分操作自动化 6. multiCCL_readme.txt 本说明文档 7. 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.200 (当前版本) 1.为文件特征码定位部分增加了模拟鼠标键盘动作的自动操作模块, 这下可以在定位时抽空喝杯开水了(有关说明在模块的设置界面) 建议先手动操作定两三个特征码,之后设置使用自动操作 2.内存定位时exe的加载方式作了改变,这个版本用CREATE_SUSPEND参数 使进程或线程创建时处于挂起状态(类似于被调试器加载,因为 据网友反馈说部分杀毒软件的内存扫描对于OLLYDBG加载的程序 起作用,而对于MYCCL、multiCCL、CCL等的加载不起作用)。 dll的加载没改(因为目前还没找到更好的方法) 注:本版的memtest.exe、memtiCCL_m.exe、multiCCL_inj.exe 和之前的版本均无法兼容,不要混用。 2007-07-17 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