Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ASM-Obfuscator — 通过指令注入、垃圾代码、常量混淆和运行时解密来混淆 x86-64 汇编,以阻碍逆向工程和反分析。 | Kitploit
工具/GitHubGitHub/gmh5225/asm-obfuscator
防御工具逆向工程调试器二进制分析
GitHubgmh5225/asm-obfuscator

ASM-Obfuscator

通过指令注入、垃圾代码、常量混淆和运行时解密来混淆 x86-64 汇编,以阻碍逆向工程和反分析。

查看仓库
7232年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ASM-Obfuscator

高级 x86-64 汇编代码混淆器。 License

描述

汇编代码混淆器是一款功能强大且用途广泛的工具,旨在增强你的 x86-64 汇编代码的安全性。它通过采用多种混淆技术和反分析措施,保护你的项目免受逆向工程和分析的侵扰。

功能特性

  • 指令注入:在每条汇编指令之前注入自定义字节序列,以迷惑反汇编器。

  • 随机化:在代码结构中引入随机性,使其更难预测。

  • 调试器检测:在代码执行期间检测调试器的存在,并采取反调试措施。

  • 反分析技术:通过条件分支和时序检查来迷惑动态分析工具。

  • 动态解密:在运行时加密并动态解密代码段,从而增加复杂性。

  • 动态解压缩:压缩代码段并在运行时动态解压,隐藏代码的真实本质。

  • 常量混淆:使用 XOR 运算、位操作等技术对常量和数据值进行混淆。

  • 变量重命名:重命名变量和寄存器,使代码更难被人类阅读。

  • 垃圾代码插入:插入垃圾代码段,进一步混淆代码库。

工作原理

1. 指令注入

混淆过程的核心是在代码文件中的每条汇编指令之前注入自定义字节序列。这些经过策略性设计的字节序列旨在同时迷惑反汇编器与分析人员。让我们详细审视这一过程:

原始指令:

root@kitploit:~
4005d2:   55                      push   rbp

内存中(十六进制):

root@kitploit:~
0x55

注入之后:

root@kitploit:~
400665:   eb 01                jmp    400668 <main+0x3>
400667:   b0 55                mov    al,0x55
400669:   eb 01                jmp    40066c <main+0x7>

内存中(十六进制):

root@kitploit:~
0xEB, 0x01, 0xB0, 0x55

以下是该转换的详细解析:

  • 原始指令 PUSH RBP 汇编后为 0x55。混淆器在其之前插入字节 0xEB, 0x01, 0xB0。

  • 结果是一组指令序列,反汇编后可能与原始代码截然不同。这使得逆向工程(RE)人员难以理解代码的真实用途。

2. 随机化

它在代码中引入随机化元素,涉及指令置换、操作数交换和操作码替换等技术。

3. 调试器检测

集成了在代码执行期间检测调试器是否存在的机制。通过运行时检查识别与调试器相关的痕迹,并触发反分析措施。

4. 反分析技术

集成了多种反分析措施,例如条件分支和时序检查。例如,它可能会插入条件跳转和延迟循环,以拖慢分析过程。

5. 动态解密

它采用动态解密技术,使用密钥加密特定代码段并在运行时对其解密。此解密过程在代码执行期间动态进行。

6. 动态解压缩

它会压缩特定代码段,并在执行时即时解压。

7. 常量混淆

使用 XOR 运算、位操作和算术运算等技术来混淆常量,确保常量值不易被直接识别。

8. 变量重命名

该工具会重命名变量和寄存器,使代码的可读性降低。该过程包括用随机生成的字符串或数字标识符替换变量名。

9. 垃圾代码插入

为了进一步混淆代码,混淆器会在关键位置插入垃圾代码段。这些垃圾代码由不影响程序逻辑的无关指令组成,但会使代码库变得杂乱。

垃圾代码插入示例:

root@kitploit:~
; Original Code
mov eax, 1

; After Junk Code Insertion
mov ebx, 2
sub ecx, ecx
add edx, edx

内存中(十六进制):

root@kitploit:~
0x89, 0xD8, 0x31, 0xC9, 0x01, 0xD2

插入的垃圾代码旨在转移注意力,使代码看起来更加复杂难懂。

10. 伪造 UPX 检测

它还集成了检测伪造 UPX 头部的功能。它会扫描代码中是否存在篡改 UPX 头部的迹象,以确保可执行文件的完整性。

转换之前(原始代码):

root@kitploit:~
section .text
global _start

_start:
    ; Calculate the sum of the first 10 natural numbers
    mov ecx, 10        ; Initialize loop counter
    mov eax, 0         ; Initialize sum to 0

loop_start:
    add eax, ecx       ; Add current value of ECX to EAX (sum)
    loop loop_start    ; Decrement ECX and loop if not zero

    ; Exit program
    mov eax, 1         ; SYS_exit
    int 0x80           ; Invoke syscall

十六进制表示(原始代码):

root@kitploit:~
31 C9                 xor    ecx,ecx
B8 00 00 00 00        mov    eax,0x0
EB 0E                 jmp    0x1c
01 C8                 add    eax,ecx
E2 FB                 loop   0x11
B8 01 00 00 00        mov    eax,0x1
CD 80                 int    0x80

转换之后(混淆后的代码):

root@kitploit:~
section .text
global _start

_start:
    ; Calculate the sum of the first 10 natural numbers
    mov eax, 0x1
    add eax, 0x2
    add eax, 0x3
    add eax, 0x4
    add eax, 0x5
    add eax, 0x6
    add eax, 0x7
    add eax, 0x8
    add eax, 0x9
    add eax, 0xa

    ; Exit program
    mov eax, 0x1
    int 0x80

十六进制表示(混淆后的代码):

root@kitploit:~
B8 01 00 00 00        mov    eax,0x1
83 C0 02              add    eax,0x2
83 C0 03              add    eax,0x3
83 C0 04              add    eax,0x4
83 C0 05              add    eax,0x5
83 C0 06              add    eax,0x6
83 C0 07              add    eax,0x7
83 C0 08              add    eax,0x8
83 C0 09              add    eax,0x9
83 C0 0A              add    eax,0xa
B8 01 00 00 00        mov    eax,0x1
CD 80                 int    0x80

在混淆后的代码中,我们通过添加冗余的 ADD 指令并使用十六进制值作为立即数,使原始程序逻辑不再那么明显。

许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

贡献

欢迎贡献!

支持

如有问题、功能请求或一般咨询,请创建 issue。

免责声明

本工具仅供教育和道德目的使用。

下载工具