You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vmassembler/src/gen_header_template.h

31 lines
745 B

#pragma once
#pragma section( ".xmp2" )
#pragma comment( linker, "/section:.xmp2,RWE" )
using __vmcall_t = void* (*)(...);
namespace vm
{
struct _gen_data
{
unsigned char __vmcall_shell_code[3] = {0x0, 0x0, 0x0};
} __declspec( allocate( ".xmp2" ) ) gen_data;
inline __vmcall_t __vmcall = reinterpret_cast< __vmcall_t >( gen_data.__vmcall_shell_code );
enum class calls : unsigned long long
{
get_world = 0xBFFD6FE9,
get_hello = 0xBFFD6FE9
};
template < class T, class... Ts > T call( vm::calls e_call, Ts... args )
{
return reinterpret_cast< T >( __vmcall( e_call, args ) );
}
} // namespace vm
int main()
{
vm::call<unsigned long long>( vm::calls::get_hello );
}