一、SOFTICE 配制 虽然大部分 VB 程序仍调用 Win32 API 函数,但如想在 VB dll 运行库中设断的话,你就必须把 VB dll 运行库加入 SOFTICE 配制里去。具体你可参考第五课中的《 SOFTICE 安装及使用》。 下例是在 win95/98 下你把相关的 VB DLL 运行库加入 winice.dat 配制文件里。 ( 部分 ) ; 注意分号后是描述语言,不被执行。每次只装载需要的一种 VB dll ,更好不要同时装载两个以上,把要装载那种 VB dll 那一行的分号去掉,重新启动即可。另外,判断软件是何种 VB dll 有几种 *** ,最直接一种用 WDa *** 89 查看,还有一种 *** 是用十六进制工具打开程序观察。或用 SOFTICE 跟进去(用 bpx hmemcpy) ,稍转一圈,你观察一下调试窗口领空处会出现何种 VB DLL 即可。 ; EXP=c:\windows\system\msvbvm60.dll ; Visual Basic 6 ; EXP=c:\windows\system\msvbvm50.dll ; Visual Basic 5 ; EXP=c:\windows\system\vb40032.dll ; Visual Basic 4(32-bit) ; EXP=c:\windows\system\vb40016.dll ;Visual Basic 4(16-bit) 较少见 ; EXP=c:\windows\system\vbrun300.dll ; Visual Basic 3 这样配制好后,重新启动,就可设 VB 运行库中各函数的断点了。 -------------------------------------------------------------------------------- 二、VB dll 常用函数 1 、字符处理函数 MultiByteToWideChar, rtcR8ValFromBstr, WideCharToMultiByte, __vbaStrCmp, __vbaStrComp, __vbaStrCopy, __vbaStrMove, __vbaVarTstNe . 注意:这些函数前的下划线 __ 是由两根短线 _ 组成的,不要弄错。 如果你是 crack VB6 程序,你应在断点前增加 msvbvm60! 。 如: bpx msvbvm60!__vbastrcomp 一些常用字符串函数: Val() 转换字符串为数字 Rtrim$() 去除字符串左边空格 Str$() 转换数字为字符串 Trim$() 去除字符串两边空格 Left$() 按要求从左取字符。例如: Left$(Theodolite, 4) = "Theo" Asc() 转换字符为 ANSI 编码 . 例如: Asc("A") = 65 注:65是ASCII码的十进制 Ltrim$() 去除字符串左边空格例如: Ltrim$Content$nbsp;(" Hello ") = "Hello " Chr$() 转换 ANSI 编码为字符 . 例如 Chr$(65) = "A" Right$() 按要求从右取字符 几个常用函数简介: 1、 __vbavartstne 如是在VB5中CALL MSVBVM50!___vbavartstne 进去后在0F04E351你将看到: push dword ptr [ebp+0c] ;Push address *真* serial 的地址 push dword ptr [ebp+10] ;Push address 你输入的serial地址 下命令:d ebp+0c 你将在数据窗口看到 4字节地址倒序排列,你再次D 地址(己纠正顺序的), 就可看到序列号了。 2、 __vbaR8Str 在 VB5中是如下情况: Push ebp-20 Call MSVBUM50.__vbaR8Str ;转换 string 到 Integer/Real fcomp qword ptr [00401028] ;数据比较 在这行fcomp qword ptr [00401028] Type: DL 00401028 将看到*real* serial #. DL 是显示 Long/real 型,SOFTICE默认时是DB状态。 3、 __vbastrcmp 例: :005BDC32 CALL [MSVBVM50!__VbaFreeVar] :005BDC38 MOV ESI,[EBP+08] :005BDC3B PUSH ESI :005BDC3E CALL [ECX+00000790] <-- 值返回到 EDX. :005BDC44 MOV EDX,[ESI+4C] <-- 输入的号码,但倒转 :005BDC47 MOV EAX,[005E0078] <-- 正确号码 :005BDC4C PUSH EDX :005BDC4D PUSH EAX <-- Push参数给 __vbaStrCmp. :005BDC4E CALL [MSVBVM50!__vbaStrCmp] <-- Visual Basic 字符串比较 :005BDC54 TEST EAX,EAX <-- 测试比较结果 :005BDC56 JNZ 005BDC64 <-- 不相等跳走 2 、警告窗口函数 rtcBeep, rtcGetPresentDate (time API), rtcMsgBox
当你外出工作时,你不可避免地需要住在酒店里。然而,我们都知道,酒店里混杂着鱼和龙,这要求每个人都更加注意确保旅行的安全。 编辑总结了酒店住宿时应注意的几点,希望能对你有所帮助。 一请把门关上,把门窗锁...
在脚本确认的时分,找一位真人电话出售进行脚本资料的录音,整个打扰电话脚本才算是完全预备完结。 录音的这儿,要尽或许的口语化,以混杂机器人与真人之间的边界。 export WORKDIR=$(pwd)...
2020年4月2日,英雄联盟在今天更新了最新的10.7的新版本,S3赛季的最新装备合成图,下面就来为大家详细的介绍一下。 以上就是装备合成图。(由于图片过大,PC端玩家可以右键鼠标点击“在新标签...
二、具有专题的效果:每个标签都是由各自相关的内容聚合而成的相关性很强一个个标签就相当于一个个小专题。大家都知道专题页的排名比一般的页面要好,所以如果能够在标签页的设计上多花点心思效果一定不错。比如...
怎样免费领取支付宝收钱码?现在普遍实体商家都开通了网上支付,一般都会有微信支付二维码,相比较支付宝商家收钱码比较少,支付宝可以免费提供商家收钱码,那具体怎样免费领取支付宝收钱码呢。 怎样免费领取支付...
孩子发烧发热了一些家长会选择给孩子在头上敷毛巾,毛巾用热的还是冷的是有讲究的。不能随便乱给孩子敷。孩子发烧身体变化是不同的。那么孩子发烧怎么敷毛巾是正确的呢下面友谊长存小编就来和大家说一说。 大家要...