关于VB中数据的存储格式和寻址方式.doc
《关于VB中数据的存储格式和寻址方式.doc》由会员分享,可在线阅读,更多相关《关于VB中数据的存储格式和寻址方式.doc(8页珍藏版)》请在咨信网上搜索。
1、关于VB中数据的存储格式和寻址方式前言:大家最喜欢破什么语言写的软件?相信没人会回答VB,好像一种语言越是“高级”,越是“傻瓜”,编译系统自动加入的代码就越多,会把源程序的意图隐藏起来,破解的难度反而越大(我指的是完全破解出算法,写出注册机)。用ASM直接写的程序,反汇编的结果和源程序相似得可怕,用VC写的也比较容易读懂,用DELPHI写的就有一定难度了,不过毕竟还有一个好用的DEDE,VB写的呢?冗长的代码,复杂的存储方式,铺天盖地的DLL,足以让人崩溃。以前大概用VB的还都是些菜鸟级的程序员,加的保护也非常简单,破解VB程序还不算太困难,到了现在,好像VB已经成了一种把代码复杂化的加壳软件
2、,纷纷被各路编程好手采用,把高难度的算法用超复杂的代码保护起来,呜呼哀哉!最近连遇几个软件,全是AsProtect+VB(好像还是P-CODE),令人郁闷的组合,几天破解未果,想从头把关于VB的一些东东仔细研究一下,于是就有了这篇文章。我想高手们大概早就研究过了,也许是不屑写出来而己,还请各位多多指点。先看看VB常用的数据类型有哪些:代码:Byte1个字节0到255Boolean2个字节True或FalseInteger2个字节-32,768到32,767Long(长整型)4个字节-2,147,483,648到2,147,483,647Single(单精度浮点型)4个字节负数时从-3.4028
3、23E38到-1.401298E-45正数时从1.401298E-45到3.402823E38Double(双精度浮点型)8个字节负数时从-1.79769313486232E308到-4.94065645841247E-324正数时从4.94065645841247E-324到1.79769313486232E308Currency(变比整型)8个字节从-922,337,203,685,477.5808到922,337,203,685,477.5807Decimal14个字节没有小数点时为+/-79,228,162,514,264,337,593,543,950,335而小数点右边有28位数时
4、为+/-7.9228162514264337593543950335最小的非零值为+/-0.0000000000000000000000000001Date8个字节100年1月1日到9999年12月31日Object4个字节任何Object引用String(变长)10字节+串长度0到大约20亿String(定长)字符串长度1到大约65,400Variant(数字)16个字节任何数字值,最大可达Double的范围Variant(字符)22个字节+串长度与变长String有相同的范围像Integer,Long,Single,Double等“直接”的类型比较容易,和其他的语言一样直接看内存就可以了。
5、比较特殊的是Currency,他的值要除10000才是真正的值,不过这个用的不多。最麻烦的是Variant类型,因为VB是设计成一种傻瓜式的语言,对数据类型没有严格的规定,甚至可以不用声明变量而直接使用,所以在反汇编后的VB程序中,关于类型转换的语句占了很大一部分,只要一涉及数据计算,总会看到一堆数来回转换,其中许多函数的参数,还有未经声明直接使用的变量等,都是Variant类型。这种类型在VB中到处要用到,十分重要,但又常常使人困惑。它在内存中的寻址方式很特殊,为此VB还专门为其提供了一组函数(多带有Var字样),这些函数其实大多放在Oleaut32.dll中,但往往再由msvbvm60.d
6、ll来调用,比如_vbaVarTstEq,_vbaVarTstNe,_vbaVarMove,_vbaVarAdd,_vbaVarSub,VarBstrCmp等等。Variant变量的寻址方式在看雪的书中略有提及但不详细,我在这里补充一些:首先我们必须明白,那些未声明类型的Variant变量并不是真的没有数据类型,只不过是VB编译系统将这些变量的“类型信息”也包含在变量的数据中了,等到程序运行时根据对该变量所进行的操作来灵活地决定变量属于什么类型,比如有这么几句代码:DimrobaAsVariantroba=4321Text1.Text=roba程序声明了一个Variant变量roba(或者干脆
7、什么也没声明)又给它赋了一个值4321,那么编译器就知道这时候roba是一个Integer型变量,可是下面呢又把它赋值给了Text1.Text(也就是在一个文本框里把4321显示出来)这时候编译器马上又插入语句使roba变为字符串型变量。(真是难为M$那帮人了)那么这种变量究竟是怎样存储的呢?看下面的例子:代码:PrivateSubCommand1_Click()Dima,bAsVarianta=RoBab=Text1.TextIfa=bThenMsgBoxWelldone!,vbOKOnly,CrackEndIfEndSub用W32DASM反汇编,查找字串,很容易找到下面:代码:00401D
8、498D45DCleaeax,dwordptrebp-24:00401D4C8D4DCCleaecx,dwordptrebp-34:00401D4F50pusheax;变量a:00401D5051pushecx;变量b*ReferenceTo:MSVBVM60._vbaVarTstEq,Ord:0000h|:00401D51FF1540104000Calldwordptr00401040;比较:00401D576685C0testax,ax:00401D5A0F8484000000je00401DE4;不同就跳走了*ReferenceTo:MSVBVM60._vbaVarDup,Ord:000
9、0h|:00401D608B3D7C104000movedi,dwordptr0040107C:00401D66B904000280movecx,80020004:00401D6B894D8Cmovdwordptrebp-74,ecx:00401D6EB80A000000moveax,0000000A:00401D73894D9Cmovdwordptrebp-64,ecx:00401D768D9564FFFFFFleaedx,dwordptrebp+FFFFFF64:00401D7C8D4DA4leaecx,dwordptrebp-5C:00401D7F894584movdwordptrebp
10、-7C,eax:00401D82894594movdwordptrebp-6C,eax*PossibleStringDataReffromCodeObj-CCrack|:00401D85C7856CFFFFFFFC174000movdwordptrebp+FFFFFF6C,004017FC:00401D8F899D64FFFFFFmovdwordptrebp+FFFFFF64,ebx:00401D95FFD7calledi:00401D978D9574FFFFFFleaedx,dwordptrebp+FFFFFF74:00401D9D8D4DB4leaecx,dwordptrebp-4C*Po
11、ssibleStringDataReffromCodeObj-WWelldone!|:00401DA0C7857CFFFFFFE0174000movdwordptrebp+FFFFFF7C,004017E0:00401DAA899D74FFFFFFmovdwordptrebp+FFFFFF74,ebx:00401DB0FFD7calledi:00401DB28D5584leaedx,dwordptrebp-7C:00401DB58D4594leaeax,dwordptrebp-6C:00401DB852pushedx:00401DB98D4DA4leaecx,dwordptrebp-5C:00
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 VB 数据 存储 格式 寻址 方式
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。