首页
社区
课程
招聘
关于VB中数据的存储格式和寻址方式 菜鸟献丑了~~~
发表于: 2004-7-1 11:16 16192

关于VB中数据的存储格式和寻址方式 菜鸟献丑了~~~

RoBa 活跃值
16
2004-7-1 11:16
16192

关于VB中数据的存储格式和寻址方式

前言:
大家最喜欢破什么语言写的软件?相信没人会回答VB,好像一种语言越是“高级”,越是“傻瓜”,编译系统自动加入的代码就越多,会把源程序的意图隐藏起来,破解的难度反而越大(我指的是完全破解出算法,写出注册机)。用ASM直接写的程序,反汇编的结果和源程序相似得可怕,用VC写的也比较容易读懂,用DELPHI写的就有一定难度了,不过毕竟还有一个好用的DEDE,VB写的呢?冗长的代码,复杂的存储方式,铺天盖地的DLL,足以让人崩溃。以前大概用VB的还都是些菜鸟级的程序员,加的保护也非常简单,破解VB程序还不算太困难,到了现在,好像VB已经成了一种把代码复杂化的加壳软件,纷纷被各路编程好手采用,把高难度的算法用超复杂的代码保护起来,呜呼哀哉!最近连遇几个软件,全是AsProtect+VB(好像还是P-CODE),令人郁闷的组合,几天破解未果,想从头把关于VB的一些东东仔细研究一下,于是就有了这篇文章。我想高手们大概早就研究过了,也许是不屑写出来而己,还请各位多多指点。

先看看VB常用的数据类型有哪些:

Byte		1个字节		0到255	
Boolean		2个字节		True或False
Integer		2个字节		-32,768到32,767
Long(长整型)	4个字节		-2,147,483,648到2,147,483,647
Single(单精度浮点型)	4个字节		负数时从-3.402823E38到-1.401298E-45
					正数时从1.401298E-45到3.402823E38
Double(双精度浮点型)	8个字节		负数时从-1.79769313486232E308到-4.94065645841247E-324
					正数时从4.94065645841247E-324到1.79769313486232E308
Currency(变比整型)	8个字节		从-922,337,203,685,477.5808到922,337,203,685,477.5807
Decimal		14个字节	没有小数点时为+/-79,228,162,514,264,337,593,543,950,335
					而小数点右边有28位数时为+/-7.9228162514264337593543950335
					最小的非零值为+/-0.0000000000000000000000000001
Date		8个字节		100年1月1日到9999年12月31日
Object		4个字节		任何Object引用
String(变长)	10字节+串长度	0到大约20亿
String(定长)	字符串长度1到大约65,400
Variant(数字)	16个字节	任何数字值,最大可达Double的范围
Variant(字符)	22个字节+串长度	与变长String有相同的范围
Dim roba As Variant
roba=4321
Text1.Text=roba
Private Sub Command1_Click()
Dim a, b As Variant
a = "RoBa"
b = Text1.Text
If a = b Then
MsgBox "Well done!", vbOKOnly, "Crack"
End If
End Sub

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 8
支持
分享
最新回复 (24)
雪    币: 6051
活跃值: (1441)
能力值: ( LV15,RANK:1473 )
在线值:
发帖
回帖
粉丝
2
好!!
希望多研究一点!!!
2004-7-1 12:40
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
3
好~~~  

我对 vb 的破解没有甚么信心…
2004-7-1 12:58
0
雪    币: 690
活跃值: (1841)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
4
不错
2004-7-1 13:16
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
5
辛苦
2004-7-1 13:44
0
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
6
好文!
2004-7-1 15:20
0
雪    币: 253
活跃值: (27)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
好文:)
2004-7-1 16:42
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
8
我还有个问题,那个Decimal类型是怎么回事?我的VB6里面不让用dim来定义,好像要用new什么的,精VB的高人指点一下。
2004-7-2 16:50
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
跟踪VB的程序最好用od,并且随时注意堆栈。
2004-7-2 18:22
0
雪    币: 21
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
Byte (0到255)和Decimal(+/-0到2的96次方-1)
2004-7-2 19:47
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
11
动静兼顾・
2004-7-2 20:04
0
雪    币: 263
活跃值: (340)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
12
学习.
2004-7-2 20:40
0
雪    币: 166
活跃值: (112)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
多谢RoBa文章对此的研究。我因此也看了一下。
用oleview查看msvbvm60.dll,可以看到这样定义
typedef [uuid(ED822010-6D7F-11CF-B949-00AA004455EA), helpcontext(0x0010fe25)]
enum {
    vbEmpty                  = 0,
    vbNull                   = 1,
    vbInteger                = 2,
    vbLong                   = 3,
    vbSingle                 = 4,
    vbDouble                 = 5,
    vbCurrency               = 6,
    vbDate                   = 7,
    vbString                 = 8,
    vbObject                 = 9,
    vbError                  = 10,
    vbBoolean                = 11,
    vbVariant                = 12,
    vbDataObject             = 13,
    vbDecimal                = 14,
    vbByte                   = 17,
    vbUserDefinedType        = 36,
    vbArray                  = 8192
} VbVarType;

