cs_joanna
Messages postés3Date d'inscriptiondimanche 11 mai 2003StatutMembreDernière intervention11 mai 2003
-
11 mai 2003 à 12:58
CoreBreaker
Messages postés540Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 5 octobre 2007
-
11 mai 2003 à 18:29
Voici le code qui devrait récupérer l'adresse de la fonction "GetProcessAddress" connaissant l'ImageBase du module "kernel32.dll".
Malheureusement à la ligne ### le programme plante. Tout ce que je sais pour le moment c'est qu'une exception est levée parce que je tente de lire à une adresse non valide.
Ce code ayant été récupéré d'un tutorial d'un pro en asm et cracking, je ne vois pas ce qui cloche.
;ModuleA=ImageBase du module kernel32.dll
;ExportTableA=Adresse absolue de la table des exportations
;AddFunc=Adresse absolue du tableau contenant les RVAs des fonctions
;AddName=Adresse absolue du tableau contenant les RVAs des noms des fonctions
;AddOdr=Adresse absolue du tableau contenant les numéros d'ordre des fonctions
;limit=nombre de fonctions exportées par le module
;Nindex=Adresse absolue dans le tableau contenant les RVAs des noms des fonctions
------------------------------------------------------------------
;on récupère les infos essentielles depuis la table des exportations
CoreBreaker
Messages postés540Date d'inscriptiondimanche 23 mars 2003StatutMembreDernière intervention 5 octobre 20071 11 mai 2003 à 18:29
Effectivement le segment DS n'a pas accès cet espace mémoire car c'est de la mémoire de niveau DPL 0 or le champs RPL dans DS pour une application est de 3 tu n'a donc pas les droits d'accès. Il faut que tu alloues un segment qui a un DPL de 3 mais là je ne sais pas comment faire sous Windows. Pour moi c'est impossible car sinon ce serait facile de détruire de noyau de Windows (par un virus par exemple).