(转)
栿颿 浅谈VB6逆向工程(4)
使耿 MengLong
旿闿 2004-12-27,12:50
铿掿 http://bbs.pediy.com/showthread.php?t=8992
MengLong[DFCG]
出处_a href="http://www.chinadfcg.com/post.php?action=newthread&fid=22" target="_blank">
http://www.chinadfcg.com/post.php?ac...wthread&fid=22 4. VB内部函数
1) 自定义函数的调用
这里我们看看和VB的内部函数有关的一些内容?br> 老规矩,先看一段代码:
myadd(ByVal a As Variant, b As Variant)
myadd = a + b
End
Sub myprint(ByVal a As Variant)
Print a
End Sub
Private Sub Command1_Click()
Dim a, b, c
a = 10
b = 20
c = myadd(a, b)
myprint c
End Sub
这段代码里包含了自定义的过程,函数及函数的两种参数传递方式。下面的反汇编代砿br> 是过程Command1_Click()的。自定义的函数和过程的反汇编代码和这相仿,可以字节反汿br> 编对比看一下?br> 反汇编代码如下,默认方式(速度优化)编译的,这次给出的是完整的汇编代码_br>
00401C50 PUSH EBP
00401C51 MOV EBP,ESP
00401C53 SUB ESP,0C
00401C56 PUSH <JMP.&MSVBVM60.__vbaExceptHandler>
00401C5B MOV EAX,DWORD PTR FS:[0]
00401C61 PUSH EAX
00401C62 MOV DWORD PTR FS:[0],ESP //安装局部线程异帿br>
00401C69 SUB ESP,5C