上述这些应该是vb数据类型的十进制索引值

Variant变量的第一个字节表示数据的实际类型,后面七个字节不知有什么用,在第九个字节处才是数据的值或数据的地址。

关于“中间的7个字节”,我这样认为
+00          数据类型索引值
  01          00或80
                  
:00401D1F C78574FFFFFF02800000 mov dword ptr [ebp FFFFFF74], 00008002 ;类型值
注意这句,80由此赋值 03 "00" 04 "00", 03、04位置应该都是00,这或许是编译器为了数据对齐而自动生成的 05 -- 08 这里我想是无关数据
2004-7-2 21:34
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
14
老大出手,果然不凡 又学了一招oleView
那个80有时候去掉还不行,真麻烦。
2004-7-2 21:48
0
雪    币: 166
活跃值: (112)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
关于数据“80”,跟踪到一点代码,对80进行一些校验
以下来自msvbvm60.dll 6.0.8964版本
ENGINE:6610ABCE                 public __vbaVarTstEq
ENGINE:6610ABCE __vbaVarTstEq:
ENGINE:6610ABCE                 push    dword ptr [esp+8]
ENGINE:6610ABD2                 push    dword ptr [esp+8]
ENGINE:6610ABD6                 push    0
ENGINE:6610ABD8                 call    sub_66100017    // enter

ENGINE:66100017                 push    ebp
ENGINE:66100018                 mov     ebp, esp
ENGINE:6610001A                 sub     esp, 38h
ENGINE:6610001D                 mov     edx, [ebp+arg_8]
ENGINE:66100020                 mov     ecx, [ebp+arg_4]
ENGINE:66100023                 push    ebx
ENGINE:66100024                 push    esi
ENGINE:66100025                 mov     si, [ecx]
ENGINE:66100028                 push    edi
ENGINE:66100029                 mov     di, [edx]
ENGINE:6610002C                 mov     eax, 7FFFh
ENGINE:66100031                 and     edi, eax
ENGINE:66100033                 and     esi, eax    // esi=8002H, eax=7FFFH
ENGINE:66100035                 cmp     di, 9
ENGINE:66100039                 jz      loc_66107812
ENGINE:6610003F                 cmp     si, 9
ENGINE:66100043                 jz      loc_66107812
2004-7-2 22:23
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
好文好文 顶一下
2004-8-25 13:50
0
雪    币: 98745
活跃值: (201039)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
17
good post!
2004-8-25 16:54
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
支持,写的好!
2004-8-25 20:48
0
雪    币: 251
活跃值: (260)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
19
good guy
2004-8-25 23:46
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
精彩!!顶!
2004-10-4 18:32
0
雪    币: 615
活跃值: (1267)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
看了之后真是受易非浅
2004-10-5 18:17
0
雪    币: 410
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
看到关于vb的破解,我的机器正好中了一个毒,是vb的,不停的写我的注册表,名字是c:\windows\csrss.exe,瑞星杀不掉,nnd,烦人,不知道哪位大哥有兴趣看一下啊,只有17k。
可是我不知道怎么上传附件
2005-1-9 16:40
0
雪    币: 257
活跃值: (369)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
23
csrss.exe是进程文件。

是客户端服务子系统,用以控制Windows图形相关子系统,是系统进程。另外蠕虫会以csrss.exe为文件名拷贝自己的副本文件到Windows目录下
2005-1-9 18:55
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
学习中。。。
2005-1-12 20:59
0
雪    币: 1573
活跃值: (198)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
25
Mark一下,谢谢分享!
2017-7-19 19:03
0
游客
登录 | 注册 方可回帖
返回
//