手机泰拉瑞亚炽炎巨剑:外挂专用

来源:百度文库 编辑:偶看新闻 时间:2024/05/06 00:08:02
v1.2》完全破解(2009-05-03 12:02:19) 标签:软件破解 杂谈  分类:软件破解 《外挂制作学习系统v1.2》完全破解
说明一下:本人由于不能上网,因此也放弃了学习外挂的制作,呵呵~~
这是帮人家找的软件(同时带破解补丁),带破解补丁?不用,为什么人家
可以破解咱不能呢?呼呼~~开工
献给她,祝她开心每一天~~~
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\wgjx\wgjx
=======================================
软件加了壳tElock 0.98b1 -> tE!,至于脱壳过程,在我的脱壳笔记里已经
很清楚了,在此再演示一遍!嘿嘿,学习来不得半点马虎
入口特征: 使用最后一次异常法
0042EBD6 >^\E9 25E4FFFF jmp wgjc.0042D000
0042EBDB 0000 add byte ptr ds:[eax],al
0042EBDD 0090 542DD91E add byte ptr ds:[eax+1ED92D54],dl

f8单步一下(不单步也行),OD调试选项(忽略kernel32内存访问),其他的
都去掉勾
shift+f9走一下,17次跑起来了,那么我们重新来过在16次:
0042E7FB 60 pushad
0042E7FC E8 06000000 call wgjc.0042E807
0042E801 8B6424 08 mov esp,dword ptr ss:[esp+8]
0042E805 EB 1A jmp short wgjc.0042E821
0042E807 64:67:FF36 0000 push dword ptr fs:[0]
0042E80D 64:67:8926 0000 mov dword ptr fs:[0],esp
0042E813 9C pushfd
0042E814 810C24 00010000 or dword ptr ss:[esp],100
0042E81B 9D popfd
0042E81C F8 clc
0042E81D ^ 73 DC jnb short wgjc.0042E7FB 【OD停在这】
0042E81F CD20 64678F06 vxdcall 68F6764
0042E825 0000 add byte ptr ds:[eax],al
0042E827 58 pop eax

观察堆栈窗口:
0012FF58 0012FFE0 指针到下一个 SEH 记录
0012FF5C 0042E801 SE 句柄

ctrl+G来到42E801

0042E7FB 60 pushad
0042E7FC E8 06000000 call wgjc.0042E807
0042E801 8B6424 08 mov esp,dword ptr ss:[esp+8] 【这个地方】
0042E805 EB 1A jmp short wgjc.0042E821

f2下断,shift+f9,然后f8单步走(较长的时间)在:

0042E7B5 61 popad
0042E7B6 - FF6424 D0 jmp dword ptr ss:[esp-30] ; wgjc.004021E0
0042E7BA 0200 add al,byte ptr ds:[eax]

到达oep:
004021E0 68 EC224000 push wgjc.004022EC ; ASCII "VB5!6&vb6chs.dll"
004021E5 E8 F0FFFFFF call wgjc.004021DA ; jmp 到
004021EA 0000 add byte ptr ds:[eax],al
004021EC 0000 add byte ptr ds:[eax],al
004021EE 0000 add byte ptr ds:[eax],al

直接dumped,然后修复
-----------------------------------------------------------
接下来进行我们的破解工作

OD载入,f9运行,输入假的注册码例如:I LOVE YOU
提示“注册码错误,请与作者联系……”
我们暂停程序,f12暂停,然后alt+f9(执行到用户代码),这时在点击
提示错误的对话框的“确定”按钮来到:
6606F72A |. /74 07 je short msvbvm60.6606F733
6606F72C |. |C745 F8 98F60>mov dword ptr ss:[ebp-8],msvbvm60.6606F698
6606F733 |> \8B35 E8120066 mov esi,dword ptr ds:[<&USER32.MessageBoxIndirectA>; USER32.MessageBoxIndirectA
6606F739 |. 8D45 D8 lea eax,dword ptr ss:[ebp-28]
6606F73C |. 50 push eax ; /pMsgBoxParams
6606F73D |. FFD6 call esi ; \MessageBoxIndirectA 【很明显是这个函数提示错误的】
6606F73F |. 8BD8 mov ebx,eax
6606F741 |. 3BDF cmp ebx,edi
6606F743 |. 75 2F jnz short msvbvm60.6606F774
6606F745 |. 8B45 EC mov eax,dword ptr ss:[ebp-14]

我们观察一下OD的标题栏“CPU -主线程,模块—msvbvm60”

呵呵~~说明了什么?说明软件还在错误的提示所对应的函数中,我们f8一直单步
直到OD窗口标题栏返回到程序的领空来到:
00425FD5 51 push ecx
00425FD6 52 push edx
00425FD7 8D45 C8 lea eax,dword ptr ss:[ebp-38]
00425FDA 6A 40 push 40
00425FDC 50 push eax
00425FDD FF15 9C104000 call dword ptr ds:[<&msvbvm60.#595>] ; msvbvm60.rtcMsgBox【这个call提示错误的】
00425FE3 8D4D 98 lea ecx,dword ptr ss:[ebp-68]
00425FE6 8D55 A8 lea edx,dword ptr ss:[ebp-58]
00425FE9 51 push ecx


我们上翻代码,找到段首:
00425E0A 52 push edx
00425E0B 50 push eax
00425E0C FF15 E4104000 call dword ptr ds:[<&msvbvm60.#406>] ; msvbvm60.__vbaStrCmp
00425E14 /0F85 5F010000 jnz dumped_.00425F79【如果不相等跳到错误】

这个地方比较可疑,因为两个压栈一个比较,很明显是比较注册码额
在00425E0A 下断,同时在中间代码处你会发现下面的call,呵呵,是提示注册正确的
00425E9A FF15 9C104000 call dword ptr ds:[<&msvbvm60.#595>] ; msvbvm60.rtcMsgBox

f9运行,点击注册,观察寄存器:
EAX 00160C34 UNICODE "XHYL;^VFWJ9\TDUH7ZRBSF5XP@QD3VN>O"
ECX 0014B6B8
EDX 0016094C UNICODE "I LOVE YOU"
看到没有,很明显,eax压真注册码,edx是我们的假注册码
破解完成------------------
五一假期也结束了,这两天每天在电脑旁不下8个小时学习脱壳,真是头晕脑胀,心情不好,坐在电脑旁一句话不说,用努力学习,劳累去惩罚自己
的,O了,收工