首页
社区
课程
招聘
[求助]破解vb程序真难啊!!
发表于: 2004-12-3 21:07 8686

[求助]破解vb程序真难啊!!

2004-12-3 21:07
8686
在破解c语言学习系统的时候,我搞了五个月也找不到头绪,用ds 2.7调试的时候发现程序跳转到cpopmenu中打转转,就出不来了,非常奇怪.
不知那位大虾对破截vb nativecode程序有心得,请指点一二!!

请小楼帮帮忙!!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (14)
雪    币: 221
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
软件为c语言学习系统3.2,它比3.0难破解多了,
2004-12-3 21:56
0
雪    币: 547
活跃值: (2200)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
知难而进佩服!头痛我就暂时不搞先学习
2004-12-4 00:00
0
雪    币: 221
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
用od1.1跟踪时提示异常代码,无法跟踪!!
我用ds 2.7 的vbastrcmp vbavartsteq下断,结果都在cpopmenu里转,(在c语言学习系统中有cpopmenu.ocx);
然后用sysallocstringlen下断,在4b7b06处发现我输入的用户名,在4b7b70处发现输入的序列号,但再往下跟踪又跑到cpopmenu里去了
!!
请高手给予指点!!!!
2004-12-4 08:41
0
雪    币: 221
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
请kanxue 于百忙之中给点提示!!!
2004-12-4 09:30
0
雪    币: 279
活跃值: (435)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
6
网上下载的试用版不用看了.没有验证过程的.如果你有作者的正式版,发上一个来让大家看看.
2004-12-4 16:18
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
历害,历害.我还听不懂你说的是什么!@唉
2004-12-4 16:24
0
雪    币: 342
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很好的学习材料 顶上去!希望高手破解了!!
要破文,要注册机!
呵呵!
2004-12-25 13:37
0
雪    币: 400
活跃值: (239)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
9
我有自己爆破的试用版。我在网吧,下次上网传上来!

我记的是: 程序起动的时候有一个对标志变量比较,修该它可完美
破解。
2004-12-26 19:46
0
雪    币: 400
活跃值: (239)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
10
作者:aqtata 标题:C语言学习系统 3.2  
  

【破文作者】:aqtata
【作者主页】:http://poptown.gamewan.com
【软件名称】:C语言学习系统 3.2
【软件限制】:功能限制
【保护方式】:无
【破解工具】:Ollydbg + C32Asm + vbde
【编程语言】:VB6
【下载地址】:www.skycn.com 或者 www.baidu.com

【软件简介】:C语言学习软件
―――――――――――――――――――――――――――――――――
【破解过程】:

这个和VB学习系统破解方法是差不多是一样的

首先运行程序,看到一个注册画面,我同意按钮经过延迟1-2秒好才能点击进入程序界面

先解除NAG画面

运行vbde载入主程序,看到它得到类似DEDE分析DEPHI语言的窗体名和各种事件和具体偏移地址

点Forms按钮,查看frmSplit窗口,很容易知道它是启动画面

仔细一看frmSplit窗口里面的4个事件,找需要看2个关键的,另外2个一个是退出,一个是帮助,无须关心

CmdAgree        "我同意"按钮,入口地址:4B2300
Timer1_timer     控制按钮1~2秒后可用,入口地址:4B28A0

OD加载,来到4B2300

004B2300   > 55             PUSH EBP     ====>跳转来自405038
004B2301   . 8BEC           MOV EBP,ESP
004B2303   . 83EC 0C        SUB ESP,0C

再看看timer事件入口

004B28A0   > 55             PUSH EBP    ====>跳转来自40506C
004B28A1   . 8BEC           MOV EBP,ESP
004B28A3   . 83EC 0C        SUB ESP,0C

找到跳转

