Tout d'abord, toute la Team Hackademy vous souhaite une année 2008 pleine de bonnes choses !
Pour débuter cette année, nous sommes heureux de vous annoncer que le Ezine commence à prendre forme (surtout l'équipe qui dirigera celui-ci) et devrait apparaitre sur le Web début Avril. Cela peut paraitre loin mais nous voulons vraiment faire un Ezine de qualité, cela demande donc beaucoup de préparation.
Pour ceux qui aimeraient publier dans le premier numéro il est encore temps d'envoyer vos articles (au pire il seront pour le prochain numéro) directement à redaction@thehackademy.net.
Autre annonce importante, le premier meeting HZV aura lieu le 16 Février 2008 sur Paris (dans les locaux de Sysdream). Celui-ci sera mensuel et aura pour concept de dispenser une formation d'environ 4h sur divers thèmes choisi par la communauté. Le premier thème abordé sera la sécurité VoIP et sera dispensé par CrashFr. Il vous est possible de réserver vos places en formulant votre demande sur meeting@thehackademy.net. Les meeting sont aussi l'occassion pour ceux qui n'auront pas la chance d'assister à la formation de faire des rencontres avec les autres membres de la communauté. Biensur ce meeting est ouvert à tous et gratuit (seul la limite de place disponible peut vous empecher l'accès; alors faites vite !).
Bonne année et n'oubliez pas: HZV will never die !
|
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
aiolia
Inscrit le: 04 Fév 2008 Messages: 3
|
Posté le: Lun Fév 04, 2008 10:46 am |
Sujet du message: Questions existentielles sur Kernel32.dll
|
|
Salut
J'ai codé une petite routine en assembleur pour récupérer l'adresse d'une fonction dans kernel32.dll sans passer par GetProcAddress.
Je récupère donc l'adresse virtuelle de Kernel32 et à partir de là je parse la mémoire pour retrouver les bonnes infos.
Le pb c'est que normalement, le data directory ( situé après l'optional header ) est censé contenir la RVA de l'export section, or il pointe bien sur l'export section mais celle-ci n'est pas située au début d'une section ( j'ai vérifié les RVA de toutes les sections et aucune ne correspond ). concrètement ça ne me m'empèche pas de bosser à partir de là (ce que j'ai fais d'ailleurs) mais théoriquement je pensais que l'export section était une section en elle même, logiquement elle devrait se trouver au début (ici à l'offset 1000h ou 7c8...h enfin bref, pas à 261c comme c'est le cas actuellement ). J'aimerais bien que qqu'un m'explique ce mystère de la nature car j'avoue que sur ce coup je ne comprend pas trop la logique de Microsoft.
Ah oui une autre question. Comme certains le savent à l'offset fs se trouve le TEB, qui contient lui même un pointeur sur le PEB à l'offset 30h, qui contient lui même un pointeur sur un PEB_LDR_DATA à l'offset 0ch, qui contient lui-même un pointeur sur une LIST_ENTRY à l'offset 1ch. Or cette LIST_ENTRY me laisse un peu perplexe. En farfouillant un peu sur le net j'ai trouvé une doc officieuse qui dit que cette structure possède uniquement 2 LIST_ENTRY* (c'est pas le serpent qui se mord la queue ?). En bref, je n'ai pas trop compris comment ça marchait au début car l'explication était pour le moins embrouillée mais en tatonnant je me suis rendu compte qu'apparemment cette fameuse LIST_ENTRY, en plus de ses 2 pointeurs, posséde également un 3eme membre qui pointe( pour les premiers éléments de la liste) sur des adresses de dlls système. J'ai remarqué que le premier pointeur de la liste référençait une autre liste dont le 3eme élément( celui dont la doc ne fait pas mention ) contenait, ô joie divine, l'adresse de Kernel32.dll . Sans trop chercher à comprendre j'ai donc utilisé cette méthode pour récupérer l'adresse du Saint Graal mais après moult réflexions je me demande si j'ai bien compris le principe et donc si ma méthode est réellement générique, si je ne risque pas d'avoir de pb sur une autre version de XP (je ne parle même pas de Vista ).
Merci d'avance et bonne continuation |
|
| Revenir en haut |
|
 |
|
|