................
...............................................................
.............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个字节作为定位结果
对于这种大尺寸的片段,没必要完全定位出片段的头端。
(因为一个片段中只要修改一个字节就够了)
----------------------------------
==================================
---- |