Add files via upload

This commit is contained in:
雾島风起時
2025-09-25 03:59:29 +08:00
committed by GitHub
parent 7a421405e6
commit 525d7ce808
5 changed files with 142 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
### 如何去过国内的杀软
**1. 静态特征码检测**
静态检测是指杀软在不运行程序的情况下,通过扫描文件本身的特征来判断是否为恶意软件。这包括特定的代码片段、哈希值、字符串等
**应对方案:**
- **混淆代码**:使用混淆器(Obfuscator)或手动对代码进行重构。这包括:
- **花指令(Junk Instructions)**:在核心代码中插入大量无用的指令(如 `NOP`),改变代码结构,使得杀软无法匹配其已知的恶意代码特征码
- **控制流平坦化(Control Flow Flattening**:将程序的正常执行流程打乱,通过一个大的 `switch``if/else` 结构来控制跳转,让杀软的分析引擎难以理解其逻辑
- **字符串加密**:将代码中使用的敏感字符串(如 URL、文件名、注册表键)进行加密,只在运行时解密使用。这可以有效绕过基于字符串的特征码检测
- **改变编译参数**:使用不同的编译器、编译选项,或更改代码,使得生成的机器码与杀软数据库中的特征码不匹配
**2. 动态行为监控**
动态检测是在程序运行时,监控其行为是否具有恶意倾向。国内杀软的启发式引擎(Heuristic Engine)非常强大,能检测到如进程注入、文件加密、网络通信等行为
**应对方案:**
- **延迟执行**:程序启动后不立即执行恶意行为,而是等待一段较长时间(例如几分钟或几小时),或等待特定的用户操作(如鼠标移动、键盘输入)后,再执行恶意代码。这能有效绕过沙箱环境的短时分析
- **反沙箱/反虚拟机**:通过代码检测自己是否运行在沙箱或虚拟机中。如果发现是,就停止恶意行为或直接退出。常用的检测手段包括:
- 检查 CPU 特征(`cpuid` 指令)
- 检测特定虚拟机文件或注册表键
- 测量指令执行时间差异
- **模块化和分阶段加载**:将恶意功能拆分成多个模块。程序本身可能只是一个无害的加载器,它在运行时从远程服务器下载或解密其他恶意模块。这使得杀软难以在初始阶段就判断其恶意性
**3. 云查杀与文件信誉库**
国内杀软普遍使用云查杀技术,将可疑文件上传到云端进行分析,并维护一个庞大的恶意文件哈希值数据库
**应对方案:**
- **文件加密和加壳**:使用自定义的加密算法对可执行文件进行加密,并用一个小的解密器(Loader)来启动它。这会改变文件的哈希值,绕过哈希值比对。这种技术就是**加壳(Packing)**
- **代码签名**:使用合法的代码签名证书对恶意软件进行签名。虽然这不能保证免杀,但可能会提高杀软的信任度,使得一些低级别的检测失效。当然,使用窃取的或不合法的证书是有风险的
- **文件指纹变化**:每次生成样本时都进行微小的改动,比如添加不同的编译时间戳、修改常量值等,以确保每个样本的哈希值都是唯一的
**4. 驱动级与内核级对抗**
高级的杀软会使用内核驱动来监控系统活动,恶意软件也需要通过内核级别的技术进行对抗
**应对方案:**
- **Rootkit 技术**:利用 Rootkit 技术在内核级别隐藏自己的进程、文件和网络连接,使得杀软难以发现
- **挂钩(Hooking**:挂钩杀软驱动的 API,拦截其对恶意行为的监控。当然,这需要非常深厚的内核编程知识