Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ASM-Obfuscator — 명령어 주입, 정크 코드, 상수 난독화 및 런타임 복호화를 통해 x86-64 어셈블리를 난독화하여 리버스 엔지니어링과 분석(anti-analysis)을 방해합니다. | Kitploit
도구/GitHubGitHub/gmh5225/asm-obfuscator
Defensive ToolsReverse EngineeringDebuggersBinary Analysis
GitHubgmh5225/asm-obfuscator

ASM-Obfuscator

명령어 주입, 정크 코드, 상수 난독화 및 런타임 복호화를 통해 x86-64 어셈블리를 난독화하여 리버스 엔지니어링과 분석(anti-analysis)을 방해합니다.

저장소 보기
7482년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ASM-Obfuscator

고급 x86-64 어셈블리 난독화 도구. License

설명

Assembly Code Obfuscator는 x86-64 어셈블리 코드의 보안을 강화하도록 설계된 강력하고 다재다능한 도구입니다. 다양한 난독화 기법과 안티 분석 조치를 적용하여 프로젝트를 리버스 엔지니어링 및 분석으로부터 보호합니다.

기능

  • 명령어 주입: 각 어셈블리 명령어 앞에 사용자 정의 바이트 시퀀스를 삽입하여 디스어셈블러를 혼란시킵니다.

  • 난수화: 코드 구조에 무작위성을 도입하여 예측 가능성을 낮춥니다.

  • 디버거 탐지: 코드 실행 중 디버거의 존재를 감지하고 안티 디버깅 조치를 적용합니다.

  • 안티 분석 기법: 조건부 분기와 타이밍 검사를 통해 동적 분석 도구를 혼란시킵니다.

  • 동적 복호화: 코드 섹션을 암호화하고 런타임에 동적으로 복호화하여 복잡성을 높입니다.

  • 동적 압축 해제: 코드 섹션을 압축하고 실행 중 동적으로 압축을 해제하여 코드의 실제 본질을 숨깁니다.

  • 상수 난독화: XOR 연산, 비트 조작 등의 기법을 사용하여 상수와 데이터 값을 난독화합니다.

  • 변수 이름 변경: 변수와 레지스터의 이름을 변경하여 코드를 사람이 읽기 어렵게 만듭니다.

  • 정크 코드 삽입: 정크 코드 조각을 삽입하여 코드베이스를 더욱 복잡하게 만듭니다.

동작 방식

1. 명령어 주입

난독화 프로세스의 핵심은 코드 파일의 각 어셈블리 명령어 앞에 사용자 정의 바이트 시퀀스를 삽입하는 것입니다. 전략적으로 설계된 이러한 바이트 시퀀스는 디스어셈블러와 분석가 모두를 혼란시키기 위한 것입니다. 이 과정을 자세히 살펴보겠습니다:

원본 명령어:

root@kitploit:~
4005d2:   55                      push   rbp

메모리(hex):

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>

메모리(hex):

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

변환 과정을 분석하면 다음과 같습니다:

  • 원본 명령어 PUSH RBP는 0x55로 어셈블됩니다. 난독화 도구는 그 앞에 0xEB, 0x01, 0xB0 바이트를 삽입합니다.

  • 그 결과, 디스어셈블될 때 원본 코드와 완전히 다르게 보일 수 있는 일련의 명령어가 생성됩니다. 이로 인해 리버스 엔지니어가 코드의 실제 목적을 이해하기 어려워집니다.

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

메모리(hex):

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

16진수 표현(원본 코드):

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

16진수 표현(난독화된 코드):

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 명령어를 추가하고 즉시 피연산자로 16진수 값을 사용하여 원래 프로그램 로직을 덜 명확하게 만들었습니다.

라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

기여

기여는 언제나 환영합니다!.

지원

문제, 기능 요청 또는 일반적인 문의 사항이 있으면 이슈를 생성해 주세요.

면책 조항

이 도구는 교육 및 윤리적 목적으로 제작되었습니다.

도구 다운로드