Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

3 réponses
Avatar
Pascal Rito
Bonjour tout le monde.

J'ai voulu ces derniers temps mettre sur pieds un packer.
Apr=E8s quelques recherches sur internet, je suis tomb=E9 sur cet article
de lilxam (http://lilxam.tuxfamily.org/blog/?p=3D117).
Apr=E8s avoir fini de coder mon packer avec ses explications, je me
retrouve confront=E9 =E0 un probl=E8me que je n'arrive pas =E0 r=E9soudre.
Ainsi je viens qu=E9rir votre aide.

Lors de la cr=E9ation de la nouvelle section qui contiendra le loader,
mon programme plante sur la fonction memcpy, surement =E0 cause d'un
pointeur mal initialis=E9. Et ce serait pNewSection (un
PIMAGE_SECTION_HEADER).
Mais je n'arrive pas =E0 savoir pourquoi il est mal initialis=E9. Et parce
qu'il y a une ligne dans le code de lilxam que je n'arrive =E0
comprendre, et qui, je pense, est en rapport avec mon probl=E8me.
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 s=FBr est que ce n'est pas le fichier qui est mis
en cause (il est bien ouvert, et mapp=E9 en m=E9moire avec succ=E9s).

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

Amicalement votre. Pascal.

3 réponses

Avatar
Pascal Rito
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 ?
Avatar
Fred
"Pascal Rito" a écrit dans le message de news:


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
Avatar
Pascal Rito
On 18 fév, 16:38, "Fred" wrote:
"Pascal Rito" a écrit dans le message de news:


>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.