Dll Injection via Debug Api
-
Hi,
joa ich weiss das Fragen bezueglich sowas nicht so gern gesehen werden, aber ich wuesste nicht wo ich sonst so kompetente Hilfe bekommen ;).
Also ich versuche gerade Dlls mit der Debug Api zu injecten.
Laeuft ungefaehr so ab:(1)-Attachen zu einem Process mit DebugActiveProcess
(2)-alle kommenden Events, bis EXCEPTION_DEBUG_EVENT kommt, bearbeiten
(3)-wenn das event ein CREATE_THREAD | CREATE_PROCESS event ist suspende ich den thread mit SuspendThread
(4)-sobald EXCEPTION_DEBUG_EVENT kommt schreibe ich an den EntryPoint des Processe ein Stub zum laden der DLL, setze den EIP des ersten Threads auf den EntryPoint und Resume den Thread
(5)-Ganz normal wieder ContinueDebugEvent aufrufen
(6)-warten bis neue nachrichten kommen
(7)-wenn naechstes EXCEPTION_DEBUG_EVENT kommt und ExceptionCode breakpoint ist (wegen stub) alten Code vom EntryPoint wieder herstelllen und den alten ThreadContext wiederherstellen
(8)-wieder alle Threads resumen
(9)-zum Schluss noch ContinueDebugEvent aufrufen
(10)-und den Process beendenSoweit so gut. Funktioniert auch bei den meisten Prozessen super, aber teilweisse bleibt er bei Schitt 6 haengen. Leider habe ich keine Ahnung an was das liegen koennte :(.
Desweiteren kommt es auch vor (zB. Notepad) das ich in der Taskleiste auf das Notepad Recheck klicken muss damit es weiter geht. Bei VLC wiederum bringt das nichts. Geht einfach garnicht weiter.Ich hoffe ich konnte mein Problem verstaendlich schildern ;).
Waere ueber hilfer erfreut
Peace & Blessed Love C0de4FunPS: wenn ich Code Posten soll sagt bescheid
-
Hi,
also ich bins nochmal. Irgendwie ist das komisch. Ich hab schon 2 3 Fragen hier im Froum gepostet, aber komischerweise kam nie eine Antwort. Waere nett wenn ihr mich mal aufklaeren koenntet was an meinen Fragen falsch/schlecht ist damit sie keiner beantwortet :). Erklaere ich mein Problem zu ungenau oder so unverstaendlich!?
Waere echt erfreut wenn ihr mir helfen koenntet meine naechsten Threads inhaltlich zu verbesseren ;).Peace & Blessed Love C0de4Fun
PS: Ich hab das Problem geloest: Problem war das der erste Thread teilweise in einer Wait Funktion fest gehangen ist.
Bspl Thread 1 wartet auf ein Mutext von Thread 2 der aber suspended war und somit nicht weiter kommt.
-
C0de4Fun schrieb:
Irgendwie ist das komisch. Ich hab schon 2 3 Fragen hier im Froum gepostet, aber komischerweise kam nie eine Antwort.
vielleicht deswegen:
Peace & Blessed Love C0de4Fun
?
-
C0de4Fun schrieb:
Irgendwie ist das komisch. Ich hab schon 2 3 Fragen hier im Forum gepostet, aber komischerweise kam nie eine Antwort.
vielleicht weil niemand die Antwort wusste
-
Eine Idee hätte ich. Möglicherweise fehlen dir Berechtigungen dazu.
Führ mal diesen Code vor deinem Code aus:bool EnableDebugPrivilege() { TOKEN_PRIVILEGES priv; HANDLE hThis, hToken; LUID luid; hThis = GetCurrentProcess(); OpenProcessToken(hThis, TOKEN_ADJUST_PRIVILEGES, &hToken); LookupPrivilegeValue(0, "seDebugPrivilege", &luid); priv.PrivilegeCount = 1; priv.Privileges[0].Luid = luid; priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, false, &priv, 0, 0, 0); CloseHandle(hToken); CloseHandle(hThis); return true;
Ansonsten Poste mal den Code, denn nur mit der beschreibung kann ich dir nicht helfen.
-
Anmerkung: Ganz zum Schluß muß natürlich noch eine schließende geschweifte klammer hin
-
nö er kriegt keine antwort weil keiner lust hat bei solchen unnützen frickeleien zu helfen und die fragen zu speziell sind als daß man sie beantworten könnte ohne selber diesen frickelsalad auszuprobieren, wozu keiner hier lust hat.
-
Hey ho,
dummspruch² schrieb:
C0de4Fun schrieb:
Irgendwie ist das komisch. Ich hab schon 2 3 Fragen hier im Froum gepostet, aber komischerweise kam nie eine Antwort.
vielleicht deswegen:
Peace & Blessed Love C0de4Fun
?
macht aber iwie keine Sinn? Haste dir das auch durchgelesen bevor du den Sende Button gedrueckt hast!?
MisterX schrieb:
Eine Idee hätte ich. Möglicherweise fehlen dir Berechtigungen dazu.
Führ mal diesen Code vor deinem Code aus:bool EnableDebugPrivilege() ....
Ansonsten Poste mal den Code, denn nur mit der beschreibung kann ich dir nicht helfen.
joa hab ich schon im Code mit drin ;). Aber danke.
Wie gesagt ich hab das Problem jetzt schon gefunden. Das Problem war das der Thread der die Lib laden sollte in einer WaitFor... Funktion fest gesteckt ist. zB. hat er auf eine Critical Section eines andern Threads gewartet. Da der aber suspended ist gings nicht weiter. Jetz mach ich das so das wenn nach x Seks nichts weiter geht leg ich den Thread wieder schlafen und probiere es mit dem naechsten Thread.Peace & Blessed Love C0de4Fun
-
C0de4Fun schrieb:
macht aber iwie keine Sinn? Haste dir das auch durchgelesen bevor du den Sende Button gedrueckt hast!?
ergibt schon einen sinn - wenn jemand zum beispiel dein posting liest und beim lesen des tollen spruchs vor lachen rückwärts vom stuhl fällt, hat er vor schmerzen keine lust mehr zu posten
-
ich würde mich der vermutung anschließen das deine fragen zu speziell sind..
kenne das problem..