Good Afternoon
I'm trying to inject a DLL into a process but when the dll is injected the code isn't run
DLL code
#ifndef _DLLTEST_H_
#define _DLLTEST_H_
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
extern "C" __declspec(dllexport) void NumberList();
#endif
The rest of the dll code
#include "dlltest.h"
#define MAXMODULE 50
char module[MAXMODULE];
extern "C" __declspec(dllexport)
void NumberList()
{
FILE *f=fopen("C:\\asd.txt","w");
}
DLL created with Visual C++ 2010
DLL injector code
unsigned long GetTargetProcessIdFromProcname(char *procName)
{
PROCESSENTRY32 pe;
HANDLE thSnapshot;
BOOL retval, ProcFound = 0;
thSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(thSnapshot == INVALID_HANDLE_VALUE)
{
puts("Erro");
return 0;
}
pe.dwSize = sizeof(PROCESSENTRY32);
retval = Process32First(thSnapshot, &pe);
while(retval)
{
if(strstr(pe.szExeFile, procName) )
{
ProcFound = 1;
break;
}
retval = Process32Next(thSnapshot,&pe);
pe.dwSize = sizeof(PROCESSENTRY32);
}
return pe.th32ProcessID;
}
main()
{
unsigned long id;
DWORD *pid;
HANDLE hd;
LPVOID gp,rs;
gp=(LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
id=GetTargetProcessIdFromProcname(PROCESS_NAME);
hd=OpenProcess(PROCESS_ALL_ACCESS, FALSE, id);
rs=(LPVOID)VirtualAllocEx(hd, NULL, strlen(DLL_NAME), MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE);
if(!WriteProcessMemory(hd, (LPVOID)rs, DLL_NAME, strlen(DLL_NAME), NULL))
puts("error 1");
if(!CreateRemoteThread(hd, NULL, 0, (LPTHREAD_START_ROUTINE)gp, (LPVOID)rs, 0, NULL))
puts("error 2");
system("pause");
}
Need help