学习fly的教程"用Ollydbg手脱ASPack加壳的DLL",DLL脱壳后没有反应,请指点,谢谢!已试过脱壳机,均失败。
一、重定位表RVA + OEP
008EF1DC /74 79 je short 008EF257
008EF1DE |8BC2 mov eax, edx
008EF1E0 |C1E8 10 shr eax, 10
008EF1E3 |33DB xor ebx, ebx
008EF1E5 |8BB5 39050000 mov esi, dword ptr [ebp+539] ; [ebp+539]=ss:[008EF54C]=00074000
008EF1EB |03B5 22040000 add esi, dword ptr [ebp+422] ; ss:[008EF435]=00870000
008EF1F1 |833E 00 cmp dword ptr [esi], 0 ; ESI=008E4000
008EF1F4 |74 61 je short 008EF257
008EF1F6 |8B4E 04 mov ecx, dword ptr [esi+4]
008EF1F9 |83E9 08 sub ecx, 8
008EF1FC |D1E9 shr ecx, 1
008EF1FE |8B3E mov edi, dword ptr [esi]
008EF200 |03BD 22040000 add edi, dword ptr [ebp+422]
008EF206 |83C6 08 add esi, 8
008EF209 |66:8B1E mov bx, word ptr [esi]
008EF20C |C1EB 0C shr ebx, 0C
008EF20F |83FB 01 cmp ebx, 1
008EF212 |74 0C je short 008EF220
008EF214 |83FB 02 cmp ebx, 2
008EF217 |74 16 je short 008EF22F
008EF219 |83FB 03 cmp ebx, 3
008EF21C |74 20 je short 008EF23E
008EF21E |EB 2C jmp short 008EF24C
008EF220 |66:8B1E mov bx, word ptr [esi]
008EF223 |81E3 FF0F0000 and ebx, 0FFF
008EF229 |66:01041F add word ptr [edi+ebx], ax
008EF22D |EB 1D jmp short 008EF24C
008EF22F |66:8B1E mov bx, word ptr [esi]
008EF232 |81E3 FF0F0000 and ebx, 0FFF
008EF238 |66:01141F add word ptr [edi+ebx], dx
008EF23C |EB 0E jmp short 008EF24C
008EF23E |66:8B1E mov bx, word ptr [esi]
008EF241 |81E3 FF0F0000 and ebx, 0FFF
008EF247 |01141F add dword ptr [edi+ebx], edx
008EF24A |EB 00 jmp short 008EF24C
008EF24C |66:830E FF or word ptr [esi], 0FFFF
008EF250 |83C6 02 add esi, 2
008EF253 ^|E2 B4 loopd short 008EF209
008EF255 ^|EB 9A jmp short 008EF1F1
008EF257 \8B95 22040000 mov edx, dword ptr [ebp+422] ; ESI=008EA45C
008EF25D 8BB5 41050000 mov esi, dword ptr [ebp+541]
008EF263 0BF6 or esi, esi
得到重定位表信息:
RVA=00074000,大小=008EA45C-008E4000=645C
OEP:
08D7710 55 push ebp ; OEP
008D7711 8BEC mov ebp, esp
008D7713 83C4 C4 add esp, -3C
OEP=008D7710 -00870000=67710
二、输入表 + PE修正
008E0154 7C93188A ntdll.RtlDeleteCriticalSection
008E07A0 5D17BB5B comctl32.ImageList_Create
开始地址=8E0154
结束地址=8E07A0
OEP:67710
RVA:70154 (8E0154-870000)
SIZE:64C (8E07A0-8E0154)
1.请问上述操作是否有错?为什么我脱壳后调用没有反应呢?
在OD中运行程序,一修改脱壳后的DLL,就异常,请问是脱壳的问题还是DLL的校验问题?
如何判断DLL脱壳成功?
2.教程中“再用LordPE修正dumped_.dll的基址为003B0000,OK,脱壳完成啦。”
可是为什么我用LordPE查看教程附件中脱壳后的DLL基址为:00400000?
3.DLL脱壳后如何清除无用的区段?
请指点,谢谢!
是DLL有校验,已解决,谢谢!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)