ZeroDisλ μΈλΆ λΌμ΄λΈλ¬λ¦¬ μμ‘΄μ± μμ΄ κ΅¬νλ μμν x86/64 λμ€μ΄μ λΈλ¬μ λλ€. μ€ν νμΌμ μ½λ μΉμ μ μΆμΆνμ¬ μ΄μ λΈλ¦¬ μ½λλ‘ λ³ννκ³ , ν¨μ νΈμΆκ³Ό λΆκΈ°λ₯Ό λΆμνμ¬ λΌλ²¨μ μμ±ν©λλ€. μ΄ λꡬλ 리λ²μ€ μμ§λμ΄λ§, 보μ λΆμ, νλ‘κ·Έλ¨ λΆμ λ±μ μ μ©νκ² μ¬μ©λ μ μμ΅λλ€.
ZeroDis/
βββ ZeroDis/
β βββ main.cpp # νλ‘κ·Έλ¨ μ§μ
μ λ° CLI μΈν°νμ΄μ€
β βββ disassembler.h # λμ€μ΄μ
λΈλ¬ ν€λ
β βββ disassembler.cpp # λμ€μ΄μ
λΈλ¬ ꡬν
β βββ instruction.h # λͺ
λ Ήμ΄ κ΅¬μ‘°μ²΄ μ μ
β βββ instruction.cpp # λͺ
λ Ήμ΄ μ²λ¦¬ ꡬν
β βββ pe_loader.h # PE νμΌ λ‘λ ν€λ
β βββ pe_loader.cpp # PE νμΌ λ‘λ ꡬν
β βββ x64/ # λΉλ μΆλ ₯ λλ ν 리
βββ x64/ # μ루μ
λΉλ μΆλ ₯ λλ ν 리
βββ ZeroDis.sln # Visual Studio μ루μ
νμΌ
-
PE νμΌμ .text μΉμ μΆμΆ λ° λΆμ
- DOS ν€λ, PE ν€λ, μΉμ ν€λ λΆμ
- μ½λ μΉμ λ©λͺ¨λ¦¬ λ§€ν
- κ°μ μ£Όμ κ³μ°
-
x86/64 μ΄μ λΈλ¦¬ λͺ λ Ήμ΄ λμ€μ΄μ λΈλ§
- κΈ°λ³Έ μ°μ /λ Όλ¦¬ μ°μ° (add, sub, mov, and, or, xor λ±)
- λΆκΈ° λͺ λ Ήμ΄ (jmp, jcc)
- ν¨μ νΈμΆ (call, ret)
- μ€ν μ‘°μ (push, pop)
- λ©λͺ¨λ¦¬ μ κ·Ό (lea)
- REX ν리ν½μ€ μ§μ
- ModR/M, SIB λ°μ΄νΈ λμ½λ©
-
ν¨μ νΈμΆ λ° λΆκΈ° μΆμ μ ν΅ν λΌλ²¨ μμ±
- μ§μ νΈμΆ λΆμ
- μ‘°κ±΄λΆ λΆκΈ° λΆμ
- ν¨μ μμμ μλ³
- μλ λΌλ²¨ μμ±
-
λ€μν μΆλ ₯ νμ μ§μ
- μΌλ° ν
μ€νΈ (κΈ°λ³Έ)
- μ£Όμ, λ°μ΄νΈ μ½λ, λͺ λ Ήμ΄, νΌμ°μ°μ μ λ ¬
- λΌλ²¨ νμ
- μ£Όμ μ§μ
- JSON νμ
- ꡬ쑰νλ λ°μ΄ν° μΆλ ₯
- νλ‘κ·Έλλ° μΈμ΄ ν΅ν© μ©μ΄
- CSV νμ
- μ€νλ λμνΈ λΆμ μ©μ΄
- λ°μ΄ν° μ²λ¦¬ λ° νν°λ§ μ©μ΄
- μΌλ° ν
μ€νΈ (κΈ°λ³Έ)
ZeroDis <μ€ννμΌ.exe> [μ΅μ
]--nobytes: λͺ λ Ήμ΄μ λ°μ΄νΈ μ½λ μΆλ ₯μ μλ΅ν©λλ€.--nolabel: μμ±λ λΌλ²¨ μΆλ ₯μ μλ΅ν©λλ€.--json: κ²°κ³Όλ₯Ό JSON νμμΌλ‘ μΆλ ₯ν©λλ€.--csv: κ²°κ³Όλ₯Ό CSV νμμΌλ‘ μΆλ ₯ν©λλ€.--out filename: μΆλ ₯ λ΄μ©μ μ§μ λ νμΌλ‘ μ μ₯ν©λλ€.--help: λμλ§μ νμν©λλ€.
00000000: 48 89 5C 24 08 mov [rsp+8], rbx
00000005: 48 89 6C 24 10 mov [rsp+10], rbp
0000000A: 48 89 74 24 18 mov [rsp+18], rsi
0000000F: 57 push rdi
00000010: 48 83 EC 20 sub rsp, 20
| Label | AddressHex | AddressDec | ByteCount | BytesRaw | Mnemonic | Operands |
|---|---|---|---|---|---|---|
| L1 | 00000000 | 0 | 5 | 48895C2408 | mov | [rsp+8], rbx |
| 00000005 | 5 | 5 | 48896C2410 | mov | [rsp+10], rbp | |
| 0000000A | 10 | 5 | 4889742418 | mov | [rsp+18], rsi | |
| 0000000F | 15 | 1 | 57 | push | rdi | |
| L2 | 00000010 | 16 | 4 | 4883EC20 | sub | rsp, 20 |
- Visual Studio 2019 μ΄μ
- Windows SDK
- C++17 μ§μ μ»΄νμΌλ¬
- Windows μ΄μ체μ