|
用Ollydbg手脱ASPack加壳的DLL
改了就是用不了,运用EXE主程序提示地址出错。 FLY大哥,麻烦你帮我看看!没有上传权限,只能用提供的临时空间上传 下载:http://www.live-share.com/files/29993/MultVideo.rar.html |
|
|
|
用Ollydbg手脱ASPack加壳的DLL
今天我碰到一个用ASPACK 2.12加壳的DLL文件,我按照FLY大哥的方法做了一遍,发现有几个问题: 找到在003B71F6处!我们在其上的003B71DA处下断,F9运行,中断。 008F61C8 . 8785 35050000 xchg [ebp+535], eax 008F61CE > 8B95 22040000 mov edx, [ebp+422] 008F61D4 . 8B85 2D050000 mov eax, [ebp+52D] 008F61DA . 2BD0 sub edx, eax 008F61DC . 74 79 je short multOSD.008F6257 008F61DE . 8BC2 mov eax, edx 008F61E0 . C1E8 10 shr eax, 10 008F61E3 . 33DB xor ebx, ebx 008F61E5 . 8BB5 39050000 mov esi, [ebp+539] //这里我得到的重定位表的RVA是0006A000 008F61EB . 03B5 22040000 add esi, [ebp+422] 008F61F1 > 833E 00 cmp dword ptr [esi], 0 008F61F4 . 74 61 je short multOSD.008F6257 008F61F6 . 8B4E 04 mov ecx, [esi+4] 008F61F9 . 83E9 08 sub ecx, 8 008F61FC . D1E9 shr ecx, 1 008F61FE . 8B3E mov edi, [esi] 008F6200 . 03BD 22040000 add edi, [ebp+422] 008F6206 . 83C6 08 add esi, 8 008F6209 > 66:8B1E mov bx, [esi] 008F620C . C1EB 0C shr ebx, 0C 008F620F . 83FB 01 cmp ebx, 1 ; Switch (cases 1..3) 008F6212 . 74 0C je short multOSD.008F6220 008F6214 . 83FB 02 cmp ebx, 2 008F6217 . 74 16 je short multOSD.008F622F 008F6219 . 83FB 03 cmp ebx, 3 008F621C . 74 20 je short multOSD.008F623E 008F621E . EB 2C jmp short multOSD.008F624C 008F6220 > 66:8B1E mov bx, [esi] ; Case 1 of switch 008F620F 008F6223 . 81E3 FF0F0000 and ebx, 0FFF 008F6229 . 66:01041F add [edi+ebx], ax 008F622D . EB 1D jmp short multOSD.008F624C 008F622F > 66:8B1E mov bx, [esi] ; Case 2 of switch 008F620F 008F6232 . 81E3 FF0F0000 and ebx, 0FFF 008F6238 . 66:01141F add [edi+ebx], dx 008F623C . EB 0E jmp short multOSD.008F624C 008F623E > 66:8B1E mov bx, [esi] ; Case 3 of switch 008F620F 008F6241 . 81E3 FF0F0000 and ebx, 0FFF 008F6247 . 01141F add [edi+ebx], edx 008F624A . EB 00 jmp short multOSD.008F624C 008F624C > 66:830E FF or word ptr [esi], 0FFFF ; Default case of switch 008F620F 008F6250 . 83C6 02 add esi, 2 008F6253 .^ E2 B4 loopd short multOSD.008F6209 008F6255 .^ EB 9A jmp short multOSD.008F61F1 008F6257 > 8B95 22040000 mov edx, [ebp+422] //这里我得到的ESI=008DFB14 ; multOSD.00870000 008F625D . 8BB5 41050000 mov esi, [ebp+541] 008F6263 . 0BF6 or esi, esi 008F6265 . 74 11 je short multOSD.008F6278 /////当我们中断在003B7257处时,重定位处理完毕。此时ESI=003B63B0,就是重定位表的结束地址啦。 得到重定位表信息: RVA=00006000,大小=003B63B0-003B6000=000003B0/////// 问题一:此时我不知道该怎么算这个大小了! Ctrl+B 在当前位置下搜索Hex值:61 75,即popad、jnz 这个我找到了: 008F63AF . 61 popad 008F63B0 . 75 08 jnz short multOSD.008F63BA 008F63B2 . B8 01000000 mov eax, 1 008F63B7 . C2 0C00 retn 0C 008F63BA > 68 00000000 push 0 008F63BF . C3 retn 执行到retn返回时,OEP是这样的 008CF9E4 . 55 push ebp 008CF9E5 ? 8BEC mov ebp, esp 008CF9E7 ? 83C4 C4 add esp, -3C 008CF9EA . B8 0CF88C00 mov eax, multOSD.008CF80C 008CF9EF ? E8 B46DFAFF call multOSD.008767A8 008CF9F4 . E8 8748FAFF call multOSD.00874280 008CF9F9 ? 8D40 00 lea eax, [eax] 008CF9FC . 0000 add [eax], al 008CF9FE . 0000 add [eax], al 008CFA00 . 0000 add [eax], al 008CFA02 . 0000 add [eax], al 008CFA04 . 0000 add [eax], al 008CFA06 . 0000 add [eax], al 008CFA08 . 0000 add [eax], al 008CFA0A . 0000 add [eax], al 008CFA0C . 0000 add [eax], al 008CFA0E . 0000 add [eax], al 008CFA10 . 0000 add [eax], al 问题二:这个地方之前我是不是有一些地方搞错了. 以上两个问题,请FLY哥能帮我解决一下.非常感谢! |
|
[原创]Stud_PE_v2.2.0.5汉化增强版+修正4处Bug
好!看看!支持! |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值