请教高手,如何在vb程序中扩展功能,这个VB程序是native编译方式,比如给
一个按钮添加响应,运行另外一个程序,我的解决思路就是首先在加入这个
rtcShell运行库函数的输入节,接着在一个区块中加入了“test.exe”的
Uniode字符串数据,地址为0094F090,然后在按钮的消息响应中断之后,jmp到
自己的代码,然后调用rtcShell函数,运行我预定的程序。如果是C或者汇编可
以直接将rtcShell的程序路径参数push 0094F090,但是调用VB6.0运行库很麻
烦,我的方法是:
Reference To: MSVBVM60.__vbaVarDup, Ord:0000h
;pushad
mov esi, dword ptr [00401210]
mov ebx, 00000008
lea edx, dword ptr [ebp-7C]
lea ecx, dword ptr [ebp-3C]
* Possible StringData Ref from Code Obj ->"t e s t . e x e"
mov [ebp-74], 0094F090 ;数据地址
mov dword ptr [ebp-7C], ebx
call esi ;MSVBVM60.__vbaVarDup
lea edx, dword ptr [ebp-6C]
lea ecx, dword ptr [ebp-2C]
push eax
lea edx, dword ptr [ebp-3C]
/*
rtcShell的原型
Shell( _
ByVal Pathname As String, _
Optional ByVal Style As AppWinStyle
Optional ByVal Wait As Boolean = False, _
Optional ByVal Timeout As Integer = -1 _
*/
push 000003E8
push 00000000
push 00000001 ;AppWinStyle.NormalFocus
push edx ;程序文件路径
* Reference To: MSVBVM60.rtcShell, Ord:0253h
Call dword ptr [0094F038]
;popad
jmp 0008D86A1
/**********************************************
运行后老是说文件找不到,我用rtcMsgBox显示出来的路径的确是空,
所以我的问题就是,在VB的反汇编代码中如果一个运行库函数调用一个字符串
该怎么办呢?为什么访问的到地址总是空?如何寻址?
上述方法是我看别人VB程序的反汇编代码得出的,但是又不对,请高手指教!
跪求!!!!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)