vc++中代码段的免杀

一、文件特征码定位:

一般我们先用MyCCL把被查杀文件的文件特征码定位出来,然后用C32判断定位出来的这个特征码是代码还

是字符串,或者是输入表、输出表、版权信息等…定位在不同的地方,就要用不同的方法来进行源码免杀。



如果特征码定位木马服务端的代码里,那么我们就把这个木马用OD载入,然后把特征码旁边(前

面和后面)调用了的API函数记录下来,再到源码里搜索并找到源码特征码。或者用另外一种"Map定位法",

也就是在编译的时候生成一个map后缀的文件,然后把MyCCL定位出来的文件地址转换为内存地址,再到

map文件里找到这个内存地址对应的行数。但这个方法比起刚才的方法来说麻烦了点,所以就不具体介绍了。

二、源码特征码修改:

把特征码前后调用了的API函数复制出来,然后到源码里搜索这个API函数,在它附近(一般加在前面)加花就

可以了。或者你也可以修改代码,把原来的代码改成能达到同样目的的代码。

如果你不想定位的话,那也可以随便给源码加花,也就是说不特意的去定位特征码,而是随便选一个地方

加花。除非字符串或者输入表函数被杀,不定位加花的方法几乎可以不用定位特征码而达到免杀的目的。


三、示例:

Example.cpp,把这个文件编译出来,然后我们来看看改变代码后编译出来的文件有什么变化

从这个例子中我们可以学到以下几点:

1.交换代码位置

2.代码的合并和分离

3.根据MyCCL定位出来的特征码找出对应的源码特征码位置

4.代码加花指令

5.函数调用交换


源码花指令:

__asm
{
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
}

 

猜你喜欢

转载自www.cnblogs.com/-qing-/p/10809329.html