AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi API-Funktion "hooken" direkt in Anwendung
Thema durchsuchen
Ansicht
Themen-Optionen

API-Funktion "hooken" direkt in Anwendung

Ein Thema von chri_ri · begonnen am 15. Okt 2008 · letzter Beitrag vom 18. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von chri_ri
chri_ri

Registriert seit: 16. Okt 2007
Ort: Markkleeberg
37 Beiträge
 
Delphi 7 Enterprise
 
#1

API-Funktion "hooken" direkt in Anwendung

  Alt 15. Okt 2008, 17:10
Hallo,
erstmal sorry dass mein Thema nicht wirklich mit Delphi zu tun hat aber ich weiß nicht weiter.


Mein Problem:

Ich habe eine Anwendung, welche ich NICHT selbst programmiert habe und zu welcher ich KEINEN Quellcode habe. In welcher Programmiersprache diese programmiert wurde bin ich mir nicht sicher.

Die Anwendung legt ein paar Config-Dateien unter "C:\Dokumente und Einstellungen\<USERNAME>\Anwendungsdaten\<Programm name> an. Vermutlich verwendet Sie dabei die Systemvariable "%appdata%".

Ich möchte nun lediglich das erstellen dieser Config-Dateien verhindern. Eine Zugriffsüberwachung und Korrigierung (Löschung) der Config-Dateien wäre zwar wesentlich einfacher, jedoch möchte ich es so möglichst NICHT lösen.
Ich hatte daran gedacht per Assembler (OllyDbg) mir den Code anzuschaun und an der Entscheidenden Stelle den Aufruf der CreateFile-Funktion der Windows-API "blind" zu machen. Jedoch NUR für diese / in dieser einzigen Anwendung.


Ich scheitere leider kläglich.


Ich würde mich sehr über ein paar Tips freuen. Schonmal vielen Dank im Vorraus!



mfg. FRY82
  Mit Zitat antworten Zitat
jmd anders

Registriert seit: 13. Mai 2004
84 Beiträge
 
#2

Re: API-Funktion "hooken" direkt in Anwendung

  Alt 15. Okt 2008, 20:26
wie siehts damit aus einfach den ordner schreibgeschützt zu machen? was passiert dann?
  Mit Zitat antworten Zitat
zero_x

Registriert seit: 12. Jun 2008
30 Beiträge
 
#3

Re: API-Funktion "hooken" direkt in Anwendung

  Alt 15. Okt 2008, 20:27
Hallo chri_ri,

mit dieser Funktion sollte es eigentlich möglich sein: http://msdn.microsoft.com/en-us/library/aa365465(VS.85).aspx .

zero_x
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

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

Re: API-Funktion "hooken" direkt in Anwendung

  Alt 15. Okt 2008, 21:06
Ich glaube er will das Programm direkt patchen über OllyDbg und co.

Du müsstest rausfinden an welcher Stelle die Files geschrieben werden und dann den Codeverlauf mit gezielten JMPs umzubiegen.
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#5

Re: API-Funktion "hooken" direkt in Anwendung

  Alt 16. Okt 2008, 10:12
Willst du es durch patchen machen oder eventuell durch andere Methoden (hooking). Zweiteres ist jedenfalls eifnach indem du CreateFileA hooks und eben dann die Datei nicht öffnest, bzw auf eine TEMP Datei umleitest. Dies ist dann nötig wenn z.b. ein Fehler auftritt wenn die Datei nicht erstellt werden konnte.

Wenn du Glück hast, kannst du einen Hexeditor nehmen und dort nach der cfg Datei suchen (der name sollte da drin stehen). Dann machst du einfach ein #0 am Beginng des Namen (dadurch hast du Ihn sozusagen gelöscht) oder du nimmst Zeichen die von windows nicht erlaubt sind (z.B. <) und überschreibst da einen Buchstaben mit.

Im Normalfall wird dann CreateFileA mit einerm Ordner bzw. ungültigen Dateinamen aufgerufen und sollte fehlschlagen.
  Mit Zitat antworten Zitat
