| |
|
|
- page 1 - |
|
| allô alle zusammen...
dedans de Windows sommes quelques Zaubereien possible, qui normalement gar pas marcher devrait. une en ist qui DLL Einschleusung dans fremde Prozesse. je denke, le moi une weitere Possibilité qui DLL-injection aussi avec Profan hinbekomme. Sollte on que voici posten??? |
|
|
| |
|
|
| |
|
- page 3 - |
|
|
Frank Abbing | qui verwendet aussi seulement GDI... |
|
|
| |
|
|
|
| Nochmals zum Subclassing => bereits GetWindowLong pour qui Fensterprozedur lief autrefois chez mir ins le vide. Hatte pour folgende Erklärung: Wäre es possible, la fenêtre fremder Anwendungen sans weiteres trop subclassen, pourrait on per Message direct une beliebige API-Funktion ou bien Adresse anspringen et, ähnlich comment chez qui Shatter Attacke, cela Sicherheitssystem ausschalten um Avancé Privilegien trop conservé. seul aus diesem Grund pourrait un Subclassing fremder la fenêtre eigentlich pas marcher... |
|
|
| |
|
|
|
Frank Abbing | Klingt absolu logisch. et wird wohl so son. |
|
|
| |
|
|
|
Sebastian König | [quote-part:4e9eea8f3c]Nochmals zum Subclassing => bereits GetWindowLong pour qui Fensterprozedur lief autrefois chez mir ins le vide. Hatte pour folgende Erklärung:[/quote-part:4e9eea8f3c] allô Andreas,
quoi oui c'est ca hattest Du car versucht? simple avec SetWindowLong() qui la fenêtre-Procédure eines fremden Fensters sur une XProfan-CallBack-Funktion [via ProcAddr()] trop mettons? ou bien hattest Du déjà une Funktions-Adresse dedans des fremden Prozesses par DLL-Injection zur Disposition?
MfG
Sebastian |
|
|
| |
|
|
|
| allô Sebastian...
Vorneweg => und dir ici um NT-basierende Systeme, alors um 2000 et XP avant allem, getestet habe je avec Windows2000 Servicepack 2: KompilierenMarqueSéparationDef @GetWindowLong(2) !"USER32","GetWindowLongA"
Def @GetWindowThreadProcessId(2) !"USER32","GetWindowThreadProcessId"
DEF @GetDlgCtrlID(1) !"USER32","GetDlgCtrlID"
DEF @ButtonClicked(1) @GetDlgCtrlID(@&(1))=-%MENUITEM
DEF @AHFormatMessage(7) !"KERNEL32","FormatMessageA"
Def @GetCurrentProcessID(0) !"KERNEL32","GetCurrentProcessId"
Def @GetCurrentThreadId(0) !"KERNEL32","GetCurrentThreadId"
Def @GetLastError(0) !"KERNEL32","GetLastError"
Def @SetLastError(1) !"KERNEL32","SetLastError"
Declare AHRückgabe&,AHGETERROR_Buffer#,AHGETERROR_Buffer$
Declare Button&,Fenstertitel$,Fensterhandle&,Prozess_ID&,Thread_ID&,Prozeduradresse&
Windowstyle 31
Window 0,0-640,440
Windowtitle "Fensterprozedur ermitteln"
Let Button&=@Create("Button",%HWND,"Fenster auslesen",100,10,300,30)
While 0=0
Waitinput
IF @ButtonClicked(Button&)
Clearlist
ADDWINDOWS ""
LET Fenstertitel$=@LIstBox$("Fenstertitel (biite ein Fenster auswählen):",3)
IF Fenstertitel$<>""
LET Fensterhandle&=@FindWindow(Fenstertitel$)
LET Thread_ID&=@GetWindowThreadProcessId(Fensterhandle&,@ADDR(Prozess_ID&))
@SetLastError(0)
LET Prozeduradresse&=@GetWindowLong(Fensterhandle&,$FFFFFFFC)
Let AHRückgabe&=@GetLastError()
Fehlercode_bestimmen
CLS
Locate 5,0
Print "Name des Fensters: "+Fenstertitel$
Print "Handle des Fensters: "+@STR$(Fensterhandle&)
Print "Ausgelesene Adresse der Fensterprozedur: "+@STR$(Prozeduradresse&)
Print "Letzter API Fehler: "+@STR$(AHRückgabe&)
Print "API Meldung: "+AHGETERROR_Buffer$
Print "ID des erzeugenden Prozesses: "+@STR$(Prozess_ID&)
Print "ID meines Prozesses: "+@STR$(@int(@GetCurrentProcessID()))
Print "ID des erzeugenden Threads: "+@STR$(Thread_ID&)
Print "ID meines Threads: "+@STR$(@int(@GetCurrentThreadID()))
endif
endif
Wend
Proc Fehlercode_bestimmen
DIM AHGETERROR_Buffer#,32000
@AHFormatMessage($1000,0,AHRückgabe&,0,AHGETERROR_Buffer#,32000,0) Wandelt Fehlercode in Landesspezifische Message um.
Let AHGETERROR_Buffer$=@STRING$(AHGETERROR_Buffer#,0)
Dispose AHGETERROR_Buffer#
/../function-references/XProfan/endproc/'>ENDPROC
Comme je le disais, si Subclassing de Windows fremder Prozesse sans DLL injection sur neueren NT-basierenden Systemen wirklich marcher serait, serait mich cela très erschrecken, car es wäre pour mich avec Sicherheit ne...aucune Problem dedans moins Minuten un Programme trop écrivons, quoi alle aktuellen Windowsversionen sicherheitstechnisch aushebelt (comment chez Shatter). |
|
|
| |
|
|
|
Sebastian König | allô Andreas,
[quote-part:e603eb83d3]Comme je le disais, si Subclassing de Windows fremder Prozesse sans DLL injection sur neueren NT-basierenden Systemen wirklich marcher serait, serait mich cela très erschrecken, car es wäre pour mich avec Sicherheit ne...aucune Problem dedans moins Minuten un Programme trop écrivons, quoi alle aktuellen Windowsversionen sicherheitstechnisch aushebelt (comment chez Shatter).[/quote-part:e603eb83d3] abgesehen en, dass qui GetWindowLong()-Aufruf [et avec cela sûrement aussi SetWindowLong()] pour cela fremde la fenêtre erfreulicherweise fehlschlägt, gibt es oui zum Glück aussi encore cela prinzipielle Hindernis qui getrennten Adressräume pour verschiedene Prozesse (pas seulement sous WinNT/2000/XP mais grundsätzlich depuis Win95).
mais weil Du so betonst, dass es Dir um NT-basierte Systeme allez: Funktioniert cela Lecture avec GetWindowLong() sous Win9x/ME réellement?
MfG
Sebastian |
|
|
| |
|
|
|
| [quote-part:8a5d6faacd=Sebastian König]allô Andreas,
abgesehen en, dass qui GetWindowLong()-Aufruf [et avec cela sûrement aussi SetWindowLong()] pour cela fremde la fenêtre erfreulicherweise fehlschlägt, [/quote-part:8a5d6faacd] oui, c'est wirklich erfreulich. SetWindowLong schlägt naturellement (zum Glück) aussi fehl.
[quote-part:8a5d6faacd=Sebastian König] gibt es oui zum Glück aussi encore cela prinzipielle Hindernis qui getrennten Adressräume pour verschiedene Prozesse (pas seulement sous WinNT/2000/XP mais grundsätzlich depuis Win95). [/quote-part:8a5d6faacd] si es tout autor allez, Windows trop knacken, läßt sich cela sans Probleme tourner autour de - genauer dit, il peut cela sauf huit laisser. cela hatte qui Autor qui Shatter Attacke autrefois aussi pas gesehen - MS scheint cela mais zum Glück encore erkannt trop avons.
[quote-part:8a5d6faacd=Sebastian König] mais weil Du so betonst, dass es Dir um NT-basierte Systeme allez: Funktioniert cela Lecture avec GetWindowLong() sous Win9x/ME réellement?
MfG
Sebastian[/quote-part:8a5d6faacd] définitif oui! là ici sowieso aucun unterschiedlichen Rechte vorhanden sommes, wurde cela wohl sauf huit gelassen. |
|
|
| |
|
|
|
| ah oui - apopo sauf huit laisser: comme mon großer frère son ABI nachgemacht hat, hat il sich gedacht, il peut allemande sauf huit laisser - et ist ensuite partiellement gar pas le Prüfungen erschienen . aujourd'hui hat il une Doktortitel dans einem Informatikbereich. Fazit: si on chez allem, quoi on tut überlegt, quoi on calme sous den Tisch balayer peux, venez on im vivre wesentlich plus ...
Beste Gruße
Andreas (qui maintenant sa Katzen füttern allez) |
|
|
| |
|
|
|
| Ist eh bien doch dans [...] drin => Exportfunktionen dans peut eh bien dans fremden Prozessen angesprochen volonté, d.h. je peux quasi de außen bestimmen, quoi dans einem Prozess geschieht. quelques Einschränkung: qui Funktion darf seulement une paramètre avons. Ausreichend Rechte doit sur den jeweiligen Prozess vorhanden son.
comment allez cela? Wir starten d'abord Wordpad et après [...] . comme nächstes regarder wird uns im ersten Fil de Wordpad qui la fenêtre à, un merken uns cela Hauptfensterhandle. après klicken wir wieder aud den Wordpad Prozess et klicken avec qui rechten Bouton de la souris ins Treeview. [...]
Pour dem Klick aud DLL einschleusen voyons wir que voici... [...] ...et choisir la fois wieder Franks ProSpeed.DLL aus , qui après sous dem Prozess de Wordpad wiederzufinden ist. [...]
maintenant choisir wir im Listview qui Registrierkarte objet-Infos qui Funktion Version aus et klicken après avec qui rechten Bouton de la souris ins Listview. [...]
maintenant Funktion dans fremdem Prozess effectuer Vous pouvez. Im ensuite erscheinenden Dialog ins Éditer cela Handle des Wordpad Fensters eingeben. [...]
après Funktion effectuer Vous pouvez. cela gibts comme Ergebnis: [...] |
|
|
| |
|
|
|
| pas uninteressant zum Thema: [...] |
|
|
| |
|
|
|
| allô IF...
bien trouvé, doch und dir einfacher et sicherer (dans qui Funktion) - on arbeitet oui pas plus avec Windows98 ... Zur Speicheraufteilung entspricht cela dem, quoi on avec [...] nachvollziehen peux. Insgesammt qui beste Erklärung trop dem Thema, qui je jusqu'alors gesehen habe. |
|
|
| |
|
|
|
| je habs im Augenblick seulement vite survolés, mais chez IFs Link c'est moi un paragraphe doch quelque chose acide aufgestoßen: [quote-part:196bfa3cd0] même chose procéder, alors Code dans plusieurs virtuelle Adressräume gleichzeitig einzublenden, wendet Windows chez DLL à, qui oui à plusieurs Prozesse gleichzeitig attaché son peut. car c'est oui justement einer qui Vorzüge einer DLL: il peut den de mehreren Anwendungen nécessaire Code dans DLL bündeln et ensuite plan cette Code seulement einmal dans den physischen grenier magasin, quoique il de mehreren unabhängigen Prozessen verwendet wird. Dadurch peux immense grenier gespart volonté. ca ist wohl einer qui Gründe pourquoi un Großteil des Windowsbetriebssystems sur qui DLL-technologie basé. [/quote-part:196bfa3cd0] cela bedeutet pour mich: Windows invite z.B. qui NTDLL.DLL, et si un anderer Prozess cet également invite,, zeigt qui virtuelle Prozessspeicher à qui gleiche reale RAM-Adresse. mais ist cela wirlich so? aussi cela peux on avec TNT très simple überprüfen: 1.) WORDPAD starten. 2.) avec TNT un Byte im virtuellen Prozessspeicher de WORDPAD changement, cela dedans des geladenen Moduls NTDLL.DLL liegt. Ist cet Changement aussi dans andern Prozessen trop voyons? si dem so wäre, wäre cela qui catastrophe sous NT - et dem wird wohl (hoffentlich) pas so son. |
|
|
| |
|
|