某VB6 程序的破解思路

1,PEID探测无壳,VB6编写

2,文件目录下有被加密的ACCESS数据库,字符串查找发现数据库密码


数据库密码:
超级字串参考,项目 281 地址=0049EA53 反汇编=mov edx,0041CBEC 文本字串=PROVIDER=MSDAsql;dsn=Xreport;uid=;pwd=tangjin;

3,伪注册判断部分:
09579399 83F8 04 CMP EAX,4 ; 用户名长度必须4位以上

0957948E 52 PUSH EDX ; 送入假码
0957948F 68 742D5709 PUSH tjone.09572D74 ; 空白字符串
09579494 FF15 B4105709 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCm> ; __vbaStrCmp(假码,"")
0957949A 8BF8 MOV EDI,EAX
0957949C 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20]
0957949F F7DF NEG EDI
095794A1 1BFF SBB EDI,EDI
095794A3 50 PUSH EAX ; 用户名
095794A4 47 INC EDI
095794A5 68 742D5709 PUSH tjone.09572D74
095794AA F7DF NEG EDI
095794AC FF15 B4105709 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCm> ; __vbaStrCmp(用户名,"")

4,爆破点:

00487E9D B8 03000000 MOV EAX,3 ; 强制修改
00487EA2 C705 58905600 3A000000 MOV DWORD PTR DS:[569058],3A
00487EAC E9 E6010000 JMP 00488097


二进制修改
A1 34 90 56 00 83 F8 01 0F 85 99 00 00 00 8B 16 56 FF 92 A4 ==>
B8 03 00 00 00 C7 05 58 90 56 00 3A 00 00 00 E9 E6 01 00 00

5,程序为国软,出于保护,不公布名字与补丁。

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...