吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10071|回复: 13
收起左侧

[原创] UPX0.89脱壳+自校验解除 (要注册码和注册文件我不懂破解求点思路!)

  [复制链接]
shy88488 发表于 2011-9-3 13:10
【作者】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:[ebx],eax
0086B03C   |83C3 04          add ebx,4
0086B03F  ^|EB D8            jmp short zmtxjl.0086B019  ;这个地方回跳了
0086B041   \FF96 60FB4600    call dword ptr ds:[esi+46FB60]      ; 但是在这边F4不能断下来会飞掉(原因我也不知)
0086B047    8BAE 54FB4600    mov ebp,dword ptr ds:[esi+46FB54]
0086B04D    8DBE 00F0FFFF    lea edi,dword ptr ds:[esi-1000] ;在这个地方F4断下
0086B053    BB 00100000      mov ebx,1000


继续向下单步走!!
0086B075    58               pop eax
0086B076    61               popad
0086B077    8D4424 80        lea eax,dword ptr ss:[esp-80]
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:[0]
005605DD    50               push eax
005605DE    64:8925 00000000 mov dword ptr fs:[0],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   004FB571  dumped_.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:[ebp-54],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:[ebp+8]
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:[ebp+8]
004FB574    51               push ecx
004FB575    FF15 F0425800    call dword ptr ds:[<&kernel32.ExitP>; kernel32.ExitProcess  ;来到这边查看堆栈
004FB57B    5D               pop ebp
004FB57C    C3               retn
    -----------堆栈
0012FC88   004FB571  dumped_.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:[ebp-4]
00432C9F    85DB             test ebx,ebx

  --------- 修改
00432C8C    0F84 0A000000    je dumped_.00432C9C   ;将JE改成JNE,保存··

-------------运行程序----------
可以运行了@!!··呵呵··过程应该蛮详细的吧!
------------------接下来是关于破解的问题-----------------求解释----求思路-------
未命名.jpg

这个软件注册平破解有点难诶·  竟然要注册码和注册文件···有点尴尬我没有碰过··求思路···

附上软件威盘下载地址http://www.vdisk.cn/down/index/8793719A3390


第一次发帖不知道有没有违规如有违规请版主指出!不要惩罚太狠!谢谢·

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

注册账户好难 发表于 2011-9-3 13:41
lz教程做的不错

期待大牛给思路吧
 楼主| shy88488 发表于 2011-9-3 13:57
pwzh88 发表于 2011-9-3 13:48
mfkwgij 发表于 2011-9-3 15:17
是很好的了 支持了!~
头像被屏蔽
guxiaokang 发表于 2011-9-3 16:01
提示: 作者被禁止或删除 内容自动屏蔽
cu629944 发表于 2011-9-3 17:29
UPX脱壳撒~能全部分析下好了~
cafardgg 发表于 2011-9-3 18:19
去自校验写的挺详细的,学习了,谢谢!
 楼主| shy88488 发表于 2011-9-3 22:18
壳 是弄出来了·但是不会破解啊··求解释啊 ··这个软件的注册方法有点奇葩···求解  小生进来看看啊··
老万 发表于 2011-9-4 07:27
大牛,帮忙分析一下吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 23:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表