Autor |
Beitrag |
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 26.08.05 16:49
fehlt auch ein dword vor der eckigen klammer
delphi7 nimmt automatisch immer ein dword wenn nichst vorsteht
delphi5 konnte das wohl noch net ;(
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 26.08.05 17:24
Delphi-Quelltext 1:
| CMP DWORD PTR [...], $00000000 |
@uall: Hatten wir das nicht schon öfters, den Hinweis, dass DWORD PTR bitte anzugeben ist? Erspart unter D5 einige Unannehmlichkeiten mit Register-Größen ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 26.08.05 17:34
ja aber ich weiß halt nicht wo überall der fehelr auftritt also muss ich mir erst delphi5 besorgen um zu testen was wp geändert werden muss
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
wolke
      
Beiträge: 240
|
Verfasst: Fr 26.08.05 18:00
super, danke, klappt alles inzwischen.
sehe ich es richtig, daß so ein globaler API hook nur mit NT-systemen funktioniert?
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 26.08.05 18:06
gibts nen kleines problem ;> wenn du kernel32 oder user32 unter 9x hookst, dann hookst du IMMER global demanch muss die dll in der die funktio nreinspringt auch global geladen sein (shared memory) sonst crashed dir das system
grundsätzlich sollte das injecten auch global auf 9x funktionieren, und hooken sollte da auch nicht dasproblem sein für funktionen die im speicherbereich unter 0x80000000 (shared area) liegen
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Mi 12.10.05 09:55
Delphi-Quelltext
deine uallDisAsm unit läuft bei mir nur wenn ich obige zeile auskommentiere. ansonsten: ned schlecht
gibts mal wieder was neues ?
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
wolke
      
Beiträge: 240
|
Verfasst: Fr 25.11.05 18:53
das (globale) hooken scheint unter win64 nicht zu funktionieren... 
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 25.11.05 19:02
hooken der APIs? mit uallHook.HookCode? dann liegts daran, dass ich die assembler instructions mit deren opcodes noch nicht drinhabe, ohne win64 (mit entsprechendem PC) wird das auch nix
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 25.11.05 19:16
@uall: Wenn alles gut geht, wir mein nächster PC Athlon 64, dann könnte ich das testen.
Genauso gibt es noch Probleme mit Hooks unter Win2K3. Ich wäre (da ich Teile von ualls Code für Omorphia nutze) dankbar, wenn jemand, der Win2K3 laufen hat, bitte mal eine genaue Fehlerursache des lokal Hooking auf kernel32.dll austesten könnte.
Wer Beispiel-Sourcen brauch: Omorphia-Repo auschecken und das DebugInterface (Unit ODbgInterface) einbinden.
@uall: Oder gibt es da schon neue Releases, seit der Ver, die in Omorphia genutzt wird?
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
wolke
      
Beiträge: 240
|
Verfasst: Fr 25.11.05 19:26
ich habe es mit der madCodeHooks library probiert, dort funktioniert das hooken ohne probleme.
ich selbst habe keinen 64bit-rechner, aber mein mitbewohner. ich stelle mich also gerne für tests zur verfügung.
gibt es nicht andere wege, als für jedes system individuell die library anzupassen? sonst steht mit vista gleich wieder die nächste änderung an...
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 25.11.05 19:55
das liegt eher am prozessor und nicht am betriebssystem.
der disassembler kommt mit den neue OPcodes nicht klar, d.h. er weigert sich einfach bei den 64 bit ops die länge auszugeben, daher funktioneirt der hook nicht. ne einfache kernel API disassembly würde mir reichen. (z.b. CreateFileA/W)
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
wolke
      
Beiträge: 240
|
Verfasst: Di 29.11.05 02:22
hat sich schon was ergeben? angebot zwecks 64bit steht noch (siehe PM).
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Mi 22.03.06 17:22
hihu
ich habe mal wieder viel gemacht, denk Link gibts im ersten Post.
Codehooking (mit code overwriting) funktioniert nun auch unter Win9x.
Ich mach noch die online erklärung ganz feritg, dann schau ich mir mal die 64bit Systeme an.
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
Henner
Hält's aus hier
Beiträge: 1
|
Verfasst: Mi 26.04.06 20:14
gibts ein Beispiel fuer InjectMe?
warum dllmain als parameter?
ich moechte code in eine exe einschleusen, damit ich dessen Fenster kopieren kann (z.B. von einem Service).
Ich habe wScripts die vom SQL-Server-Agent aus gestartet werden und sich aufhaengen - mit einer Messagebox...
Ich wuesste jetzt gern, was da steht...
gruss
Henner
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Do 27.04.06 01:34
Hi Henner.
InjectMe lädt die eigene EXE in den Speicherbereich eines anderen Programms. Es muss halt DLLmain angegeben werden weil die Funktion dann in dem ZielProzess aufgerufen wird (z.b. initalisation oder halt der code der ausgeführt werden soll)
Das ist aber ein kleiner Hack, erstell besser eine DLL die du dann mt InjectLibrary in den Zielprozess lädst. Das ist sicherer und es wird die KernelAPI LoadLibrary benutzt. InjectMe versucht das Image selbständig zu erstellen und dann in den Prozess zu laden. Das funktioniert soweit gut, aber dort treten öfter mal Probleme auf.
InjectLibrary ist aber sicher, es wäre das selbe als wenn die Anwenung selbst LoadLibrary aufruft.
Das Dllmain ist wie gesagt nur der Code der dann in dem Zielprocess aufgerufen wird. Such mal hier im Forum, ich weiß dass ich irgendwo mal ein Beispiel dazu geschrieben habe.
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
Noteip
Hält's aus hier
Beiträge: 2
|
Verfasst: Fr 28.04.06 08:53
Hi uall@ogc,
versuche schon seit Tagen deine Webseite zu erreichen um mir die Units runterzuladen. Aber ich erreiche die Seite nicht. Geht es den Anderen hier auch so, oder liegt das an meiner Verbindung?
Gruß Noteip
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 28.04.06 12:38
Hi, ja leider ist die Seite gerade down. Da hatte ich noch die Dokumentation und einige Beispiele. Hab aber jetzt mal den alternativlink zu souceforge in den ersten Post dazugetragen. Da bekommst aber halt nur den Source 
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
Noteip
Hält's aus hier
Beiträge: 2
|
Verfasst: Fr 28.04.06 19:01
Echt super Tools ... weiter so!
|
|
moddin
      
Beiträge: 75
WinXP Pro
Delphi 7 Enterprise ;-)
|
Verfasst: Do 08.06.06 23:02
@Topic Mich interresiert ob das Injecten von Processen bzw Thread-Injection von den Units unterstützt wird
Wie wird eigentlich gehooked? Wird "extended Overwriting" verwendet so das es möglich sei die wahre API funcktion zu erreichen indem man die Adresse der ersten 5 bytes der gehookten function ermittelt und so den Hook umgehen kann?
@Alle Ist es eigentlich möglich nicht eine DLL sondern die ausführende EXE selbst in eineren anderen PRocess zu injezieren sodas man sie beenden kann und trotzdem läuft sie in dem anderen Prozess weiter oder ist es besser einfacher mit einer Injezierten DLL zu kummunizieren?
|
|
Terra
      
Beiträge: 307
Windows 7 Ultimate
Delphi® XE3
|
Verfasst: Fr 09.06.06 10:39
Habe ich das jetzt richtig verstanden, das wenn ich SendInput hooken möchte folgendes eingeben muss?
Delphi-Quelltext 1:
| p := GetProcAddress(GetModuleHandle('user32.dll'),'SendInput'); |
Irgendwie Peil ich das nicht...
Terra
|
|