目的:單純研究,討論用....好久以前的筆記了..=.='
目標: ->SD.EXE
(1) 使用工具,查看,發現為
SsfeDisc 2.x
(2)開始 S-ICE ,設斷點 BPX GetVersion
(3)返回主程序後,找到 OEP 入口
482302-PUSH EBP <------OEP
482303-MOV EBP,ESP
482305-PUSH FF
482307-PUSH 00466257
...
...
482302A-CALL [006F4320] --->GetVersion
(4)MAP32 DPLAYERX.DLL ,SAFEDISC==>解碼 API
12BF4CB-61 75 0F -->改 JMP PATCH
12BF4F1-EB 09 17 -->改 JMP PATCH
(5)對應代碼 0 =7D ,1 =23 (查看 MEMORY) ; U 120A270 (起點)
(6)找空白區,寫入 PATCH ,還原 Import table
注意,代碼 0,代碼 1 各要 RUN 1 次,才能 OK
PATCH:
LOOP: PUSH 9413FFBE
PUSH EBX
PUSH DWORD PTR 0 ;代碼=0
CALL [0013AF86] ;呼叫 解碼 API
ADD ECX,EDX ;ECX=搜尋值
MOV EAX,[EBP+10] ;真正 API 位址
MOV EDX,6F4000 ;IAT START
N0: CMP DWORD PTR[EDX],ECX
JZ N1
INC EDX
CMP EDX,6F6000 ;IAT END
JZ N2
JMP N0
N1: MOV DWORD PTR[EDX],EAX
N2: INC EBX
CMP EBX,7D ;對應代碼==>7D
JNZ LOOP
END: JMP END
(7) RUN LordPE =>DUMP FULL ==>SD.EXE 存檔 SD1.EXE
(8) RUN ImportREC 輸入 OEP 修正 IAT ,存檔 SD1.EXE
(9) RUN SD1.EXE TEST...OK~!!!! 收工