Burgershot
How to call a function an address? - Printable Version

+- Burgershot (https://www.burgershot.gg)
+-- Forum: General (https://www.burgershot.gg/forumdisplay.php?fid=19)
+--- Forum: Programming (https://www.burgershot.gg/forumdisplay.php?fid=56)
+--- Thread: How to call a function an address? (/showthread.php?tid=2158)



How to call a function an address? - oukibt - 2021-07-06

Hi I am trying to call a function at an address from a plugin but I am getting a crash.

Code:
PLUGIN_EXPORT int PLUGIN_CALL AmxLoad(AMX* amx)
{
    VirtualUnlock((LPVOID)0x48B5B0, 0x20);

    ((int(__fastcall*)(char*))0x48B5B0)("query");
    return 1;
}

https://cdn.discordapp.com/attachments/582915540285128725/862083931314585630/unknown.png

I think, this is GetConsoleVariableInt function


RE: How to call a function an address? - SimoSbara - 2021-07-14

(2021-07-06, 09:36 PM)oukibt Wrote: Hi I am trying to call a function at an address from a plugin but I am getting a crash.

Code:
PLUGIN_EXPORT int PLUGIN_CALL AmxLoad(AMX* amx)
{
    VirtualUnlock((LPVOID)0x48B5B0, 0x20);

    ((int(__fastcall*)(char*))0x48B5B0)("query");
    return 1;
}

https://cdn.discordapp.com/attachments/582915540285128725/862083931314585630/unknown.png

I think, this is GetConsoleVariableInt function

Hi, can you show the crash log, if there is one.

Maybe you should try to cast the address with __stdcall. Another thing you can check is the return value of VirtualUnlock, if the return value is zero then you should look at GetLastError(). 

I suggest to read this documentation before doing this kind of stuff: https://docs.microsoft.com/en-us/cpp/cpp/stdcall?view=msvc-160.