在windows驱动代码中用汇编调用user32.dll中的MessageBoxA函数出错

问题描述

在windows驱动代码中用汇编调用user32.dll中的MessageBoxA函数出错

_asm
{
push eax;
push ecx;

push 0;
push 0;
push 0;
push 0;
mov ecx, MessageBoxAAddr;
lea eax, mark;
push eax;
jmp ecx;

mark:
mov eax, eax;
mov ebx, ebx;
mov ecx, ecx;

pop ecx;
pop eax;

}
其中MessageBoxAAddr是我ring3应用程序传进来的MessageBoxA的地址

通过uf看到,这确实是MessageBoxA的地址。
可是当执行到第二句push ebp时,就会报错:

随后系统提示试图执行不可执行的内存:

这是什么原因呢?有没有人知道啊?非常感谢!
另外说一下,其实我是要向受保护的进程中注入DLL,我想用KeAttackStackProcess附加到目标进程之后,调用LoadLibrary加载自己想要加载的DLL,不知道这样可不可行,有没有什么比较简单的方法。。。
本人是新手,不要鄙视我。。。
再次感谢!

解决方案

通过uf看到,这确实是MessageBoxA的地址。
可是当执行到第二句push ebp时,就会报错:

随后系统提示试图执行不可执行的内存:

时间: 2024-09-30 16:56:12

在windows驱动代码中用汇编调用user32.dll中的MessageBoxA函数出错的相关文章

请问c#如何调用ntdll.dll中的ntquerysysteminformation函数??

问题描述 请问c#如何调用ntdll.dll中的ntquerysysteminformation函数??google了一下函数原形ntsysapintstatusntapintquerysysteminformation(inuintsysteminformationclass,//信息类型outpvoidsysteminformation,//缓冲指针inulongsysteminformationlength,//缓冲的字节大小outpulongreturnlengthoptional//写

请高手帮我解决一个VB.NET调用c++ DLL 中的回调函数的问题

问题描述 我有个test.dll是c++写的dll,现在我要用vb.net调用这个dll中的SetCallback回调函数,请问怎么在vb.net中实现,请高手们具体列出代码,应我是新手,谢谢.以下是c++中的头文件定义的一部分typedefvoid(__stdcall*CCallback)(unsignedlongmsg,unsignedlonghparam,unsignedlonglparam);extern"C"voidR888DLL_API__stdcallSetCallbac

C# 如何调用C++dll 类的成员函数?(请大家指教一二)

问题描述 C#如何调用C++写的MFCDLL中某一类的成员函数呢?eg...C++MFCDLL中有一个类的公共成员函数:CDllClass::icanseeu()...C#应用程序如何调用此函数....求助....先谢啦!!! 解决方案 解决方案二:实现不了解决方案三:C++自己调用都是问题,何况是其他语言解决方案四:实现不了.解决方案五:那怎么办,,,有没什么办法可以解决的...如果是一个C++的普通函数就可以调用的,(已实现)一个C++的类成员函数要怎么办?难不成把C++代码转换为C#代码?

就像在windows系统下 借助汇编在exe文件中插入代码,android可不可以实现类似功能?

问题描述 就像在windows系统下 借助汇编在exe文件中插入代码,android可不可以实现类似功能? 我想开发一个app,APP中原本就有一些计算函数之类的代码,我希望该app能够实现从外部打开并导入一个包含代码的文件(比如.txt或其他),将该文件代码添加到原来的APP中 ,调用APP中原来的函数来处理该文件的代码 ,并输出结果....我不知道android可不可以实现...能的话 该怎么做呢...菜鸟一枚~还望指点

c# adbwinapi.dll-c# 如何调用AdbWinApi.dll 中的API

问题描述 c# 如何调用AdbWinApi.dll 中的API 在google中搜索AdbWinApi.dll api 也找不到.希望高手帮忙 解决方案 http://blog.csdn.net/itjobtxq/article/details/17335851 既然有.h文件函数原型,就可以用dllimport申明函数,并且在C#中使用. 解决方案二: 调用dll的APIyesry 通过桥接器,Java调用任何API或DLL 解决方案三: 先下载AdbWinapi.dll,然后将其添加到项目的

c语言-关于调用别的源文件中定义的函数或变量的问题

问题描述 关于调用别的源文件中定义的函数或变量的问题 在A.c中定义了char c这个变量,如果在B.c中要调用这个变量,要在B.c或B.h中调价extern char c是吧,我看到别的程序猿一般的做法是定义了变量或函数以后,都把他们在对应的头文件中声明一下,如果有其他文件要调用,直接添加这个文件的头文件即可,如果A.c中想用char c,加extern可以吗(这样的话char c要在头文件中定义了,一般调用变量的不多吧,) 解决方案 extern就可以了.但是要定义成全局变量,不能是函数内的

调用C++dll,需要传入一个函数指针,函数参数含有数组指针,用于传回数据,怎么老说我访问内存非法呀.

问题描述 C++dll代码回掉函数类型:voidcallback(BYTE*data,intnlen)//DLL设置回调函数voidSetCallBackFunc(CALL_BACK_FUNCcallback){m_callback=callback;}//dll调用回掉函数向C#传回数据voidStartDll(){BYTEbtData[100];for(bytei=0;i<100;i++){btData[i]=i;}m_callback(btData,100);//将数据通过回掉函数传回C#

VB.NET动态调用某个DLL中的函数

问题描述 可能标题不能表达我实际要表达的意思.是这样的,在程序中需要调用一个特殊的dll中的函数这个dll中有类似A_1A_2...A_20这样的函数,有没有办法直接一个循环语句把这20个函数调用一次啊一些脚本编程语言里面就有类似的eval的功能不知道vb.net可以不? 解决方案 解决方案二:纠结能不能写字符串当作函数名,对你来说,有多大意义吗?能成为一个软件设计师?解决方案三:在.net系统中,这类程序,如果一个工作了8年的程序员,面对一个2万行的.主要由他设计开发的系统,其中有几行代码需要

求助:C#动态调用DLL的,为什么getProcAddress无法获得NATIVE DLL中的导出函数?

问题描述 ①自己用C++写了个DLL在其中声明了一个导出函数extern"C"__declspec(dllexport)LRESULTCALLBACKhookProc(intnCode,WPARAMwParam,LPARAMlParam){//实现内容忽略return1;} 生成DLL后,因为是C++编译器编译的,会改变方法名,于是我用了VIEWDLL查看了导出函数名称叫_hookProc@12②调用DLL代码[DllImport("kernel32.dll",Ch