Declaration externe + news Kmdkit

cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 - 2 déc. 2005 à 12:08
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 - 4 janv. 2006 à 23:56
salut,

du nouveau pour les fondus de ring 0 sous NT:
http://www.website.masmforum.com/tutorials/kmdtute/
( kmd = kernel mode drivers )


avec masm32,

souhaitant obtenir l'adresse d'une fonction importée, j'ai fait.
mov eax,[NomFonctionImportee] ; j'obtient l'adresse du jmp pd[IAT_Entry]
mov eax,[eax+2] ; j'obtient l'adresse de IAT_Entry
mov eax,[eax] ; j'ai enfin l'adresse de la fonction.

est-il possible par une declaration d'avoir directement l'adresse IAT_Entry en tant que label ? ( mov eax,[NomFonctionImportee] = mov eax,[IAT_Entry] )

j'ai dejà essayé /MERGE:.rdata .text

@++

2 réponses

BLUEBIBUBBLE Messages postés 116 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 10 avril 2013 1
4 janv. 2006 à 20:23
Je ne suis pas sur d'avoir bien compris ta question:
Pourquoi pas utilisé une MACRO du genre:

FuncImport MACRO NomFonction
mov eax, OFFSET NomFonction
mov eax,[eax+2]
mov eax,[eax]
ENDM

Puis dans le code:

.CODE
FuncImport NomFonctionImportee
call eax ;Intégrer le call dans la Macro ?



surement /MERGE:.rdata = .text ?
A+
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
4 janv. 2006 à 23:56
salut,

c'est bien /MERGE:.rdata = .text

ce n'est pas une macro que je cherche. c'est une ligne de code en moins:
l'exe mappé dont on parlait justement:

HEADERS
...
IAT
dd &MyImportFunc
dd &?
...
CODE
start:
mov eax,MyImportFunc ; donnera eax = &Here_a_jump
mov eax,[eax+2] ; donnera eax = &IAT[0]
mov eax,[eax] ; donnera eax = &MyImportFunc
Here_a_jump:
jmp pd [&IAT[0]] ; jump correspondant a MyImportFunc

je veux que le symbol MyImportFunc donne directement &IAT[0] pour supprimer Here_a_jump.

et le code:
mov eax,MyImportFunc ; donnera eax = &IAT[0]
mov eax,[eax] ; donnera eax = &MyImportFunc

je sais que c'est possible pour l'avoir vu dans un programme mais je ne sais pas comment le déclarer au niveau du source.

@++
0
Rejoignez-nous