bool RunAsm(HANDLE pProcess, DWORD pid)
{
//Remote Thread Handle
HANDLE hProcess=NULL;
//Inject Thread handle
HANDLE hThread=NULL;
//Inject Fuction Address after allocate
LPVOID ThreadCodeAddr=NULL;
//Inject Function
LPVOID Func=MiningCall;
//Inject Fuction Stack Address after allocate
LPVOID ThreadDataAddr=NULL;
//Inject Fuction Stack Data
LPCVOID lpParam = NULL;
DWORD Value = 3222276195;
lpParam = &Value;
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE,pid);
if (!hProcess)
{
//Do your Error message (OpenProcess);
return false;
}
ThreadCodeAddr=VirtualAllocEx(hProcess, NULL, 4096, MEM_COMMIT, PAGE_READWRITE);
ThreadDataAddr=VirtualAllocEx(hProcess, NULL, 256, MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory (hProcess, ThreadCodeAddr, Func, 4096, NULL);
WriteProcessMemory (hProcess, ThreadDataAddr, lpParam, 256, NULL);
hThread = CreateRemoteThread(hProcess, NULL, NULL,(LPTHREAD_START_ROUTINE)ThreadCodeAddr, ThreadDataAddr, NULL, NULL);
if (!hThread)
{
//Do your Error message (CreateRemoteThread);
}
else
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
VirtualFreeEx(hProcess, ThreadCodeAddr, 4096, MEM_RELEASE);
VirtualFreeEx(hProcess, ThreadDataAddr, 256, MEM_RELEASE);
CloseHandle(hProcess);
return false;
}
static DWORD WINAPI MiningCall(int ItemSn, int Pos)
{
int CallAddress = 0x005DADD0;
ASM *asm1 = new ASM();
AnsiString q="";
asm1->Get(q);
asm1->Pushad();
asm1->Push68(0);
asm1->Push68(0xC01);
asm1->Push68(Pos);
asm1->Push68(0);
asm1->Push68(ItemSn);
asm1->Mov_EDX(CallAddress);
asm1->Call_EDX();
asm1->Add_ESP(0x14);
asm1->Popad();
asm1->Ret();
Я нуб.сразу говорю)помгите с кодом.Пытаюсь реализовать копание реса, но т.к. вообще ничего об инжекте не знаю то ничего и не получается=(
{
//Remote Thread Handle
HANDLE hProcess=NULL;
//Inject Thread handle
HANDLE hThread=NULL;
//Inject Fuction Address after allocate
LPVOID ThreadCodeAddr=NULL;
//Inject Function
LPVOID Func=MiningCall;
//Inject Fuction Stack Address after allocate
LPVOID ThreadDataAddr=NULL;
//Inject Fuction Stack Data
LPCVOID lpParam = NULL;
DWORD Value = 3222276195;
lpParam = &Value;
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE,pid);
if (!hProcess)
{
//Do your Error message (OpenProcess);
return false;
}
ThreadCodeAddr=VirtualAllocEx(hProcess, NULL, 4096, MEM_COMMIT, PAGE_READWRITE);
ThreadDataAddr=VirtualAllocEx(hProcess, NULL, 256, MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory (hProcess, ThreadCodeAddr, Func, 4096, NULL);
WriteProcessMemory (hProcess, ThreadDataAddr, lpParam, 256, NULL);
hThread = CreateRemoteThread(hProcess, NULL, NULL,(LPTHREAD_START_ROUTINE)ThreadCodeAddr, ThreadDataAddr, NULL, NULL);
if (!hThread)
{
//Do your Error message (CreateRemoteThread);
}
else
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
VirtualFreeEx(hProcess, ThreadCodeAddr, 4096, MEM_RELEASE);
VirtualFreeEx(hProcess, ThreadDataAddr, 256, MEM_RELEASE);
CloseHandle(hProcess);
return false;
}
static DWORD WINAPI MiningCall(int ItemSn, int Pos)
{
int CallAddress = 0x005DADD0;
ASM *asm1 = new ASM();
AnsiString q="";
asm1->Get(q);
asm1->Pushad();
asm1->Push68(0);
asm1->Push68(0xC01);
asm1->Push68(Pos);
asm1->Push68(0);
asm1->Push68(ItemSn);
asm1->Mov_EDX(CallAddress);
asm1->Call_EDX();
asm1->Add_ESP(0x14);
asm1->Popad();
asm1->Ret();
Я нуб.сразу говорю)помгите с кодом.Пытаюсь реализовать копание реса, но т.к. вообще ничего об инжекте не знаю то ничего и не получается=(