Allok Video to 3GP Converter 脱壳+破解(图)
①。<br />下载好安装后,用DIT查看为MoleBox 2.5.x.<br />-----------------------------------------------------------------------------<br />OD,载如RUN,程序完全运行后,ALT+M查看内存映射.如图<br /><img height="137" alt="" src="https://img.jbzj.com/do/uploads/userup/0906/231K34V619.jpg" width="617" border="0" /> <br /><br />发现有MBX@XZXXXS之类的名称,而且有_BOX_区段名,可以肯定这个就是被捆绑并参与程序运行的文件(DLL),<br />我们下面就有把这个DLL给弄出来.<br />-----------------------------------------------------------------------------<br /><br />②抓取捆绑的DLL。<br />-----------------------------------------------------------------------------<br />再次载入<br />0047EB53 > E8 00000000 call Allok_Vi.0047EB58 《停在EP处。<br />0047EB58 60 pushad<br />0047EB59 E8 4F000000 call Allok_Vi.0047EBAD<br />0047EB5E FD std<br />0047EB5F BE 208F9F0F mov esi,0F9F8F20<br />0047EB64 ED in eax,dx<br />0047EB65 ^ 7F 91 jg short Allok_Vi.0047EAF8<br />-----------------------------------------------------------------------------------------------<br />我们再验证下我刚才的猜想<br />BP GetFileTime ,中断后取消断点返回到<br />00484C92 C745 AC 0000000>mov dword ptr ss:,0<br />00484C99 EB 09 jmp short Allok_Vi.00484CA4<br />00484C9B 8B4D AC mov ecx,dword ptr ss:<br />00484C9E 83C1 01 add ecx,1<br />00484CA1 894D AC mov dword ptr ss:,ecx<br />00484CA4 8B55 AC mov edx,dword ptr ss:<br />00484CA7 3B55 9C cmp edx,dword ptr ss:<br />00484CAA 0F83 E3000000 jnb Allok_Vi.00484D93<br />00484CB0 8B45 AC mov eax,dword ptr ss:<br />00484CB3 C1E0 04 shl eax,4<br />00484CB6 8B4D E0 mov ecx,dword ptr ss:<br />00484CB9 8B51 04 mov edx,dword ptr ds:<br />00484CBC 8B4D DC mov ecx,dword ptr ss:<br />00484CBF 030C02 add ecx,dword ptr ds:<br /><br />--------------------------------------------------------------------------------------------------<br />00484CA7 3B55 9C cmp edx,dword ptr ss:<br />堆栈 ss:=00000001 ;捆绑文件数1<br />edx=00000000<br />--------------------------------------------------------------------------------------------------<br />00484CBC 8B4D DC mov ecx,dword ptr ss:<br />堆栈 ss:=003C2330, (ASCII "SkinMagic.dll") ;捆绑文件名<br />ecx=003C2370<br />---------------------------------------------------------------------------------------------------<br />现在我们要为下面的主程序脱壳做准备.<br />查找字符可以找到2个”EXECUTABLE“双击来到<br />0048596D 68 C40B4900 push Allok_Vi.00490BC4 ; ASCII "EXECUTABLE"<br />00485972 8B0D 90184900 mov ecx,dword ptr ds: ; Allok_Vi.00400108<br />00485978 51 push ecx<br />00485979 8B55 E8 mov edx,dword ptr ss:<br />0048597C 52 push edx<br /><br />004859F0 8BE5 mov esp,ebp<br />004859F2 5D pop ebp<br />004859F3 C3 retn ;这里F2下个断<br />-----------------------------------------------------------------------------------------------------------------------<br />知道文件名了,下面改知道怎么办了吧.<br />BP CreateFileA<br />中断2次后,堆栈中看到,取消断点<br />0012FC48 0048763C /CALL 到 CreateFileA 来自 Allok_Vi.00487636<br />0012FC4C 009C17E0 |FileName = "D:\DOCUME~1\FOBNN\LOCALS~1\TEMP\MBX@540@3C2458.###" ;创建文件,就是被捆绑的文件<br />0012FC50 40000000 |Access = GENERIC_WRITE<br />0012FC54 00000000 |ShareMode = 0<br />0012FC58 00000000 |pSecurity = NULL<br />0012FC5C 00000002 |Mode = CREATE_ALWAYS<br />0012FC60 00000000 |Attributes = 0<br />0012FC64 00000000 \hTemplateFile = NULL<br />------------------------------------------------------------------------------------------------<br />不是说把那个文件找到,改个名就可以用了.<br />我们在数据窗口中跟随<br />009C17E8 5C317E45<br />009C17EC 4E424F46<br />009C17F0 4F4C5C4E<br />009C17F4 534C4143<br />009C17F8 545C317E<br />009C17FC 5C504D45<br />009C1800 4058424D<br />009C1804 40303435<br />009C1808 34324333<br />009C180C 232E3835<br />009C1810 00002323<br />009C1814 00000000<br /><br />改把MBX@540@3C2458.###改成真正的文件名SkinMagic.dll<br />--------------------------------------------------------------------------------------------------------<br />好了文件名改好,改把文件拿出来<br />BP GetModuleHandleA,中断后取消断点.ALT+M,弹出提示确定不用管.<br />内存映射,项目 39<br />地址=10001000<br />大小=0003A000 (237568.)<br />物主=SkinMagi 10000000<br />区段=.text<br />包含=code<br />类型=Imag 01001002<br />访问=R<br />初始访问=RWE<br />在SkinMagic的CODE F2下断 如图.<br /><br /><img height="108" alt="" src="https://img.jbzj.com/do/uploads/userup/0906/231K40MO3.jpg" width="949" border="0" /> <br />--------------------------------------------------------------------------<br />F9运行,直接断在了这个DLL的OEP处<br />100010E9 55 push ebp<br />100010EA 8BEC mov ebp,esp<br />100010EC 53 push ebx<br />100010ED 8B5D 08 mov ebx,dword ptr ss:<br />100010F0 56 push esi<br />100010F1 8B75 0C mov esi,dword ptr ss:<br />100010F4 57 push edi<br />100010F5 8B7D 10 mov edi,dword ptr ss:<br />-------------------------------------------------------------------<br />用LORDPE 把这个DLL ,DUMP出来.<br />现在用PE编辑,把DUMP下来的DLL 的数据基址和大小,改为这个DLL.reloc区段的RAV的大小.<br />如图.<br /><img height="336" alt="" src="https://img.jbzj.com/do/uploads/userup/0906/231K42155J.jpg" width="529" border="0" /> <br /><br />改完后修复输入表吧OEP=10E9 <br /><br />OK。已经把DLL拿出来了.<br />====================================<br />③。程序脱壳<br />F9运行吧,<br />在上面下的断点生效<br />004859F0 8BE5 mov esp,ebp<br />004859F2 5D pop ebp<br />004859F3 C3 retn ;中断这里<br /><br />来到这里<br />0047F2CB 8B4D EC mov ecx,dword ptr ss: ; Allok_Vi.0041F872<br />0047F2CE 894D 08 mov dword ptr ss:,ecx<br />0047F2D1 833D B4594900 0>cmp dword ptr ds:,0<br />0047F2D8 74 13 je short Allok_Vi.0047F2ED<br />0047F2DA 6A 00 push 0<br />0047F2DC 6A 00 push 0<br />0047F2DE 6A 00 push 0<br />0047F2E0 8B15 B4594900 mov edx,dword ptr ds:<br />0047F2E6 52 push edx<br />0047F2E7 FF15 B8174900 call dword ptr ds: ; USER32.PostMessageA<br />0047F2ED 33C0 xor eax,eax<br />0047F2EF 5F pop edi<br />0047F2F0 5E pop esi<br />0047F2F1 5B pop ebx<br />0047F2F2 8BE5 mov esp,ebp<br />0047F2F4 5D pop ebp<br />0047F2F5 C3 retn<br /><br /><br />来到这里<br />0047E72B 58 pop eax ; Allok_Vi.0041F872<br />0047E72C 894424 24 mov dword ptr ss:,eax<br />0047E730 61 popad<br />0047E731 58 pop eax<br />0047E732 58 pop eax<br />0047E733 FFD0 call eax ;跳向OEP<br />0047E735 E8 A6C00000 call Allok_Vi.0048A7E0<br />------------------------------------------------------------------------------------------------------------------------------------------<br />0041F872 55 push ebp ;OEP到了DUMP。修复。<br />0041F873 8BEC mov ebp,esp<br />0041F875 6A FF push -1<br />0041F877 68 68644200 push Allok_Vi.00426468<br />0041F87C 68 E8F94100 push Allok_Vi.0041F9E8 ; jmp to msvcrt._except_handler3<br />0041F881 64:A1 00000000 mov eax,dword ptr fs:<br />0041F887 50 push eax<br />0041F888 64:8925 0000000>mov dword ptr fs:,esp<br />0041F88F 83EC 68 sub esp,68<br />0041F892 53 push ebx<br />0041F893 56 push esi<br />0041F894 57 push edi<br />0041F895 8965 E8 mov dword ptr ss:,esp<br />0041F898 33DB xor ebx,ebx<br />0041F89A 895D FC mov dword ptr ss:,ebx<br />0041F89D 6A 02 push 2<br />-----------------------------------------------------------------------------------------------<br />④破解<br />运行脱壳后的程序.<br />破解相当简单,直接写入用户名,注册码,改下注册标志即可。
頁:
[1]