3λ² Easy Unpackme
ν¨κ» μμΆλμ΄ μλ txt νμΌ
OEPλ₯Ό μ°ΎμμΌ νλ€
* OEP, Original Entry Point: μ€ν νλ‘κ·Έλ¨μ μ€μ μμ μμΉ
ν¨νΉλ νμΌμ μ체μ μΈ μΈν¨νΉ κ³Όμ μ ν΅ν΄ νμν ν¨μ μ 보λ₯Ό κ°μ Έμ¨λ€
κ·Έλμ μνΈνλ μ½λλ₯Ό νμ΄μ νΉμ λ©λͺ¨λ¦¬ 곡κ°μ κΌ μ¬μ©νλ€
μΈν¨νΉ κ³Όμ μ€ virtualprotect ν¨μλ₯Ό μ΄μ©
* VirtualProtect : λ©λͺ¨λ¦¬ μμμ μ€ν κΆνμ λ³κ²½
ν΄λΉ ν¨μ μνμ΄ λλλ©΄ μλ μ½λ OEPλ‘ κ° μ μλ€
μΈν¨νΉ (λλ 볡νΈν) μ½λκ° λλκ³ μλμ μ½λλ‘ μ ννλ€

μ΄ λΆλΆμ΄ entry
ν¨μ νλ‘€λ‘κ·Έ(prolog)
ν¨μμ μμ λΆλΆ
γ push ebp
mov ebp, esp γ
ν¨μ μμ μ€μ μ μν΄ μ ν¨μκ° νΈμΆ(μμ)λλ©΄
μ΄μ ν¨μμ ebp μ£Όμλ₯Ό μ € λ¨Όμ μ€νμ μλλ€ (push ebp)
κ·Έλ° λ€μ νμ¬ ν¨μ ebp μ€μ μ μν΄ mov ebp, esp μν
* EBP: Extended Base Pointer, μ€νμ κ°μ₯ λ°λ₯
ESP: Extended Stack Pointer, μ€νμ κ°μ₯ μ
GetVersion, GetCommandLineA ν¨μ νΈμΆ
visual studioλ‘ μ»΄νμΌν μ½λμ νΉμ§. CRT(C Run Time) μ½λ, stub codeλΌκ³ λ νλ€
* stub code : μ»΄νμΌλ¬κ° μμλ‘ μΆκ°νλ μ½λλ‘, νλ‘κ·Έλ¨ μ€νμ νμν μ 보λ₯Ό μ»μ΄μ¨λ€
* GetVersion: λ²μ κ°μ Έμ€κΈ°
GetCommandLineA : νμ¬ νλ‘μΈμ€μ λν λͺ λ Ήμ€ λ¬Έμμ΄ κ²μ
μ무νΌ!
OEP = 401150
'Study > wargame' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Dreamhack] rev-basic-1 (0) | 2024.12.19 |
---|---|
[Dreamhack] rev-basic-0 (0) | 2024.12.18 |
[Reversing.kr] 4λ² Music Player (2) | 2023.02.14 |
[Reversing.kr] 2λ² Easy Keygen (2) | 2023.02.13 |
[Reversing.kr] 1λ² Easy Crack (0) | 2023.02.09 |