| |
|
|
| ¿Cómo se puede Yo en MASM Características de uno fremden DLL aufrufen? |
|
|
| |
|
|
|
Frank Abbing | Call y mittels des Macros Scall. |
|
|
| |
|
|
|
| Zu Call necesidad Yo una Adresse - correcto? Mmmh... GetProcAdress kann Yo en un Treiber no benutzen, a Not podría Yo aber el benötigten Adressen en el Usermode ermitteln un a el Treiber encima geben... |
|
|
| |
|
|
|
Frank Abbing | Wenn du a el Dll no Libray besitzt, musst du GetProcAdress() benutzen, correcto. Lo son auch Tools, de uno Dll una Library erzeugen. Tal vez solltest du veces en dieser Richtung ermitteln. |
|
|
| |
|
|
|
| Lo va una Función de el NTDLL. El LIB y INC Yo - como Yo aber gleichzeitig el LIB y INC el NTOSKRNL.EXE benutzen muß y así entonces algunos Sachen doppelt deklariert voluntad, weiß Yo no genau, si irgendwo tal vez crasht. Sollte lo Problemas geben, bräuchte Soy un Workarround sin LIB y INC. Como el NTDLL en cada Prozess a el selbe Adresse geladen se, müßte lo encima CALL y el Ermittlung el Adresse en el Usermode eigentlich trabajo. |
|
|
| |
|
|
|
Frank Abbing | Das muss du testen, si deine beiden Incs kollidieren. Lo son auch una Möglichkeit por Extern-Definition. Damit kannst du el Libraries como gewohnt einbinden. Anstelle el herkömmlichen Inc-Expediente kannst du dir una neue Inc-Expediente remendar, el así aussieht:
externdef _imp__Funktionname@0TR pr4 Funktionname equ <_imp__Funktionname@0>
So verfährst du con allen Características, el du en deinem Programa aufrufen willst, wobei PTR pr4 el número el Parámetro angibt, welche el Función benötigt. In diesem Ejemplo also 4. Características, el así deklariert voluntad, kannst du bastante normal con Invoke aufrufen. |
|
|
| |
|
|
|
| ¡Hola Franco...
So, Yo muß call uso, el es ahora fest. Hast du veces una kleines Ejemplo para call, en el una API con más Características aufgerufen se (z.B. Messagebox erzeugen)?
Saludo
Andreas |
|
|
| |
|
|
|
| Params simplemente umgekehrt en el Stack packen. MessageBoxApi ha 4 Parámetro?
|
|
|
| |
|
|
|
| Moin... genau verstanden, Yo wissen quería. Der erste Parámetro muß also zuletzt draufgepackt voluntad, así él zuerst otra vez heruntergeholt voluntad kann - correcto?
Als Kind ha lo me siempre al meisten Spaß gemacht, el Bauklötze de unten de el Turm a ziehen - aber hier es el irgendwie probablemente no adecuado .
|
|
|
| |
|
|
|
RGH | [quote:95081de37f=Andreas Hötker]Als Kind ha lo me siempre al meisten Spaß gemacht, el Bauklötze de unten de el Turm a ziehen - aber hier es el irgendwie probablemente no adecuado . [/quote:95081de37f] Yo denke, el ha ya damals a wunderbaren Abstürzen geführt! ;)
Saludo Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 28.11.2006 ▲ |
|
|
|
|
Frank Abbing | Zu Call hay una Macro, SCall. Damit kannst du el Parámetro como en Invoke angeben. Mit sólo leichten Einschränkungen:
Scall MACRO name:REQ,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22
FOR arg,<p22,p21,p20,p19,p18,p17,p16,p15,p14,p13,p12,p11,p10,p9,p8,p7,p6,p5,p4,p3,p2,p1>
IFNB <arg>
push arg
ENDIF
ENDM
call name
ENDM
Scall Messagebox, a, b, c, d |
|
|
| |
|
|
|
| Hab call y push genommen, va wunderbar. El Adresse Yo el Treiber de el Usermode Komponente transferencia.
Besten Dank
Andreas |
|
|
| |
|
|