- UID
- 2198
注册时间2005-6-29
阅读权限255
最后登录1970-1-1
副坛主
该用户从未签到
|
某电视软件 5.3.5
软件大小:894KB
软件类别:国产软件/网络音视
下载次数:50800
软件授权:共享版
软件语言:简体中文
运行环境:Win9x/Me/NT/2000/XP/2003
更新时间:2007-4-11 10:58:12
OD载入,从程序OEP便可得出是VB程序。随意输入注册信息,有注册失败错误提示框。
搜索UNICODE,无果。我们下bp rtcMsgBox断点(拦截对话框断点)
OD断到这里:
740F405A > 55 push ebp ; 程序断在这里
740F405B 8B4424 14 mov eax, dword ptr [esp+14]
此时我们在OD的堆栈窗口看到:我们在该地址右键-反汇编窗口中跟随。来到这里,我们由此向上找该函数句柄处下断。
0045C540 . FF15 28024600 call dword ptr [<&MSVBVM50.#595>] ; MSVBVM50.rtcMsgBox
0045C546 . 8D4D 84 lea ecx, dword ptr [ebp-7C] ; <返回到这里>上方就是程序弹出注册失败对话框的函数
0045BCC0 > \55 push ebp ; 我们在这里下断。点注册后程序断在这里,我们F8单步向下跟踪
0045BCC1 . 8BEC mov ebp, esp
0045BCC3 . 83EC 0C sub esp, 0C
0045BCC6 . 68 A6134000 push <jmp.&MSVBVM50.__vbaExceptHan>; SE 处理程序安装
……
…… 省略中间部分代码
……
0045C0D3 . FF15 08024600 call dword ptr [<&MSVBVM50.__vbaHr>; MSVBVM50.__vbaHresultCheckObj
0045C0D9 > 8B55 E0 mov edx, dword ptr [ebp-20] ; 这里调出了我们输入的假码
0045C0DC . 52 push edx
0045C0DD . FF15 60034600 call dword ptr [<&MSVBVM50.#581>] ; MSVBVM50.rtcR8ValFromBstr
0045C0E3 . FF15 5C024600 call dword ptr [<&MSVBVM50.__vbaFp>; MSVBVM50.__vbaFpR8
0045C0E9 . DB85 40FFFFFF fild dword ptr [ebp-C0]
0045C0EF . DD9D 04FFFFFF fstp qword ptr [ebp-FC]
0045C0F5 . DC9D 04FFFFFF fcomp qword ptr [ebp-FC]
0045C0FB . DFE0 fstsw ax
0045C0FD . F6C4 40 test ah, 40
0045C100 . 74 07 je short 0045C109
0045C102 . BE 01000000 mov esi, 1
0045C107 . EB 02 jmp short 0045C10B
0045C109 > 33F6 xor esi, esi
0045C10B > 8D4D E0 lea ecx, dword ptr [ebp-20]
0045C10E . FF15 5C034600 call dword ptr [<&MSVBVM50.__vbaFr>; MSVBVM50.__vbaFreeStr
0045C114 . 8D4D C8 lea ecx, dword ptr [ebp-38]
0045C117 . FF15 58034600 call dword ptr [<&MSVBVM50.__vbaFr>; MSVBVM50.__vbaFreeObj
0045C11D . F7DE neg esi
0045C11F . 66:85F6 test si, si
0045C122 . 0F84 92030000 je 0045C4BA ; 我们看到这里有一个非常大的跳转 我们顺着该跳转向下走,发现该跳转跳向注册失败处。于是在此暴破将je修改为jne。
龙哥以前说过,VB程序中大跳转往往才是暴破的关键点。这句话在此得到了验证。修改该跳转后,程序向系统保存正确注册信息。在该程序所在硬盘根目录中生成Iotmrd.sys的文件,我们用记事本打开:
[MyApp]
pt1=5027
pt2=V
pt3=1151
pt4=Nisy
未注册前:
[MyApp]
pt1=5027
pt2=W
软件的机器码也是随机生成的,所以该文件便是通用注册信息。算法设计的再好,但如果存在这样的缺陷,简单修改便可暴破。算法再好也是徒然。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|