-
-
[转帖]申请加入DFCG NO.2--VBIDEUtils v4.00注册算法分析
-
发表于:
2005-10-11 18:31
9049
-
[转帖]申请加入DFCG NO.2--VBIDEUtils v4.00注册算法分析
VBIDEUtils v4.00注册算法分析
【破解作者】 winndy[FCG][PYG]
【作者邮箱】 CNwinndy@hotmail.com
【使用工具】 Driver Studio 3.2 Ollydbg v1.10 fly修改版
【破解平台】 Winxp
【软件名称】 VBIDEUtils v4.00
【官方网址】 http://www.vbdiamond.com/
【编写语言】 Microsoft VB 6.0
【软件介绍】 这是一款VB插件,里面整合了很多功能。
【破解声明】 For Study ,For Fun
【保护方式】 VB Pcode,序列号
【破解过程】 这是一个VB Addins,觉得很棘手。主要破解思路为:
1.首先到VBIDEUtils的安装目录去看看,查看里面的ocx以及dll,以求寻得一些有用线索。
2.采用OD以及各种反编译软件(包括Pcode的反编译工具,象VB RezQ Version 2.4a ,VB Decompiler ,vb explorer等)尝试
得到一些敏感信息。最终锁定的目标是VBIDEUtils.dll。尽管VB Decompiler和vb explorer都是很好的Pcode反编译工具,但是
其均不能反编译VBIDEUtils.dll。采用VB RezQ Version 2.4a则只能得到其窗体(注册窗体导出来被我利用写了注册机),并未有
任何实质性的代码。
3.采用OD,能看到其中的导入的函数,但是也不可以动态调试(可能是我还没掌握用OD动态调试dll吧)。
4.没有办法,只好请出SoftICE。从这个时刻起,我就做好了吃苦的准备,边调试,边手工在草稿纸上作笔记,故这篇文章的代码也是从
草稿纸上敲进来的,有影响阅读的,还望多体谅。
现在,开始介绍具体步骤。
拿到一个VB程序,常不知道下什么断点才是有成效的,为避免走弯路,我首先采用OD打开dll,再从其导入函数中,根据自己的敏感
来挑选一些可能很重要的函数下断点。
OD得到的导入函数为(在入口处,向上翻一页就可以看到):
112511C0 .- FF25 BC1025>jmp dword ptr ds:[<&MSVBVM60.DllFunctionCall>] ; MSVBVM60.DllFunctionCall
112511C6 .- FF25 501025>jmp dword ptr ds:[<&MSVBVM60.#594>] ; MSVBVM60.rtcRandomize
112511CC .- FF25 481025>jmp dword ptr ds:[<&MSVBVM60.#593>] ; MSVBVM60.rtcRandomNext
112511D2 .- FF25 401125>jmp dword ptr ds:[<&MSVBVM60.#572>] ; MSVBVM60.rtcHexBstrFromVar
112511D8 .- FF25 581025>jmp dword ptr ds:[<&MSVBVM60.#595>] ; MSVBVM60.rtcMsgBox
112511DE .- FF25 941025>jmp dword ptr ds:[<&MSVBVM60.#631>] ; MSVBVM60.rtcMidCharBstr
....
....
为了阅读的方便,省略若干...
001B:73492B08 pop ecx ;ecx=65,别忘了77 xor 12=65
2B09 mov [eax*2+ebx],cx ;cx=65,这里保存65,我电脑上ebx是001D1180,eax=1。
......
73492A3E mov BX,[eax*2+ebx] ;这里取出了65
2A42 push ebx ;压入堆栈
.....
5191 pop eax ;取出65
add [esp],AX ;累加和
......
001B:7348E2FA pop ebx ;bx=65
E2FB mov [ebp+eax],bx ;保存和,ebp=0012DFF4,eax=FFFFFECC,ebp+eax=0012DEC0
;下命令 d ebp+eax,可以看到数据。
001B:7348E2B6 movsx eax,WORD PTR [esi]
E2B9 mov ax,[ebp+eax] ;取出和
E2BD push eax ;压入堆栈
......
73495191 pop eax ;把和弹出来
5192 add [esp],ax ;累加两个和,[esp]=02B9,ax=066C,sum=0925
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)