| |
|
|
| comment peux je dans MASM Funktionen aus einer fremden DLL appel? |
|
|
| |
|
|
|
Frank Abbing | Call et mittels des Macros Scall. |
|
|
| |
|
|
|
| trop Call besoin je une Adresse - richtig? Mmmh... GetProcAdress peux je dans einem Treiber pas benutzen, zur Not pourrait je mais qui nécessaire Adressen im Usermode ermitteln un à den Treiber sur donner... |
|
|
| |
|
|
|
Frank Abbing | si du trop qui Dll aucun Libray besitzt, musst du GetProcAdress() benutzen, richtig. il y a aussi Tools, qui aus einer Dll une Library erzeugen. peut-être devrait du la fois dans cette direction ermitteln. |
|
|
| |
|
|
|
| und dir um une Funktion aus qui NTDLL. qui LIB et INC habe je - là je mais gleichzeitig qui LIB et INC qui NTOSKRNL.EXE benutzen doit et avec cela ensuite quelques Sachen doppelt deklariert volonté, sais je pas oui c'est ca, si es irgendwo peut-être crasht. Sollte es Probleme donner, bräuchte je une Workarround sans LIB et INC. là qui NTDLL dans chaque Prozess à qui selbe Adresse geladen wird, devrait es sur CALL et qui Ermittlung qui Adresse im Usermode eigentlich marcher. |
|
|
| |
|
|
|
Frank Abbing | cela muss du testen, si deine beiden Incs kollidieren. il y a aussi une Possibilité per Extern-définition. avec cela peux du qui Libraries comment gewohnt einbinden. Anstelle qui herkömmlichen Inc-Dossier peux du dir une neue Inc-Dossier bricoler, qui so aussieht:
externdef _imp__Funktionname@0TR pr4 Funktionname equ <_imp__Funktionname@0>
So verfährst du avec allen Funktionen, qui du dans deinem Programme appel veux, wobei PTR pr4 le nombre qui paramètre angibt, quelle qui Funktion nécessaire. dans diesem Beispiel alors 4. Funktionen, qui so deklariert volonté, peux du entier normal avec Invoke appel. |
|
|
| |
|
|
|
| allô Frank...
So, je dois call verwenden, cela steht maintenant fest. la hâte du la fois un kleines Beispiel pour call, chez dem une API avec mehreren Funktionen aufgerufen wird (z.B. Messagebox erzeugen)?
Salut
Andreas |
|
|
| |
|
|
|
| Params simple renversé sur den Stack saisir. MessageBoxApi hat 4 paramètre?
|
|
|
| |
|
|
|
| Moin... oui c'est ca verstanden, quoi je savons voulais. qui erste paramètre doit alors zuletzt draufgepackt werde, avec cela il d'abord wieder heruntergeholt volonté peux - richtig?
comme enfant hat es mir toujours am meisten Amusement gemacht, qui Bauklötze de unten aus dem Turm trop tirer - mais ici ist cela irgendwie wohl pas angebracht .
|
|
|
| |
|
|
|
RGH | [quote-part:95081de37f=Andreas Hötker]comme enfant hat es mir toujours am meisten Amusement gemacht, qui Bauklötze de unten aus dem Turm trop tirer - mais ici ist cela irgendwie wohl pas angebracht . [/quote-part:95081de37f] je denke, cela hat déjà autrefois trop wunderbaren Abstürzen geführt! ;)
Salut 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 | trop Call gibt es un Macro, SCall. avec cela peux du qui paramètre comment chez Invoke angeben. avec seulement leichten Einschränkungen:
Scall MACRO nom: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 nom
ENDM
Scall Messagebox, a, b, c, d |
|
|
| |
|
|
|
| Hab call et push pris, allez wunderbar. qui Adresse habe je dem Treiber aus qui Usermode Komponente transfert.
Besten Dank
Andreas |
|
|
| |
|
|