浅谈免杀技术

完美的免杀方法
到目前为止,要实现恶意软件的“FUD”,加密恶意代码被认为是个不错的选择,不过有几点要注意:
1.恶意程序在解密时,应当也进行代码混淆
2.当恶意文件在内存中运行解密代码时,我们必须要保证在不重定位绝对地址的情况下进行
3.恶意软件是否在沙箱环境中运行,如果是,则立马停止恶意文件的解密
4.应当只对 PE 文件中的 shellcode 或 只有二进制文件的.text部分进行加密,而不是对整个 PE 文件进行,以便把信息熵和降到最低
以下是恶意软件流程图。

4.png

我们的“杀软检测”功能将检测恶意软件是否正在沙箱中被动态分析,如果功能检测到AV扫描器的任何迹象,则它将再次调用主函数或者仅当 “AV Detect” 函数来用。如果没有发现AV扫描器的任何迹象,它会调用 “解密Shellcode” 的功能。
以下就是 meterpreter 反汇编 shellcode 的原始格式。
5.png

为了让信息熵保持适当的大小,我们需要将shellcode注入方法改为使用多字节键的xor加密,xor加密标准不同于RC4或blowfish。因为恶意软件根本就用不到像RC4或blowfish这样的强加密,所以杀软产品也不会企图去解密信息熵中的shellcode,因此我们在编写恶意软件时,只需保证shellcode具备不可读和不可检测的静态字符串就足够了,如果使用xor,那解密过程更快,加密库中的代码量也会少很多。
同一个 meterpreter 代码使用 XOR 加密的前后对比
6.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • (本文源于转载或摘抄整理):首先是免杀的概念一、什么是免杀 免杀,也就是反病毒(AntiVirus)与反间 谍(A...
    JackyTsuuuy阅读 6,172评论 2 4
  • 壳是一段执行于原始代码前的代码。原始程序的代码在家可的过程中可能被压缩、加密等,当加壳后的文件执行时,壳这段代码先...
    plutoG7阅读 5,859评论 0 6
  • 转自https://tieba.baidu.com/p/5231084852 system process 进程文...
    间歇性学习mk阅读 8,870评论 0 5
  • 1 反病毒引擎扫描 www.virustotal.com 2 哈希值:恶意代码的指纹 md5deep程序:计算出程...
    间歇性学习mk阅读 5,046评论 0 1
  • Mcool (现中文名:天籁,曾用中文名:飞行音乐、随风飞音)是个有独特魅力的音乐播放器,即使是在众多琳琅满目的音...
    不知语冰阅读 11,120评论 5 7

友情链接更多精彩内容