00405030   . 816C24 04 4700>SUB DWORD PTR SS:[ESP+4],47
00405038   . E9 C3D20A00    JMP 123.004B2300       ====>跳向"我同意"
0040503D   . 816C24 04 5F00>SUB DWORD PTR SS:[ESP+4],5F
00405045   . E9 06D40A00    JMP 123.004B2450
0040504A   . 816C24 04 3300>SUB DWORD PTR SS:[ESP+4],33
00405052   . E9 C9D40A00    JMP 123.004B2520
00405057   . 816C24 04 4300>SUB DWORD PTR SS:[ESP+4],43
0040505F     E9 8CD60A00    JMP 123.004B26F0
00405064   . 816C24 04 4F00>SUB DWORD PTR SS:[ESP+4],4F
0040506C   . E9 2FD80A00    JMP 123.004B28A0       ====>跳向Timer事件

我们直接把跳向时间事件的地方改成跳到"我同意"

将 JMP 004B28A0 改为 jmp 004B2300 保存修改

运行试试,直接进入主窗体

然后要隐藏NAG,不让在屏幕中出现,眼不见为净

点VBDE的From按钮,看frmRegInfo的属性值

'offset: 00016361    ====>窗体入口地址
VERSION 5.00
Begin VB.Form frmRegInfo
   Caption         =   "注册"
   BorderStyle     =   3             ====>窗口样式,改为0,窗口就没有边框
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   5880        ====>窗体的宽度,改为0
   ClientHeight    =   4575
   ShowInTaskbar   =   0   'False
   StartUpsituation =   1  'CenterOwner

怎么改?随便用16进制编辑工具,我这里用UE,习惯了

窗体入口地址是16361,UE里按ctrl+g输入0x16361h来到这,如图

OK了,运行程序后1~2秒显示主窗口

接着破解了,使用"函数说明"的例题导出时会提示"只有注册用户才可以看。。。。。"

c32asm反汇编,因为是VB程序,当然把"使用Unicode分析字符串"打上勾勾了

居然找到23处之多

::0045F849::  C745 94 7C8E4000         MOV DWORD PTR [EBP-6C],408E7C
::00463AFB::  C785 D4FEFFFF 7C8E4000   MOV DWORD PTR [EBP-12C],408E7C
::00463DF5::  C745 A4 7C8E4000         MOV DWORD PTR [EBP-5C],408E7C
::00465598::  C745 88 7C8E4000         MOV DWORD PTR [EBP-78],408E7C
::0046B74D::  C745 94 7C8E4000         MOV DWORD PTR [EBP-6C],408E7C
::0046F1CB::  C785 D4FEFFFF 7C8E4000   MOV DWORD PTR [EBP-12C],408E7C
::0046FA3D::  C745 8C 7C8E4000         MOV DWORD PTR [EBP-74],408E7C
::004711F1::  C785 D4FEFFFF 7C8E4000   MOV DWORD PTR [EBP-12C],408E7C
::00474724::  C745 94 7C8E4000         MOV DWORD PTR [EBP-6C],408E7C
::00475047::  C745 98 7C8E4000         MOV DWORD PTR [EBP-68],408E7C
::00477146::  C785 60FFFFFF 7C8E4000   MOV DWORD PTR [EBP-A0],408E7C
::0047889B::  C785 D4FEFFFF 7C8E4000   MOV DWORD PTR [EBP-12C],408E7C
::00478DF5::  C745 A4 7C8E4000         MOV DWORD PTR [EBP-5C],408E7C
::00479D38::  C745 88 7C8E4000         MOV DWORD PTR [EBP-78],408E7C
::0047DFFD::  C745 94 7C8E4000         MOV DWORD PTR [EBP-6C],408E7C
::00480DD1::  C785 D4FEFFFF 7C8E4000   MOV DWORD PTR [EBP-12C],408E7C
::0048EEDB::  C785 D4FEFFFF 7C8E4000   MOV DWORD PTR [EBP-12C],408E7C
::0048F229::  C745 94 7C8E4000         MOV DWORD PTR [EBP-6C],408E7C
::0048F8ED::  C745 8C 7C8E4000         MOV DWORD PTR [EBP-74],408E7C
::00494606::  C785 60FFFFFF 7C8E4000   MOV DWORD PTR [EBP-A0],408E7C
::004A4DDD::  C745 94 7C8E4000         MOV DWORD PTR [EBP-6C],408E7C
::004B35E3::  C745 9C 7C8E4000         MOV DWORD PTR [EBP-64],408E7C
::004B3813::  C745 9C 7C8E4000         MOV DWORD PTR [EBP-64],408E7C

