|
Ultra Protect脱壳+暗桩解除――股市风暴 V6.0
最初由 好好学习2 发布 是在Directory Table内的ImportTable的RVA吧。 |
|
Ultra Protect脱壳+暗桩解除――股市风暴 V6.0
呵呵,正在学脱Ultra Protect,谢了。 |
|
脱ASPack + UPX-Scrambler 高手免了。
呵呵,经过一翻周折,终于手脱成功了。 程序校验文件名(.EXE后面的没校验),大小没校验。程序运行中会生成3dpro.exe及3D_LOG.ini,不知有何用,正在努力中。。。 过程: OD载入未脱壳程序, 0068C001 > 60 pushad*************************停在这里,按F8跟下去 0068C002 E8 03000000 call BjQx3D.0068C00A***********F7跟进 0068C007 - E9 EB045D45 jmp 45C5C4F7 0068C00C 55 push ebp 0068C00D C3 retn 0068C00E E8 01000000 call BjQx3D.0068C014 0068C013 EB 5D jmp short BjQx3D.0068C072 0068C015 BB EDFFFFFF mov ebx,-13 0068C01A 03DD add ebx,ebp 0068C01C 81EB 00C02800 sub ebx,28C000 ; UNICODE ";0" F7进入后,来到这里 0068C00A 5D pop ebp************************停在这里,按F8跟下去 0068C00B 45 inc ebp 0068C00C 55 push ebp 0068C00D C3 retn***************************返回到 0068C008 0068C00E E8 01000000 call BjQx3D.0068C014 0068C013 EB 5D jmp short BjQx3D.0068C072 0068C015 BB EDFFFFFF mov ebx,-13 0068C01A 03DD add ebx,ebp 0068C01C 81EB 00C02800 sub ebx,28C000 ; UNICODE ";0" 到这里 0068C008 /EB 04 jmp short BjQx3D.0068C00E 0068C00A |5D pop ebp 0068C00B |45 inc ebp 0068C00C |55 push ebp 0068C00D |C3 retn 0068C00E \E8 01000000 call BjQx3D.0068C014***********F7跟进 0068C013 EB 5D jmp short BjQx3D.0068C072 0068C015 BB EDFFFFFF mov ebx,-13 0068C01A 03DD add ebx,ebp 0068C01C 81EB 00C02800 sub ebx,28C000 ; UNICODE ";0" 到这里 0068C014 5D pop ebp ; BjQx3D.0068C013 0068C015 BB EDFFFFFF mov ebx,-13 0068C01A 03DD add ebx,ebp 0068C01C 81EB 00C02800 sub ebx,28C000 ; UNICODE ";0" 0068C022 83BD 22040000 00 cmp dword ptr ss:[ebp+422],0 0068C029 899D 22040000 mov dword ptr ss:[ebp+422],ebx 0068C02F 0F85 65030000 jnz BjQx3D.0068C39A 0068C035 8D85 2E040000 lea eax,dword ptr ss:[ebp+42E] 0068C03B 50 push eax 接着就是N个F8及F4,最后来到0068C3AF,会看到0068C3BA的变化,0068985F的地址可能是OEP。可以用d 401000在转存窗看文件头的解压过程。 0068C395 ^\E9 EBFEFFFF jmp BjQx3D.0068C285 0068C39A B8 5F982800 mov eax,28985F 0068C39F 50 push eax 0068C3A0 0385 22040000 add eax,dword ptr ss:[ebp+422] 0068C3A6 59 pop ecx 0068C3A7 0BC9 or ecx,ecx 0068C3A9 8985 A8030000 mov dword ptr ss:[ebp+3A8],eax 0068C3AF 61 popad********************************到这里停下,注意下面的push 0068C3B0 75 08 jnz short BjQx3D.0068C3BA 0068C3B2 B8 01000000 mov eax,1 0068C3B7 C2 0C00 retn 0C 0068C3BA 68 5F986800 push BjQx3D.0068985F*****************注意地址 0068C3BF C3 retn*********************************返回到上面的地址。 返回到这 0068985F 90 nop******************可能是OEP,试DUMP后,PEID查是UPX-Scrambler RC1.x -> ┫nT?L,继续F8跟下去 00689860 61 popad 00689861 BE 00E05F00 mov esi,BjQx3D.005FE000 00689866 8DBE 0030E0FF lea edi,dword ptr ds:[esi+FFE03000] 0068986C 57 push edi******************************注意EDI的值,00401000,按F8及F4跟下去 0068986D 83CD FF or ebp,FFFFFFFF 00689870 EB 10 jmp short BjQx3D.00689882 00689872 EB 00 jmp short BjQx3D.00689874 00689874 ^ EB EA jmp short BjQx3D.00689860 00689876 ^ EB E8 jmp short BjQx3D.00689860 00689878 8A06 mov al,byte ptr ds:[esi] 0068987A 46 inc esi 0068987B 8807 mov byte ptr ds:[edi],al 0068987D 47 inc edi 经地漫长的F8+F4后,来到 006899A2 ^\74 DC je short BjQx3D.00689980**************来到这后,向下看,找到下面的pushad或popad就快成功了 006899A4 89F9 mov ecx,edi 006899A6 79 07 jns short BjQx3D.006899AF 006899A8 0FB707 movzx eax,word ptr ds:[edi] 006899AB 47 inc edi 006899AC 50 push eax 006899AD 47 inc edi 006899AE B9 5748F2AE mov ecx,AEF24857 006899B3 55 push ebp 006899B4 FF96 08A42800 call dword ptr ds:[esi+28A408] 006899BA 09C0 or eax,eax 006899BC 74 07 je short BjQx3D.006899C5 006899BE 8903 mov dword ptr ds:[ebx],eax 006899C0 83C3 04 add ebx,4 006899C3 ^ EB D8 jmp short BjQx3D.0068999D 006899C5 FF96 0CA42800 call dword ptr ds:[esi+28A40C] 006899CB 60 pushad**************************UPX壳特征pushad jmp xxxxxxxx 或popad jmp xxxxxxxx,代码解压完才看到,否则就是add byte ptr ds:[eax],al之类的。 006899CC - E9 2F76D7FF jmp BjQx3D.00401000*************跳到真正的OEP,F8跟 006899D1 0000 add byte ptr ds:[eax],al 006899D3 00EC add ah,ch 006899D5 99 cdq 006899D6 68 00A09A68 push 689AA000 006899DB 0038 add byte ptr ds:[eax],bh 006899DD 16 push ss 006899DE 5F pop edi 006899DF 0000 add byte ptr ds:[eax],al 006899E1 0000 add byte ptr ds:[eax],al 006899E3 0000 add byte ptr ds:[eax],al 006899E5 0000 add byte ptr ds:[eax],al 006899E7 0000 add byte ptr ds:[eax],al 呵呵,终于见到光明了, 00401000 /EB 10 jmp short BjQx3D.00401012***************OEP,DUMP吧。 00401002 |66:623A bound di,dword ptr ds:[edx] 00401005 |43 inc ebx 00401006 |2B2B sub ebp,dword ptr ds:[ebx] 00401008 |48 dec eax 00401009 |4F dec edi 0040100A |4F dec edi 0040100B |4B dec ebx 0040100C |90 nop 0040100D -|E9 DC145A00 jmp 009A24EE 00401012 \A1 CF145A00 mov eax,dword ptr ds:[5A14CF] 00401017 C1E0 02 shl eax,2 0040101A A3 D3145A00 mov dword ptr ds:[5A14D3],eax 0040101F 52 push edx 00401020 6A 00 push 0 DUMP后的文件不能运行,要用IREC修复,填上OEP=1000,按IAT Autosearch后,RVA变为001F8308,Size为000001E8,若按这样获得的输入表是不完全的,这样FIX出来的文件不能运行!改Size=1000,这样获得完整的输入表了。 奇怪的是我用OD插件“OllyDump 2.21.108”DUMP下来的修复后,有2.56M,可以正常运行,但用OD插件“OllyDbg PE Dumper 3.00”的DUMP下来的还有壳?用不了。 另外要注意的是,用“OllyDump 2.21.108”DUMP时,记得将“重建输入表”前的勾取消,否则修复后不能运行的。 by cnnets 2005.3.25 (菜鸟定文章,谢谢你看完) 最终脱壳文件:http://ocn.e5v.com/noncgi/2003/affix/050325044517__3_bjqx.rar |
|
[原创]EcE应用实例-脱壳篇
对ASPack 2.12 -> Alexey Solodovnikov [重叠](Overlay)加的壳的E如何操刀,按楼主的方法不行,我是低手,请指教。 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值