UPX0.89脱壳+自校验解除 (要注册码和注册文件我不懂破解求点思路!)
【作者】shy88488【工具】loadPE, Ollydbg,PEID,Import_REC 1.6
【平台】WINXP
【软件名称】桌面提醒精灵5.02(在多特上找到的)
【加壳方式】UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
【声明】学习之用并无商业企图!
-----------------------------------
【内容】
一.脱壳
-------------PEID查壳------------
UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
OD载入直接单步向下 不要让他会跳!到达
0086B038 /74 07 je short zmtxjl.0086B041
0086B03A |8903 mov dword ptr ds:,eax
0086B03C |83C3 04 add ebx,4
0086B03F^|EB D8 jmp short zmtxjl.0086B019;这个地方回跳了
0086B041 \FF96 60FB4600 call dword ptr ds: ; 但是在这边F4不能断下来会飞掉(原因我也不知)
0086B047 8BAE 54FB4600 mov ebp,dword ptr ds:
0086B04D 8DBE 00F0FFFF lea edi,dword ptr ds: ;在这个地方F4断下
0086B053 BB 00100000 mov ebx,1000
继续向下单步走!!
0086B075 58 pop eax
0086B076 61 popad
0086B077 8D4424 80 lea eax,dword ptr ss:
0086B07B 6A 00 push 0
0086B07D 39C4 cmp esp,eax
0086B07F^ 75 FA jnz short zmtxjl.0086B07B
0086B081 83EC 80 sub esp,-80
0086B084- E9 3F55CFFF jmp zmtxjl.005605C8;到达这边 在单步直接到达OEP
---------------jmp zmtxjl.005605C8 到达----------
005605C8 55 push ebp;跳到这里OEP
005605C9 8BEC mov ebp,esp
005605CB 6A FF push -1
005605CD 68 20B37E00 push zmtxjl.007EB320
005605D2 68 BC295600 push zmtxjl.005629BC
005605D7 64:A1 00000000 mov eax,dword ptr fs:
005605DD 50 push eax
005605DE 64:8925 00000000 mov dword ptr fs:,esp
loadPE脱壳!
import_REC 修复!没有无效指针!!!
点击程序! 程序一闪而过!自动退出了!!!说明程序存在自校验!!
接下来是解除自校验!
================================================
二.自校验解除
OD载入修复文件!在命令行直接下段bpx ExitProcess!!!(记住大小写区分)
Shief+F9运行!
-------------------------------------------
004FB575 FF15 F0425800 call dword ptr ds:[<&kernel32.ExitP>; kernel32.ExitProcess;断在这里!查看堆栈信息!
004FB57B 5D pop ebp
004FB57C C3 retn
-----------堆栈信息--------------------
0012FC80 004FB571dumped_.004FB571
0012FC84 00000000\ExitCode = 0
0012FC88/0012FCF4
0012FC8C|00432454返回到 dumped_.00432454 来自 dumped_.004CFC9D ;说明这个退出CALL由004CFC9D调过来的。并且004CFC9D可能是由00432454上面的某一个CALL到达的!
0012FC90|00000000
---------crtl+g 来到00432454-----------------
00432429 53 push ebx
0043242A E8 50D80900 call dumped_.004CFC7F
0043242F 83C4 04 add esp,4
00432432 837D AC 00 cmp dword ptr ss:,0
00432436 0F84 07000000 je dumped_.00432443 ; 3
0043243C B8 01000000 mov eax,1
00432441 EB 02 jmp short dumped_.00432445 ; 2
00432443 33C0 xor eax,eax
00432445 85C0 test eax,eax
00432447 0F84 0A000000 je dumped_.00432457 ; 跳过call dumped_.004CFC9D将他改成JNE 保存!!!
0043244D 6A 00 push 0
0043244F E8 49D80900 call dumped_.004CFC9D;来到这边向上翻有三个跳
00432454 83C4 04 add esp,4
修改:
00432447 0F84 0A000000 je dumped_.00432457 ;将JE改成JNE 保存!!!
运行新文件 依旧自动退出 ! MB还有自校验··
-------------载入新文件crtl+g 来到00432454 ------
00432447 /75 0E jnz short dumped_.00432457 ; 修改过的 在此处下断 重新载入运行,在这边断下
00432449 |90 nop
0043244A |90 nop
0043244B |90 nop
0043244C |90 nop
0043244D |6A 00 push 0
0043244F |E8 49D80900 call dumped_.004CFC9D
00432454 |83C4 04 add esp,4 ;这里到 向上翻
00432457 \E9 0C000000 jmp dumped_.00432468
0043245C E9 00000000 jmp dumped_.00432461
---------------再下bpx ExitProcess断点Shief+F9 运行-------------------
004FB560 55 push ebp
004FB561 8BEC mov ebp,esp
004FB563 8B45 08 mov eax,dword ptr ss:
004FB566 50 push eax
004FB567 B9 381D8200 mov ecx,dumped_.00821D38
004FB56C E8 0F85FFFF call dumped_.004F3A80
004FB571 8B4D 08 mov ecx,dword ptr ss:
004FB574 51 push ecx
004FB575 FF15 F0425800 call dword ptr ds:[<&kernel32.ExitP>; kernel32.ExitProcess;来到这边查看堆栈
004FB57B 5D pop ebp
004FB57C C3 retn
-----------堆栈
0012FC88 004FB571dumped_.004FB571
0012FC8C 00000000\ExitCode = 0
0012FC90/0012FCF4
0012FC94|00432C99返回到 dumped_.00432C99 来自 dumped_.004CFC9D;到00432C99处看看
0012FC98|00000000
0012FC9C|0012FCB4
0012FCA0|00000001
----------------来到00432C99处----------
00432C88 33C0 xor eax,eax
00432C8A 85C0 test eax,eax
00432C8C 0F84 0A000000 je dumped_.00432C9C ;跳过下面的CALL
00432C92 6A 00 push 0
00432C94 E8 04D00900 call dumped_.004CFC9D ;CALL退出函数
00432C99 83C4 04 add esp,4
00432C9C 8B5D FC mov ebx,dword ptr ss:
00432C9F 85DB test ebx,ebx
--------- 修改
00432C8C 0F84 0A000000 je dumped_.00432C9C ;将JE改成JNE,保存··
-------------运行程序----------
可以运行了@!!··呵呵··过程应该蛮详细的吧!
------------------接下来是关于破解的问题-----------------求解释----求思路-------
这个软件注册平破解有点难诶·竟然要注册码和注册文件···有点尴尬我没有碰过··求思路···
附上软件威盘下载地址http://www.vdisk.cn/down/index/8793719A3390
第一次发帖不知道有没有违规如有违规请版主指出!不要惩罚太狠!谢谢·
lz教程做的不错
期待大牛给思路吧 {:1_908:}晕死难道我的标题有点错误 没人来解决·· 第一次碰到这样的 是很好的了 支持了!~ UPX脱壳撒~能全部分析下好了~ 去自校验写的挺详细的,学习了,谢谢! 壳 是弄出来了·但是不会破解啊··求解释啊 ··这个软件的注册方法有点奇葩···求解小生进来看看啊·· 大牛,帮忙分析一下吧
页:
[1]
2