Erreur lors de l'ajout d'une nouvelle section dans un programme de type PE

Le
Pascal Rito
Bonjour tout le monde.

J'ai voulu ces derniers temps mettre sur pieds un packer.
Aprs quelques recherches sur internet, je suis tomb sur cet article
de lilxam (http://lilxam.tuxfamily.org/blog/?p=117).
Aprs avoir fini de coder mon packer avec ses explications, je me
retrouve confront un problme que je n'arrive pas rsoudre.
Ainsi je viens qurir votre aide.

Lors de la cration de la nouvelle section qui contiendra le loader,
mon programme plante sur la fonction memcpy, surement cause d'un
pointeur mal initialis. Et ce serait pNewSection (un
PIMAGE_SECTION_HEADER).
Mais je n'arrive pas savoir pourquoi il est mal initialis. Et parce
qu'il y a une ligne dans le code de lilxam que je n'arrive
comprendre, et qui, je pense, est en rapport avec mon problme.
Mais je n'affirme rien.

Ainsi je me retrouve avec cette fonction : http://pastebin.com/m708df224
Avec GetSectionHeader une fonction me retournant la SectionHeader du
fichier, GetFileHeader, la COFF et GetOptionalHeader,
l'OptionalHeader.

Ce que je tiens pour sr est que ce n'est pas le fichier qui est mis
en cause (il est bien ouvert, et mapp en mmoire avec succs).

Alors sauriez-vous pourquoi mon programme plante la ligne 20 du code
fourni ? Et si possible m'expliquer la ligne 18 que je ne comprends
pas trs bien.

Amicalement votre. Pascal.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal Rito
Le #21223391
Je poste à nouveau un message car j'ai tenté de m'y prendre autrement
pour ajouter ma section mais je me retrouve toujours avec un SIGSEV
lorsque je tente de modifier les champs de la section.
Je vous passe le lien vers le code en question pour illustrer mes
propos et pour j'espère, obtenir une solution.

Voici le lien : http://pastebin.com/mfcb8987

J'ai vérifié plusieurs choses dans mon code et j'en suis arrivé là :
-le problème ne vient pas du mappage en mémoire du fichier, car il est
accompli correctement
-le problème ne vient pas de GetCOFFHeader
-le problème ne vient pas de GetOptionalHeader
-le problème ne vient pas de GetSectionHeader
-le SIGSEV provient de la ligne 30

Donc j'ai l'intime conviction que ma pMyNewSection est mal initialisée
mais je ne comprends pas pourquoi.

Pourrez-vous m'aider ?
Fred
Le #21224071
"Pascal Rito"

Donc j'ai l'intime conviction que ma pMyNewSection est mal initialisée
mais je ne comprends pas pourquoi.



J'ai pas regardé, mais tu devrais t'inspirer de cet exemple :
http://www.programmersheaven.com/2/PE-Protector
Pascal Rito
Le #21224301
On 18 fév, 16:38, "Fred"
"Pascal Rito"

>Donc j'ai l'intime conviction que ma pMyNewSection est mal initialisée
>mais je ne comprends pas pourquoi.

J'ai pas regardé, mais tu devrais t'inspirer de cet exemple :http://www .programmersheaven.com/2/PE-Protector



Merci pour ce lien qui est très complet, mais il ne répond pas à mes
attentes.
Ce que je voudrais comprendre, pour moi, c'est pourquoi mon
PIMAGE_SECTION_HEADER m'offre un généreux segment fault dès que je
veux changer l'une de ses valeurs.

En espérant trouver une réponse.
Pascal.
Publicité
Poster une réponse
Anonyme