Benutzerbild von chri_ri
chri_ri

Registriert seit: 16. Okt 2007
Ort: Markkleeberg
37 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: API-Funktion "hooken" direkt in Anwendung

  Alt 16. Okt 2008, 16:42
Also ich möchte nicht überwachen, sondern das schreiben dieser config-dateien ganz verhindern.
Ein Sperren des Zielordner kommt nicht in Frage.
Eine Möglichkeit per Hook oder ähnlichem wäre zwar noch was, jedoch würde ich das patchen auf jeden Fall vorziehen.
Mal ganz davon abgesehn, dass diverse AntiVir-Programme wie z.B. Kaspersky bei nem Hook den unwissenden User verwirren könnten, falls ich das Prinzip auch mal bei nem Tool oder so anwende, welches ich weitergebe.
Weil hab schon öfters nach einer Lösung für ähnliche Probleme gesucht.

Achja und nach Dateipfaden habe ich schon gesucht und leider nix gefunden.



mfg. chri_ri
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#7

Re: API-Funktion "hooken" direkt in Anwendung

  Alt 16. Okt 2008, 22:00
du sollst ja auch den dateinamen abändern
  Mit Zitat antworten Zitat
Benutzerbild von chri_ri
chri_ri

Registriert seit: 16. Okt 2007
Ort: Markkleeberg
37 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: API-Funktion "hooken" direkt in Anwendung

  Alt 17. Okt 2008, 01:15
Danke für den tipp. Habe das auch schon richtig verstanden. Nur ich finde keine Dateinamen in der Anwendung. Sonst hätte ich das ja schon längst versucht. Nungut. Sorry habe echt immernoch keine Lösung


mfg. chri_ri
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#9

Re: API-Funktion "hooken" direkt in Anwendung

  Alt 17. Okt 2008, 12:31
dann setz nen BP auf CreateFileA dort ist ja auch der parameter für die Datei angegeben. Dann steppst du soweit durch bis du zu einem aufruf kommst wo vorher der ordner+dateiname zusammengeügtwerden. dann nur noch da den aufruf noppen.

als alternative kannst du mir auch die datei schicken
  Mit Zitat antworten Zitat
Benutzerbild von chri_ri
chri_ri

Registriert seit: 16. Okt 2007
Ort: Markkleeberg
37 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: API-Funktion "hooken" direkt in Anwendung

  Alt 17. Okt 2008, 13:24
hm also was du meinst kann ich mir in etwa vorstellen.

Nur ich komme trotzdem nicht zurecht.

Ich habe ja extra nach dem CreateFile gesucht. Ich bin was Assembler angeht nicht so ganz bewandert. Also habe ich angenommen, dass ich es vielleich in dem Code vor dem EP (EntryPoint) finde.
Habe dort oben auch irgendetwas gefunden, was nen Wert per MOV zu irgendeinem Offset schiebt. Und mein "OllyDbg" hat mir dahinter das Kernel32.CreateFile als Info angezeigt. Wollte das NOOPen, weil ich keine Ahnung hatte obs das is und es einfach testen wollte.

Schließlich als ich speichern wollte habe ich gesehn, dass mein OllyDbg zwar die Anwendung geöffnet hat, jedoch mir komischerweise immer beim speichern (nichtnur bei Änderungen über dem EP) sagt, ich wäre in der kernel32.dll (C:\WINDOWS\System32).

Also irgendwie kommt mir das ein wenig spanisch vor. Und durchsehen tu ich in dem Code irgendwie nicht ganz. Ich kenne zwar die Grund-Assembler-Befehle aber naja. Und ich denke, dass mir Ohne Durchblick einfach das setzen eines Breakpoints an irgendeinem vermeintlichem CreateFile und das damit verbundene Verhindern der Ausführung dieses Befehls nicht viel bringen wird


Also ich hänge mal eine Beispel-Anwendung an, mit der ich das machen möchte, aber nicht zurecht komme.



mfg. chri_ri
Angehängte Dateien
Dateityp: exe beispiel_827.exe (1,81 MB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz