Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ASM-Obfuscator — 命令インジェクション、ジャンクコード、定数難読化、実行時復号化によってx86-64アセンブリを難読化し、リバースエンジニアリングやアンチ解析を妨害します。 | Kitploit
ツール/GitHubGitHub/gmh5225/asm-obfuscator
防御ツールリバースエンジニアリングデバッガバイナリ解析
GitHubgmh5225/asm-obfuscator

ASM-Obfuscator

命令インジェクション、ジャンクコード、定数難読化、実行時復号化によってx86-64アセンブリを難読化し、リバースエンジニアリングやアンチ解析を妨害します。

リポジトリを見る
7633年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

ASM-Obfuscator

高度なx86-64アセンブリ難読化ツール。 License

説明

Assembly Code Obfuscatorは、x86-64アセンブリコードのセキュリティを強化するために設計された、強力で多用途なツールです。幅広い難読化技術とアンチ解析対策を採用することで、プロジェクトをリバースエンジニアリングや解析から保護します。

特徴

  • 命令注入: 各アセンブリ命令の前にカスタムバイト列を注入し、逆アセンブラを混乱させます。

  • ランダム化: コード構造にランダム性を導入し、予測しにくくします。

  • デバッガー検出: コード実行中のデバッガーの存在を検出し、アンチデバッグ対策を講じます。

  • アンチ解析技術: 条件分岐やタイミングチェックにより、動的解析ツールを混乱させます。

  • 動的復号: コードセクションを暗号化し、実行時に動的に復号することで、複雑性を高めます。

  • 動的展開: コードセクションを圧縮し、実行時に動的に展開することで、コードの本来の性質を隠します。

  • 定数難読化: XOR演算やビット操作などの技術を用いて、定数やデータ値を難読化します。

  • 変数名のリネーム: 変数やレジスタをリネームし、コードを人間が読みにくくします。

  • ジャンクコード挿入: ジャンクコードのパーティションを挿入し、コードベースをさらに難読化します。

動作

1. 命令注入

難読化プロセスの核となるのは、コードファイル内の各アセンブリ命令の前にカスタムバイト列を注入することです。これらの戦略的に設計されたバイト列は、逆アセンブラやアナリストを困惑させることを意図しています。このプロセスを詳しく見ていきましょう。

元の命令:

4005d2:   55                      push   rbp

メモリ上(16進数):

0x55

注入後:

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

メモリ上(16進数):

0xEB, 0x01, 0xB0, 0x55

この変換の詳細は次のとおりです。

  • 元の命令 PUSH RBP は 0x55 にアセンブルされます。難読化ツールはその前にバイト列 0xEB, 0x01, 0xB0 を挿入します。

  • その結果、逆アセンブルすると元のコードとはまったく異なる命令列として見える可能性があります。これにより、リバースエンジニアリング(RE)がコードの真の目的を理解することが難しくなります。

2. ランダム化

コード内にランダム化要素を導入します。命令の並べ替え、オペランドの入れ替え、オペコード置換などの技術が含まれます。

3. デバッガー検出

コード実行中にデバッガーの存在を検出するメカニズムを組み込みます。デバッガー関連の痕跡を特定するランタイムチェックを行い、アンチ解析対策をトリガーします。

4. アンチ解析技術

条件分岐やタイミングチェックなど、複数のアンチ解析対策を統合します。例えば、分析プロセスを遅らせるために条件ジャンプや遅延ループを挿入することがあります。

5. 動的復号

動的復号技術を採用しています。特定のコードセクションを暗号化し、実行時に秘密鍵を使って復号します。この復号プロセスはコード実行中に動的に行われます。

6. 動的展開

特定のコードセクションを圧縮し、実行時にオンザフライで展開します。

7. 定数難読化

XOR演算、ビット操作、算術演算などの技術を用いて定数を難読化します。これにより、定数値が容易に認識されないようにします。

8. 変数名のリネーム

このツールは変数とレジスタをリネームし、コードを読みにくくします。このプロセスでは、変数名をランダムに生成された文字列または数値識別子に置き換えます。

9. ジャンクコード挿入

コードをさらに難読化するために、難読化ツールは戦略的な位置にジャンクコードのパーティションを挿入します。このジャンクコードは、プログラムのロジックに影響を与えない無関係な命令で構成され、コードベースを混乱させる役割を果たします。

ジャンクコード挿入の例:

; Original Code
mov eax, 1

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

メモリ上(16進数):

0x89, 0xD8, 0x31, 0xC9, 0x01, 0xD2

挿入されたジャンクコードは、注意をそらし、コードをより複雑に見せるように設計されています。

10. 偽UPX検出

偽のUPXヘッダーを検出する機能も組み込まれています。UPXヘッダーの改ざんの兆候がないかコードをスキャンし、実行ファイルの整合性を確保します。

変換前(元のコード):

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

16進数表現(元のコード):

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

変換後(難読化されたコード):

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

16進数表現(難読化されたコード):

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 命令を追加し、即値オペランドに16進数値を使用することで、元のプログラムロジックを分かりにくくしています。

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルを参照してください。

コントリビューション

コントリビューションは歓迎します!

サポート

問題、機能リクエスト、一般的なお問い合わせは、issueを作成してください。

免責事項

このツールは教育および倫理的な目的を意図しています。

ツールをダウンロード