某VB6 程序的破解思路

本文详细解析了一个VB6编写的程序,通过PEID检测确认无壳。程序中包含一个加密的ACCESS数据库,通过字符串查找找到解密密码。在伪注册判断部分,分析了用户名长度检查和字符串比较的代码逻辑。最后,揭示了爆破点并给出了二进制修改建议,但出于保护原因,未透露程序名称和补丁。

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,程序为国软,出于保护,不公布名字与补丁。

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值