'嘿,够简单吧!下面是动态调用MessageBoxA的源代码,上面的步骤被封装到RunDll32函数中,可放到模块(CallAPIbyName.bas)中:
Dim s1() As Byte
Dim s2() As Byte
Dim ret As Long
Dim hProc As Long
Dim hModule As Long
Sub t2()
Const hWnd = 0
s1 = StrConv("Hello~World", vbFromUnicode)
s2 = StrConv("VBNote", vbFromUnicode)
ret = RunDll32("user32", "MessageBoxA", hWnd, VarPtr(s1(0)), VarPtr(s2(0)), 0 &)
End Sub
Public Function RunDll32(LibFileName As String, ProcName As String, ParamArray Params()) As Long
ReDim m_OpCode(400 + 6 * UBound(Params)) '保留用来写m_OpCode
'读取API库
hModule = LoadLibrary(ByVal LibFileName)
If hModule = 0 Then
MsgBox "Library读取失败!"
Exit Function
End If
'取得函数地址
hProc = GetProcAddress(hModule, ByVal ProcName)
If hProc = 0 Then
MsgBox "函数读取失败!", vbCritical
FreeLibrary hModule
Exit Function
End If
'执行Assembly Code部分
RunDll32 = CallWindowProc(GetCodeStart(hProc, Params), 0, 1, 2, 3)
FreeLibrary hModule '释放空间
End Function
分享到:
相关推荐
VB6.0 动态调用API函数实现相碰操作,比如执行GetPixel、执行OpenProcess、执行MessageBoxA、执行Beep等操作。
很简单的例子,主要测试传入多参并且带返回值。@taizhong。Tags:置入代码。
很简单的例子,主要测试传入多参并且带返回值
很简单的例子,主要测试传入多参并且带返回值
近在眼前-动态调用DLL(两个不同的函数)例程,动态调用MessageBoxA函数,动态调用SendMessageA函数。
python3 messageboxa MessageBoxA.py
本程序可以控制特定函数的运行和返回值等,可以用来做防杀进程等。 本程序的优点: 1. 同时支持g++和Visual Studio 2010以上版本; 2. 同时支持x86操作系统和x64操作系统; 3. 注释非常详细,几乎每一句都有。
第一个汇编程序-Hello World 调用MessageBoxA弹出对话框
DELPHI HOOK 钩子 通过调用API 通过MessageBoxA,MessageBoxW,MessageBoxW,OpenProcess 函数的截取。
CHttpClient HttpRequest; string ret=""; ... ofstream OutFile("C:\\11111111111111.txt"); //利用构造函数创建txt文本,并且打开该文本 ... ::MessageBoxA(NULL,"JSON数据 记事本写入成功" ,"提示",MB_OK);
往下看几行,把MessageBoxA的4个参数都入栈了以后,再下两行就是MessageBoxA函数的调用处了,在:10006192FF150c040510,这里就是调用MessageBoxA的地方.好的,马上用最简单的办法,把这里的入栈的4个参数都用nop给替换掉...
c#调用外部实例vs2008 //[DllImport("user32.dll", EntryPoint = "MessageBoxA")] //static extern int MsgBox(int hWnd, string msg, string caption, int type); //[DllImport("kernel32.dll", EntryPoint = ...
此实用工具显示所有导出的函数列表和他们指定的DLL文件的虚拟内存地址。您可以轻松地复制所需函数的内存...被称为盒功能,您的调试要打破在该函数入口点,然后你可以看看调用堆栈,进入代码,发起了这一API调用落后。
本程序可以控制特定函数的运行和返回值等,可以用来做防杀进程等。 本程序的优点: 1. 同时支持g++和Visual Studio 2010以上版本; 2. 同时支持x86操作系统和x64操作系统; 3. 注释非常详细,几乎每一句都有;... 4....
带参数的函数调用的汇编代码是什么样子呢,前面也已经说了,类似与调用MessageBoxA时的代码: PUSH 参数地址 CALL 函数入口地址(这里为一个偏移地址) 执行这2条指令就能跳转到你要拦截的函数了,但是我们该修改成...
// //调用源函数 // return m_HookMessageBox.CallFunction( 4,0,"hook后",lpCaption,uType ); // } // // //过虑函数 // VOID __cdecl filter( XLIB::CStack_ESP* pStack ) // { // printf("0xx\n",pStack->...