Autor Beitrag
uall@ogc Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 26.08.05 17:24 
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 240



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mi 12.10.05 09:55 
ausblenden Delphi-Quelltext
1:
  //if VirtualProtect(p,1,PAGE_EXECUTE_READWRITE,old) then					

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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 240



BeitragVerfasst: Fr 25.11.05 18:53 
das (globale) hooken scheint unter win64 nicht zu funktionieren... :(
uall@ogc Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 240



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 240



BeitragVerfasst: Di 29.11.05 02:22 
hat sich schon was ergeben? angebot zwecks 64bit steht noch (siehe PM).
uall@ogc Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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



BeitragVerfasst: Fr 28.04.06 19:01 
Echt super Tools ... weiter so!
moddin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

WinXP Pro
Delphi 7 Enterprise ;-)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 307

Windows 7 Ultimate
Delphi® XE3
BeitragVerfasst: Fr 09.06.06 10:39 
Habe ich das jetzt richtig verstanden, das wenn ich SendInput hooken möchte folgendes eingeben muss?

ausblenden Delphi-Quelltext
1:
 p := GetProcAddress(GetModuleHandle('user32.dll'),'SendInput');					

Irgendwie Peil ich das nicht...

Terra