先来0045F849

0045F808   . EB 7E          JMP SHORT 123.0045F888
0045F80A   > 8B35 A8114000  MOV ESI,DWORD PTR DS:[<&MSVBVM60.__vbaVa>;  MSVBVM60.__vbaVarDup   ====>跳转来自45F6FD
0045F810   . B9 04000280    MOV ECX,80020004
0045F815   . 894D A4        MOV DWORD PTR SS:[EBP-5C],ECX
0045F818   . B8 0A000000    MOV EAX,0A
0045F81D   . 894D B4        MOV DWORD PTR SS:[EBP-4C],ECX
0045F820   . BF 08000000    MOV EDI,8
0045F825   . 8D95 7CFFFFFF  LEA EDX,DWORD PTR SS:[EBP-84]
0045F82B   . 8D4D BC        LEA ECX,DWORD PTR SS:[EBP-44]
0045F82E   . 8945 9C        MOV DWORD PTR SS:[EBP-64],EAX
0045F831   . 8945 AC        MOV DWORD PTR SS:[EBP-54],EAX
0045F834   . C745 84 E08E40>MOV DWORD PTR SS:[EBP-7C],123.00408EE0
0045F83B   . 89BD 7CFFFFFF  MOV DWORD PTR SS:[EBP-84],EDI
0045F841   . FFD6           CALL ESI                                 ;  <&MSVBVM60.__vbaVarDup>
0045F843   . 8D55 8C        LEA EDX,DWORD PTR SS:[EBP-74]
0045F846   . 8D4D CC        LEA ECX,DWORD PTR SS:[EBP-34]
0045F849   . C745 94 7C8E40>MOV DWORD PTR SS:[EBP-6C],123.00408E7C     ====>这

所以来到45F6FD

0045F6F5   . 66:833D 24A04B>CMP WORD PTR DS:[4BA024],0FFFF
0045F6FD   . 0F85 07010000  JNZ 123.0045F80A     ====>跳走出错

一个个的改跳转吗?太麻烦了,23处啊,再分析几个跳转,仔细看看发现一个共同的规律

每个关键的地方都是这种形式

00******   . 66:833D 24A04B>CMP WORD PTR DS:[4BA024],0FFFF

………………

00******   . 0F85 07010000  JNZ 123.00******

也就是说4BA024这的值影响是否成功,这里的值必须是0FFFF

OD重新加载,在4BA024设置内存写入断点,f9运行中断第1次

此时并不在程序领空里,继续f9运行中断第2次

004AB11E     66:C705 24A04B>MOV WORD PTR DS:[4BA024],0    ====>断在这里

果然送0了,把0改成0FFFF即可!

―――――――――――――――――――――――――――――――――
【暴 破】:

解除NAG见文章开头

破解这样改

004AB11E     66:C705 24A04B000000>MOV WORD PTR DS:[4BA024],0
改成
004AB11E     66:C705 24A04B00FFFF>MOV WORD PTR DS:[4BA024],0FFFF

2004-12-29 19:18
0
雪    币: 400
活跃值: (239)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
11
―――――――――――――――――――――――――――――――――

附件:CStudy.rar
2004-12-29 19:20
0
雪    币: 221
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gcf
12
感谢marswu,学到不少东西啊:)
2005-1-1 05:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
对付vb用smartcheck容易下手
2005-1-1 10:19
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
谢谢,学习了!
2005-1-31 06:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
最初由 marswu 发布
作者:aqtata 标题:C语言学习系统 3.2



【破文作者】:aqtata
........


谢谢老大的好文章,只是我的c32asm怎么反汇编这个软件后,字串怎么全是乱码呢?一个中文字都没有,且我的c32asm也没有你说的“c32asm反汇编,把"使用Unicode分析字符串"打上勾勾了",可以把你的c32asm分享一下吗?谢谢了哦。
2005-1-31 14:00
0
游客
登录 | 注册 方可回帖
返回
//