源码免杀的一些心得

来源:互联网 发布:c语言字节数组 编辑:程序博客网 时间:2024/05/21 06:51
个人的一些心得:
1、特征码
如果一个应用程序还没有启动就已经被安全软件查杀(被杀毒软件扫描查杀),说明这个应用程序的源代码中一些字符串被安全软件提取到特征库中了。
这样当这个应用程序刚拷贝到电脑上,就被安全软件扫描。查到特征库中的字符串,认定该程序是恶意程序而自动清除。
  解决:使用MyCCL定位特征码,找到特征码之后,替换。如何识别特征码?当最终得到的特征码为00003AFB_0000001C时,说明特征码时从地址00003AFB开始到其后面的1C(16进制)个长度。注意,这里只是在应用程序中找到特征码,然后需要定位到源码中的相应字符串,再进行替换。

2、源码免杀
a)定位行为      
如果应用程序扫描没有被查杀,而是在启动时被查杀,说明这个应用程序可以排除是特征码的问题,而是它的某种行为被安全软件认定为恶意。因为是源码免杀,所以可以
对源代码进行分模块定位。比如一个应用程序有有三个功能模块A、B、C,那么可以分成四部分进行测试:(1)注释掉三个功能模块的框架部分;(2)只保留功能模块A;(3)只保留功能模块B;(4)只保留功能模块C。然后对四部分分别编译,测试,定位出是那部分的行为被安全软件认定为恶意。找到该部分之后,再对该部分进行分块注释,编译,测试。比如找到是模块B的行为被认定恶意,那么就对模块B进行分块注释、编译、测试。定位出最小的那个模块。
b)改变行为
在找到被认定为恶意行为的代码之后,对该部分代码进行改造。改造方法包括隐藏API函数调用、字符串隐藏、改变行为流程、添加花指定、函数调换、外部调用。其实改变行为才是最重要的。这里面的学问就大了,当然跟经验也有很大关系。
0 0
原创粉丝点击