“模拟”内联ASM的函数

问题描述

一个朋友在Visual Studio中开发了一个C ++项目,而我在CodeBlocks + MinGW中开发了一个类似的项目。 它是一个dll,在注入时调用了一个过程函数,在Visual Studio中,它很容易通过ASM内联实现,但是在我的项目中我无法做到这一点,因为MinGW中ASM的语法有点无聊,所以我我想在其他情况下使用“ typedef”:

typedef void(__stdcall *TSendPacket)(void*,int);

TSendPacket SendPacket = (TSendPacket)Infos.Addresses.sendpacket;

SendPacket(packet,size);

那样,我不需要直接使用ASM并获得相同的结果。我想为以下功能做类似的事情(这是我朋友做的方式):

__forceinline int  ConectServer(char* IP)
{
    static int Pthis = *(int*)0x7A7F38;
    static int SubFunc = 0x402644;


    _asm
    {
        MOV ECX,Pthis
        MOV EAX,IP
        PUSH EAX
        CALL SubFunc
    }
}

我尝试过这种方法,但是没有用:

typedef void(__stdcall *TConnectChannel)(int,char*);

不好。:使用“ typedef”进行函数调用的结果必须与我上面提到的ASM函数完全相同。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...