Autor |
Beitrag |
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 30.04.05 16:44
bei mir ist net immer alles umgekehrt und wenn ich mit der maus drüber gehe, wirds invertiert, egal wie rum es ist (auch irgendwie logisch, da das dann nochmal ausgegeben wird, aber merkwürdig, dass dann da manchmal der richtige text steht !?)
aber lustig 
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Sa 30.04.05 16:50
jo dann benutzt windows noch andere APIs zum textanzeigen, frag mich aber net welche oO
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 30.04.05 16:51
aber irgendwie blödsinnig, das es noch andere gibt, aber die werden wohl am besten wissen warum 
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Sa 30.04.05 16:55
könnte aber auch sein das die funktion das 2 mal umdreht oO und somit wieder normal ist
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 30.04.05 18:05
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Di 03.05.05 19:43
uall@ogc hat folgendes geschrieben: | hab hier mal nen kleinen globalen hook gemacht, der alles was mit TextOutW ausgegeben wird spiegelt |
vielen dank, ich habs endlich hinbekommen CreateFileW zu hooken
äussert interessant wäre nun auch eine UnInject funktion oder so, damit man die DLL bei programmende entladen kann...hast du in die richtung etwas geplant ?
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
mael
      
Beiträge: 198
Erhaltene Danke: 39
Delphi XE3 Prof.
|
Verfasst: Di 03.05.05 21:30
Schöne Sachen. Besonders der Disassembler interessiert mich.
Versuche auch sowas, und habe dabei im Prinzip einfach die Tabelle des Intel-Manuals in Delphi Code übersetzt: Viel Arbeit, wenig Denken
Hast Du irgendwelche Quellen die Dir sonst noch hilfreich waren außer Intel/AMD und NASM?
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Mi 04.05.05 03:24
hmm...mir treten sporadisch abstürze der "befallenen" prozesse auf
wie debuggst du deine dlls ? mit "mit prozess verbinden" klappt das nicht so ganz...
edit: n paar push's und pop's haben das problem behoben...ne debug-möglichkeit wär aber trotzdem gut
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Mi 04.05.05 16:45
@retnyg:
du musst auf passen wenn due dll in alle prozesse injezierst, dann darfst du KEINE statsichen imports haben d.h. nur die unit windows einbinden. wenn du die sysutils einbindest, hat windows autoamtisch nen import von der user32.dll die aber nicht in allen prozessen vorhanden ist -> die prozesse crashen.
also musst dir die dynamsch laden oder du schmeist das getdebugprivilege raus dann bekommste auch nur prozesse mit openprocess geöffnet wo auch die user32.dll schon geladen ist.
@mael: ich habe jeden einzelen opcode ausprobiert und in delphi debugged mit
asm
DB $00 $00 $00 $00 $00
end;
usw. da ich immer nur wiedersprüche gefunden habe
b0rg 0.9 hat aber auch tabellen die man benutzen kann aber da stimmt auch einiges nicht,
also ich habs ohne das intelmanuel gemacht
dafür hab ich aber noch die extended code table nicht (0xF0) wenn ich mal zeit habe mach ich daran weiter
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 06.05.05 14:01
und hier nochmal zu zeigen wie mächtig ein globaler hook ist
www.uall.info/pics/textoutw3.JPG
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Fr 06.05.05 14:10
1337 h00k  R4mmst31n r0x  numb/encore auch 
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Sa 07.05.05 13:04
_________________ 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: Sa 07.05.05 20:58
muss nochmal nachhooken...
kannst du ma nen tip zum debuggen der hook-dlls geben ?
und ist ne UnInject funktion geplant ?
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: So 08.05.05 10:41
UnInject hab ich gestern fertig gemacht genau wie UnHook und GlobalInjectLibray / GlobalUnloadLibrary
sources kommen im laufe des tages on
hier ide neuste version die hooken/enthooken kann
und neta auf win9x benutzen sonst crashed es
www.uall.info/files/1337.zip
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
uall@ogc 
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: So 08.05.05 18:12
update:
- added 1337 global hook example (winNT only)
- added GlobalInjectLibrary
- added UnhookCode
- added GlobalUnloadLibrary
- added UnloadLibrary
downloadlink 1. post
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
maps
      
Beiträge: 17
|
Verfasst: Mi 11.05.05 20:35
Sehr beeindruckend, uall!
Auf einen API-Hook wie deinen habe ich schon lange gewartet!
Derzeit spiele ich mit den verschiedensten API-Calls rum, um die gebotenen Möglichkeiten alle überhaupt verstehen zu können.
Jetzt bin ich allerdings bei "GetCursorPos" angelangt und ich weiss nicht, wie ich dort "lpPoint" manipulieren kann.
Hier ist der entsprechende Teil, welcher nicht funktionieren will:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| function myGetCursorPos(lpPoint: Pointer): Boolean; stdcall; var CurPos: TPoint; begin CurPos.X := 123; CurPos.Y := 123; lpPoint := @CurPos; Result := True; end; |
Bei aktiviertem API-Hook bekomme ich allerdings bei "lpPoint" immer X = 0 und Y = 0 ausgegeben - der Pointer hat also nicht funktioniert.
Es wäre schön, wenn du mir weiterhelfen könntest!
Mach weiter so!
Mappelchen
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Mi 11.05.05 20:48
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
maps
      
Beiträge: 17
|
Verfasst: Mi 11.05.05 20:59
Vielen Dank für deine Antwort, retnyg!
Leider bekomme ich bei deinem Vorschlag allerdings die Fehlermeldung
"Left side cannot be assigned to".
Ich benutze Borland Delphi 6 Personal Edition.
Edit:
Dein zweiter Vorschlag wird zwar tadellos kompiliert, jedoch bekomme ich weiterhin X = 0 und Y = 0 ausgegeben.
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Mi 11.05.05 21:10
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
maps
      
Beiträge: 17
|
Verfasst: Mi 11.05.05 21:22
Beide werden zwar ebenfalls fehlerfrei kompiliert, jedoch führen sie mich auch nicht zu dem gewünschten Ziel.
Deine erste Methode bringt meine Anwendung komplett zum Absturz und die zweite gibt wieder nur X/Y = 0 aus.
Ich benutze "uallCollection_08_05_05_1".
|
|