Study/wargame

[Reversing.kr] 3번 Easy Unpackme

μœ€μ •_ 2023. 2. 14. 16:42

3번 Easy Unpackme

 

 

ReadMe.txt

ν•¨κ»˜ μ••μΆ•λ˜μ–΄ 있던 txt 파일

OEPλ₯Ό μ°Ύμ•„μ•Ό ν•œλ‹€

 

  * OEP, Original Entry Point: μ‹€ν–‰ ν”„λ‘œκ·Έλž¨μ˜ μ‹€μ œ μ‹œμž‘ μœ„μΉ˜

 

 

 

νŒ¨ν‚Ήλœ νŒŒμΌμ€ 자체적인 μ–ΈνŒ¨ν‚Ή 과정을 톡해 ν•„μš”ν•œ ν•¨μˆ˜ 정보λ₯Ό κ°€μ Έμ˜¨λ‹€
κ·Έλž˜μ„œ μ•”ν˜Έν™”λœ μ½”λ“œλ₯Ό ν’€μ–΄μ„œ νŠΉμ • λ©”λͺ¨λ¦¬ 곡간을 κΌ­ μ‚¬μš©ν•œλ‹€

 

 

 

μ–ΈνŒ¨ν‚Ή κ³Όμ • 쀑 virtualprotect ν•¨μˆ˜λ₯Ό 이용
  * VirtualProtect : λ©”λͺ¨λ¦¬ μ˜μ—­μ˜ μ‹€ν–‰ κΆŒν•œμ„ λ³€κ²½

 

ν•΄λ‹Ή ν•¨μˆ˜ μˆ˜ν–‰μ΄ λλ‚˜λ©΄ μ›λž˜ μ½”λ“œ OEP둜 갈 수 μžˆλ‹€
 
 
 

μ–ΈνŒ¨ν‚Ή κ³Όμ • 끝뢀뢄

μ–ΈνŒ¨ν‚Ή (λ˜λŠ” λ³΅ν˜Έν™”) μ½”λ“œκ°€ λλ‚˜κ³  μ›λž˜μ˜ μ½”λ“œλ‘œ μ ν”„ν•œλ‹€

 

 

 
entry μ§„μž…

이 뢀뢄이 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