![]() |
Api Hooking / Logen
Hey Leute
ich hab die sprinf von der msvcr.dll gehookt, also nen jump von der dll in meine dll, nur hab ich folgendes Problem, die sprintf bekommt nen string(mit #0) gepusht zB "d%" so jetzt fang ich das ding übern Stack ab und versuche das an meinen Code zu übergebe dazu hab ich schon einiges probiert zb mov eax, esp+$20 und dann push eax das klappt auch wunderbar nur irgenwie schaft es dann die Funktion(unten als code) mittem in sonen code haufen zu springen , dann krieg ich ne exception debugen mach ich mit ollydbg und das wird dann im endefekt als funtion/procedur ausgeführt
Delphi-Quellcode:
Wenn ich einfach ne Messagebox aufrufe ist das kein Problem nur halt bei dem Code bricht das Program zusammen, hab ich was übersehen oder soll ich den log anders erstellen ?
procedure LogToFileStr(Text:String);stdcall;
var log : textfile; begin AssignFile(log, DateToStr(now)+'errorlog.log'); try if not FileExists(DateToStr(now)+'errorlog.log') then begin Rewrite(log,DateToStr(now)+'errorlog.log'); WriteLn(log,'['+TimeToStr(now)+']:'+'llalala #'); WriteLn(log,'##################################################################'); end; Append(log); WriteLn(log,'['+TimeToStr(now)+']:'+ Text); WriteLn(log,text); finally CloseFile(log); end; end; die Parameter werden auch richtig übergeben. oder darf man sowas generell nicht machen ? ich kann auch mehr Code posten, eingetlich müsten die meisten wissen was ich mache halt die Api umlenken. ich kann auch Screenshots in Olly machen , Testapps und so hochladen =). die funktion läuft in ner normalen exe ohne problem ich verwende d7 :) gruß flash |
Re: Api Hooking / Logen
Zitat:
|
Re: Api Hooking / Logen
Ich denke, es ist eher interessant, wie du an die Information kommst und nicht wie du sie weiterverarbeitest. Wahrscheinlich bringst du das Stackframe durcheinander. In dem einen fall passiert dadurch nichts, und im zweiten Fall kommt berechtigter Weise eine Exception.
|
Re: Api Hooking / Logen
Bitte loeschen...Forum hing..Danke!!
|
Re: Api Hooking / Logen
@Der.Kaktus
Also von Delphi aus kann ich da nicht mehr machen , das ist alles nur assembler. @sirius Ja genau das ist das Problem vor nem return liegt murks aufm stack nur die funktion selbst is ja delphi ohne inline asm also müste der call (in dem fall logtofile) eigentlich bündig sein (also der müste ja insich wieder zum ende finden) Wenn das danach passiert würd ich das verstehen können aber tut es ja dummerweise nicht, eine Messagebox wird richtig ausgeführt. Das einzige was mir noch einfällt das er irgendwie intern über den String stolpert, aber das halt ich auch für nicht möglich da die exe mit nur einem Thread arbeitet. |
Re: Api Hooking / Logen
Ach du lenkst ihn direkt in die funktion. Ja dann ist der String als Parameter falsch. Versuch mal PChar!
|
Re: Api Hooking / Logen
Boah bei mir is echt grad der Fehlerteufel drin ,hab schon probiert kann es aber grade nicht weiter debugen.
Hier nochmal das ding was ich hooke int sprintf ( char * str, const char * format, ... ); Ich werds morgen nochmal ausgiebig ausarbeiten. ---------------------------------- Hier das gehört nicht direkt dazu das ist halt mein inject Tool für die dll das macht mir 1-2 c000008 oder d00008 exceptions , im Netz stand das wäre schon geschlossen wenn so etwas auftrit.
Delphi-Quellcode:
Eigentlich hatte ich vor das cThreadID Handle zu closen, aber das gibt mir immer ne exeption.
if CreateRemoteThread(HandleWindow,nil,0,GetProcAddress(GetModuleHandle('kernel32.dll'),'LoadLibraryA'),pAllocMem,0,cThreadID) <> 0 then
begin WaitForSingleObject(cThreadID,INFINITE); also hab ich das schonmal entfernt Zum Schluss close ich noch alles was ich so an Handles habe und da spuckt Olly mit auch noch eine hinterher. Beenden sich die Handles irgendwie selber oder hab ich was nicht verstanden. Die Dlls werden aber astrein injected. --------------------------------------------------- Das ist noch ne andere Frage aber zum gleichen Program , warum schreiben alle möglichen Tools die ich Create(Process), eigentlich direkt in meine Delphi Konsole vom Program das den Prozess startet , find ich irgendwie komisch. Wenn interesse besteht ich hab nen Loader und ne Api Hook Klasse(als pas file) leicht zu verstehen und einbinden einfach bescheid geben , ansonsten rel ich die vll falls interesse besteht und alles fertig ist. so bis später :) edit2: so geiler tip mit pcar der funzt perfekt :D thx schonmal für die schnelle hilfe gruß flash |
Re: Api Hooking / Logen
so alles läuft jetzt, irgendwo stand ich soll wieder was deaktivieren wenn die frage beantwortet wurde , ich weiß aber nicht wo
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:09 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