好友
阅读权限30
听众
最后登录1970-1-1
|
【文章标题】: 天天音频转换专家 V5.60 Build 051101 贵宾版
【文章作者】: 斌少
【软件名称】: 天天音频转换专家 V5.60 Build 051101 贵宾版
【下载地址】: http://tele.skycn.com/soft/24472.html
【编写语言】: VB
【使用工具】: OD C32ASM PEID
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
嘿嘿~~有点乱 大家别介意~~~
【详细过程】
PEID先查壳:Microsoft Visual Basic 5.0 / 6.0
OD载入 因为这个软件关闭的时候会弹一个网页(鄙视这种做法) 所遇我们还是先来搞定他的网页吧
00401A20 .- FF25 58114000 jmp dword ptr ds:[<&MSVBVM60.#320>] ; MSVBVM60.PutMemEvent
00401A26 .- FF25 64114000 jmp dword ptr ds:[<&MSVBVM60.#321>] ; MSVBVM60.SetMemEvent
00401A2C $- FF25 4C114000 jmp dword ptr ds:[<&MSVBVM60.#100>] ; MSVBVM60.ThunRTMain
00401A32 00 db 00
00401A33 00 db 00
00401A34 > $ 68 B4204000 push tt.004020B4 ; 停在这里 一看就知道这是一个VB的程序 大家一定要熟悉各种语言的入口特征
00401A39 . E8 EEFFFFFF call <jmp.&MSVBVM60.#100>
00401A3E . 0000 add byte ptr ds:[eax],al
00401A40 . 0000 add byte ptr ds:[eax],al
00401A42 . 0000 add byte ptr ds:[eax],al
00401A44 . 3000 xor byte ptr ds:[eax],al
这里就不能查找ASCII了 因为这个是VB的程序 所以只好查找UNICODE了 找到他弹的那个网页地址【http://www.httpoo.com】
超级字串参考, 条目 18
地址=00413693
反汇编=mov edx,tt.0040528C
文本字串=http://www.httpoo.com
双击进去看看 往上走走 发现一个跳转 把它改为JMP就可以跳过去了
00413684 . 8B46 64 mov eax,dword ptr ds:[esi+64]
00413687 . 52 push edx
00413688 . 50 push eax
00413689 . FF15 B8104000 call dword ptr ds:[<&MSVBVM60.__vbaStrCm>; MSVBVM60.__vbaStrCmp
0041368F . 85C0 test eax,eax
00413691 . 74 3E je short tt.004136D1 ; //这个跳转可以跳过他弹出的网页
00413693 . BA 8C524000 mov edx,tt.0040528C ; http://www.httpoo.com
00413698 . 8D4D E4 lea ecx,dword ptr ss:[ebp-1C]
0041369B . FF15 34114000 call dword ptr ds:[<&MSVBVM60.__vbaStrCo>; MSVBVM60.__vbaStrCopy
004136A1 . 8B0E mov ecx,dword ptr ds:[esi]
004136A3 . 8D55 E0 lea edx,dword ptr ss:[ebp-20]
004136A6 . 8D45 E4 lea eax,dword ptr ss:[ebp-1C]
我们打开文件目录会发现里面有tt.ini 打开看看就会发现我们刚才输入的用户密码都保存再这里由此可以推断 这个程序是
ini文件类型的 那我们就下读取ini文件段点来 bp GetPrivateProfileStringA 下好后运行
看堆栈:
0012FA00 0041FB9A /CALL 到 GetPrivateProfileStringA 来自 tt.0041FB95
0012FA04 00150D5C |Section = "system"
0012FA08 001501C4 |Key = "user"
0012FA0C 00000000 |Default = NULL
0012FA10 0014F844 |ReturnBuffer = 0014F844
0012FA14 00000064 |BufSize = 64 (100.)
0012FA18 0014EE9C \IniFileName = "C:\Program Files\『天天音频转换专家』\tt.ini" //读取ini文件
0012FA1C 660E610E MSVBVM60.__vbaStrCopy
Alt+F9返回到用户代码
往上走走会发现由一个跳转可以跳过去
0041FB19 . FF92 18070000 call dword ptr ds:[edx+718]
0041FB1F . 66:397D AC cmp word ptr ss:[ebp-54],di
0041FB23 . 0F85 FA000000 jnz tt.0041FC23 ; 这里可以跳过读取ini文件 把它改为JMP
0041FB29 . 8B5D 14 mov ebx,dword ptr ss:[ebp+14]
0041FB2C . 8D55 C0 lea edx,dword ptr ss:[ebp-40]
保存文件看看 发现可以直接打开文件了 可是一点击开始转换就提示未注册 那么只好重新来了 这次用C32来打开我们蹂躏后的软件
Ctrl+K查看字符串 再用UNICODE分析一下 往下看就会发现一个和刚才弹出来的错误窗口一样的位置 记下地址 再OD中Ctrl+G来到这个地方
::00412587:: 68 B8514000 PUSH 4051B8 \->: 选择影音文件(未注册版,只能转换为wma)
::0041258C:: 50 PUSH EAX
::0041258D:: 8945 A8 MOV DWORD PTR [EBP-58], EAX
::00412590:: FF91 A4000000 CALL NEAR DWORD PTR [ECX+A4]
::00412596:: 85C0 TEST EAX, EAX
::00412598:: DBE2 FCLEX
::0041259A:: 7D 11 JGE SHORT 004125AD \:JMPDOWN
::0041259C:: 8B55 A8 MOV EDX, DWORD PTR [EBP-58]
::0041259F:: 68 A4000000 PUSH A4
来看看再OD中跟随的样子
00412561 . FF15 B8104000 call dword ptr ds:[<&MSVBVM60.__vbaStrCm>; 关键CALL
00412567 . 85C0 test eax,eax ; 比较EAX
00412569 . 0F84 33020000 je tt.004127A2 ; 这个跳转可以跳过错误窗口 改为JMP
0041256F . 8B0E mov ecx,dword ptr ds:[esi]
00412571 . 56 push esi
00412572 . FF91 10040000 call dword ptr ds:[ecx+410]
00412578 . 8B1D 74104000 mov ebx,dword ptr ds:[<&MSVBVM60.__vbaOb>; MSVBVM60.__vbaObjSet
0041257E . 8D55 D8 lea edx,dword ptr ss:[ebp-28]
00412581 . 50 push eax
00412582 . 52 push edx
00412583 . FFD3 call ebx ; <&MSVBVM60.__vbaObjSet>
00412585 . 8B08 mov ecx,dword ptr ds:[eax]
00412587 . 68 B8514000 push tt.004051B8 ; 这里就是错误窗口了
0041258C . 50 push eax
保存下 发现已经显示【已注册了】
--------------------------------------------------------------------------------
【经验总结】
破解是能力,共享是精神
-------------------------------------------------------------------------------- |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|