An open API service indexing awesome lists of open source software.

https://github.com/system233/x64call

Call 64bit function in 32bit process
https://github.com/system233/x64call

createremotethread ntcreatethreadex x64call

Last synced: 4 months ago
JSON representation

Call 64bit function in 32bit process

Awesome Lists containing this project

README

        

# x64call

Call 64bit function in 32bit process;
32位进程调用64位函数, CPP类型安全
## Usage

32位进程远程注入64位进程示例

### IN CPP
```cpp

#include
#include
using PNtCreateThreadEx=DWORD64(
PDWORD64 ThreadHandle,
ACCESS_MASK DesiredAccess,
LPVOID ObjectAttributes,
HANDLE ProcessHandle,
DWORD64 lpStartAddress,
LPVOID lpParameter,
BOOL CreateSuspended,
DWORD64 dwStackSize,
DWORD64 dwStackCommit,
DWORD64 dwStackReserve,
LPVOID lpBytesBuffer
);
DWORD64 hThread;
x64call::x64::call("NtCreateThreadEx",&hThread,0x1FFFFF,NULL,hProc,addr64,pParam,FALSE,0,0,0,NULL);

//or
char const name[]="NtCreateThreadEx";
x64call::x64::call(&hThread,0x1FFFFF,NULL,hProc,addr64,pParam,FALSE,0,0,0,NULL);

```

### IN C
```c
#include
#include
DWORD64 hThread;
x64call_exec(
11, //number of target function args
x64call_dlwalk("NtCreateThreadEx"),//64bit function addr
(uint64_t)0x1FFFFF, //args...
(uint64_t)NULL,
(uint64_t)hProc,
(uint64_t)addr64,
(uint64_t)pParam,
(uint64_t)FALSE,
(uint64_t)0,
(uint64_t)0,
(uint64_t)0,
(uint64_t)NULL,
)
```

## Notes
不支持浮点类型和结构体传值