首页
社区
课程
招聘
Unpacking Obsidium v1.2
发表于: 2005-5-2 15:20 4748

Unpacking Obsidium v1.2

2005-5-2 15:20
4748
谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
?                                ?Uvod ?                                  ?
滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁

  Eto, posto Ap0x nije bio ljubazan da nam pokaze kako se popravlja IAT za
  Obsidium v1.2 pakovan crackme, moracu ja :)
  
  SALIM SE Ap0x-e !!!
  
  Anyway, Ap0x nam je lepo objasnio kako se dolazi do OEP-a kod ovog
  protektora, ali nam fali jos samo objasnjenje kako popraviti IAT, jer
  ImpRec nikako ne uspeva sam da popravi IAT, cak ni sa ObsidiumIAT pluginom.
  
  Oke, dosta chit-chata! Let's fix some IAT :)

谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
?                                ?Alati ?                                 ?
滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁

?OllyDbg v1.10 + OllyDump
?ImpRec v1.6 FiNAL

谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
?                              ?Reversing ?                               ?
滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁

  Dakle, pratimo Ap0x-ov tutorial dok ne dodjemo do OEP-a, tj do ovog koda:
  
  004012CF   .  64:A1 0000000>MOV     EAX, DWORD PTR FS:[0]            ;  Real entry point of SFX code
  004012D5   .  50            PUSH    EAX
  004012D6   .  64:8925 00000>MOV     DWORD PTR FS:[0], ESP
  004012DD   .  83EC 58       SUB     ESP, 58
  004012E0   .  53            PUSH    EBX
  004012E1   .  56            PUSH    ESI
  004012E2   .  57            PUSH    EDI
  004012E3   .  8965 E8       MOV     DWORD PTR SS:[EBP-18], ESP
  004012E6   .  FF15 58404000 CALL    NEAR DWORD PTR DS:[404058]
  
  Mada ovo nije pravi OEP, program ce raditi lepo.
  
  Otvaramo ImpRec i izaberemo nas proces. Unesemo gornji OEP pa
  IAT AutoSearch. Onda idemo na Get Imports.
  
  Blah, nijedan dobar import!
  
  Sada cemo da pristupimo identifikaciji API-ja.
  
  Gledamo u prvi invalid import u ImpRec-u:
  
  rva: 00004000  ptr: 007A3FD0
  
  Idemo u Olly-ju na adresu 007A3FD0:
  
  007A3FD0    60              PUSHAD
  007A3FD1    66:B8 0000      MOV     AX, 0
  007A3FD5    B1 00           MOV     CL, 0
  007A3FD7  ^ E9 C9E7FFFF     JMP     007A27A5
  
  Postavimo New origin na 007A3FD0.
  
  Sada koristimo Trace komandu. U CommandBaru kucamo:
  
  TC EIP > 70000000
  
  Zasto kucamo taj Trace Condition?
  
  Jer se API-ji nalaze na adresama vecim od 7XXXXXXX
  
  Olly se zaustavio na ovom kodu:
  
  77E86C42 >  55              PUSH    EBP
  77E86C43    8BEC            MOV     EBP, ESP
  77E86C45    837D 08 00      CMP     DWORD PTR SS:[EBP+8], 0
  77E86C49    0F85 BD300000   JNZ     KERNEL32.77E89D0C
  77E86C4F    64:A1 18000000  MOV     EAX, DWORD PTR FS:[18]
  77E86C55    8B40 30         MOV     EAX, DWORD PTR DS:[EAX+30]
  77E86C58    8B40 08         MOV     EAX, DWORD PTR DS:[EAX+8]
  77E86C5B    5D              POP     EBP
  77E86C5C    C2 0400         RETN    4
  
  Da bi saznali koji je ovo API, kliknemo desnim tasterom misa na
  code window u Olly-ju i idemo na:
  
  Search for -> Name in all modules
  
  Sortiramo API-je po adresi i trazimo koji API pocinje na adresi 77E86C42:
  
  Address=77E86C42 KERNEL32
  Section=.text
  Type=Export  (Known)
  Name=GetModuleHandleA
  
  Dakle prvi los import je GetModuleHandleA i nalazi se u KERNEL32.DLL
  
  Dupli klik na taj import u ImpRecu i izaberemo kernel32.dll iz liste dll-ova
  a GetModuleHandle iz liste API-ja.
  
  Ponavljajte gornji postupak za sve lose importe i kada popravite sve importe
  sacuvajte novi IAT u dumpovani fajl (valjda ste dampovali na OEP-u?) :))
  
  To je to :)
  
谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
?                             ?Zavrsne reci ?                             ?
滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁

  Eto, ko se pitao kako da popravi IAT za ovaj protektor dobio je odgovor :)
  
  Toliko od mene za ovaj tutorijal. Nadam se da ste naucili nesto.
  
  KEEP UP THE GOOD WORK AND CRACK ON !
  
  Over and out!

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//