![]() |
CreateThread unter 64 bit - Crash
Hallo Leute,
ich habe grade mal versucht in einer 64 bit Anwendung mit CreateThread() einen neuen Thread zu starten. Unter 32 bit funktioniert folgender Code:
Delphi-Quellcode:
Unter 64 bit führt der Aufruf allerdings direkt zum Crash. Wenn ich innerhalb des Threads einen Breakpoint setze, dann sehe ich, dass auch der Parameter Pointer komplett falsch ist. Irgendwie wird also der Stack corrupted.
function DummyThread(Parameter: Pointer): DWord; stdcall;
begin Result := 0; end; CreateRemoteThread(hProcess, nil, 0, @DummyThread, nil, 0, TID); Muss ich unter 64 bit da eine andere Aufrufkonvention als stdcall angeben? Viele Grüße Zacherl |
AW: CreateThread unter 64 bit - Crash
Zitat:
Du versuchst aber keine "Schweinereien" wie einen Thread aus einem 64bit-Prozeß in einem WOW64-Prozeß zu erzuegen, oder? |
AW: CreateThread unter 64 bit - Crash
Leider kann ich dir nicht helfen, hätte aber eine Frage an dich. Warum nicht TThread ? Ich denke mal daß die ganzen Anpassungen für 64 Bit dort eingeflossen sind.
[Edit] ... sorry, habe das Remote übersehen. Nehme alles zurück.[/Edit] |
AW: CreateThread unter 64 bit - Crash
Zitat:
Ich habe das Problem grade beheben können. Vorher hatte ich die Threadfunktion innerhalb einer anderen Funktion, also folgendermaßen, deklariert:
Delphi-Quellcode:
Dies hat unter 64 Bit wohl die Probleme verursacht. Nachdem ich die Threadfunktion nun über der Inject Funktion deklariert habe, funktioniert jetzt alles.
function Inject(..): Boolean;
function DummyThread(P: Pointer): DWord; stdcall; begin Result := 0; end; begin CreateRemoteThread(..); end; |
AW: CreateThread unter 64 bit - Crash
Zitat:
|
AW: CreateThread unter 64 bit - Crash
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz