“模拟”内联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 (将#修改为@)