Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Fremden Thread anhalten (SuspendThread)

  Alt 10. Dez 2006, 13:28
Habe jetzt folgendes gefunden:

Code:
unsigned long GetTargetThreadIdFromWindow(char *className, char *windowName)

    HWND targetWnd;
    HANDLE hProcess
    unsigned long processId, pTID, threadID;

    targetWnd = FindWindow(className, windowName);
    GetWindowThreadProcessId(targetWnd, &processId);


    _asm { 
   mov eax, fs:[0x18]
   add eax, 36 
   mov [pTID], eax
    } 

    hProcess = OpenProcess(PROCESS_VM_READ, false, processID);
    ReadProcessMemory(hProcess, (const void *)pTID, &threadID, 4, NULL);
    CloseHandle(hProcess);

    return threadID;
}
Kann mir das jemand nach Delphi portieren?

Ein paar Zeilen kann man weglassen, da ich die PID des Prozesses bereits kenne und nicht anhand des Fensterhandles ermitteln muss. Ich nehme einfach mal 435 als Beispiel.

Code:
unsigned long GetTargetThreadIdFromWindow(char *className, char *windowName)

    HWND targetWnd;
    HANDLE hProcess
    unsigned long processId, pTID, threadID;

    processID = 435;


    _asm { 
   mov eax, fs:[0x18]
   add eax, 36 
   mov [pTID], eax
    } 

    hProcess = OpenProcess(PROCESS_VM_READ, false, processID);
    ReadProcessMemory(hProcess, (const void *)pTID, &threadID, 4, NULL);
    CloseHandle(hProcess);

    return threadID;
}
Vielen Dank
Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat