能力值:
( LV2,RANK:10 )
|
-
-
2 楼
有2个函数可以试断下 .__vbaVarTstEq 和 .__vbaVarCmpEq
|
能力值:
(RANK:260 )
|
-
-
3 楼
首先你应该知道, VB 的程序分为 P 码和 N 码, 如果不太明白可以去查相关资料,我这里不敢班门弄斧,因为我讲不太明白,呵呵
对于 N 码的程序,其实和其它程序一样进行调试就可以了,只不过是因为VB语言的关系,它的数据类型有点别扭,需要花时间习惯,而且它的函数的起始和结束有很多附加的工作,由于VB是弱类型语言,它的程序中会有大量的内存申请 释放和变量的复制,进入函数的局部变量的使用也与C很不一样,不过这些一般都不必太仔细,
至于算法,VB里进入运算很多都是用VB的运行时库进行,并不一定是ADD ,XOR之类的CPU指令,而可能是类似 call __vbaVarAdd 之类,
但没什么难的,习惯就好
特别的,调试N码的一个法宝SmartCheck,你必定会用得着,但得很有经验和耐心,因为它给出的信息太多了...
而对于P码的程序,由于程序本身不是CPU指令代码序列,而VB的VM 伪指令序列,
用常规的调试方法就不那么容易了,比如OD,IDA,因为它们对P-CODE的伪指令没有任何办法,而OD是动态调试,它虽然不能处理P-CODE,仍然可以调试,但它直接控制的不是应用程而是VB的VM的执行过程,虽然也可以费点劲绕个弯来调,终究会累死人的...
所以对于P-CODE的程序,应该使用VB P-CODE 的专用工具,静态的用VB Explorer,Exdec等,动态的可以用WKTVBDebugger
但在我调试中遇到一个问题,不知是我自己机器还是共性的问题,那就是WKTVBdebugger遇到多线程的程序时工作不太好..
关于VB我只能说这么多了,本人对VB的程序也只略通毛皮而已...
大家共同进步中...
|
能力值:
( LV9,RANK:250 )
|
-
-
4 楼
见到了 VB 的我第一时间就想逃,如果算法本来就麻烦的,用 VB 一编译,死了,把你看的眼花,好罗嗦的代码
|