Séquence Nostalgie : Flags

Vous avez un problème pour cracker ou vous souhaitez parler de reversing en général...

Séquence Nostalgie : Flags

Messagepar Crackvador » 19 Mars 2017, 17:29

Bonjour à tous,

Je reviens un peu à ce qui m'a occupé des dizaines d'heures (à moins que cela ne soit des centaines), mais c’était il y a déjà quelques années. :arf:

Donc je remets de l'huile dans les articulations de mes doigts et reprends du début, histoire de me remettre dans le bain.
Je suis un peu penaud d'avoir dormi depuis. :gné:

Cela étant, j'ai honte de dire que je bute sur un truc bête. :boulet:

Sur du manual unpacking UPX, je n'arrive plus à savoir comment modifier le flag dans la Section Header.
Sans problèmes, j'obtiens un fichier décompacté mais malgré la modification du VOffset (soit d'UPX0 ou d'UPX1 selon le cas étudié), je ne suis plus fluide dans la technique.
Je n'arrive pas plus à aligner les sections ? :...:

Petite précision, j'étudie un ancien tuto de elooo qui indique :
(Characteristics Flags = CODE, INITIALIZED_DATA, UNINITIALIZED_DATA, MEM_EXECUTE, MEM_READ et MEM_WRITE).

Là, je décroche : une idée pour que je me remette sur les rails ?

Merci d'avance.
P.S. Unpacker automatiquement ne m'intéresse pas.
Celui qui aime à apprendre est bien près du savoir. [Confucius]
Avatar de l’utilisateur
Crackvador
Visiteur
Visiteur
 
Messages: 19
Inscription: 09 Février 2009, 21:09

Re: Séquence Nostalgie : Flags

Messagepar dionosis » 19 Mars 2017, 18:08

Salut,

Crackvador a écrit:Je n'arrive pas plus à aligner les sections ?

C'est à dire ?

Explique nous précisément le problème stp, valeurs à l'appui, parce que normalement tu ne devrais pas avoir à faire ça à moins d'essayer de reconstruire complètement l'exe dans sa forme originale.

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: Séquence Nostalgie : Flags

Messagepar Crackvador » 19 Mars 2017, 18:45

Pardon, je m'exprime peut-être mal an parlant d'alignement des sections.

Voici le lien du crackme et de son tuto : hxxp://festouilles.free.fr/elooo_-_UPXUnpackme_Clandestino.zip

Dans ses explications, elooo indique :
Si on veut pouvoir voir du code et des String Data References, ainsi que pouvoir écrire dans la section qui contient l'OEP, il va falloir changer la valeur de flags attribuée à cette section en E00000E0 (Characteristics Flags = CODE, INITIALIZED_DATA, UNINITIALIZED_DATA, MEM_EXECUTE, MEM_READ et MEM_WRITE).


D'où sort cette valeur (E00000E0) ?
Et surtout comment est-elle calculée ?
Celui qui aime à apprendre est bien près du savoir. [Confucius]
Avatar de l’utilisateur
Crackvador
Visiteur
Visiteur
 
Messages: 19
Inscription: 09 Février 2009, 21:09

Re: Séquence Nostalgie : Flags

Messagepar eabcdx » 19 Mars 2017, 19:08

Salut,

cette valeur est le résultat d'un ensemble d'autres valeurs qui ont été ORed (le OR en binaire) entre elles (typiquement CODE | INITIALIZED_DATA | MEM_EXECUTE | MEM_READ | MEM_WRITE | etc...).
Cette page sur les constantes de protection mémoire t'indique la valeur de certains flags. En les ORant entre eux, tu pourras comprendre pourquoi 0xE00000E0 signifie CODE, INITIALIZED_DATA, UNINITIALIZED_DATA, MEM_EXECUTE, MEM_READ et MEM_WRITE.
eabcdx
Crackeur de bas niveau
Crackeur de bas niveau
 
Messages: 131
Inscription: 03 Novembre 2012, 14:44

Re: Séquence Nostalgie : Flags

Messagepar Crackvador » 19 Mars 2017, 19:22

Est-ce que le changement de flag est ABSOLUMENT indispensable pour voir les String Data References ?

Je ne me souviens pas que dans les tutos de Manual Unpacking UPX, il ait été fait, A CHAQUE FOIS, référence aux ORed.
Peux-tu m'en dire plus ?

Je vais regarder tranquillement le lien que tu m'as indiqué.
Celui qui aime à apprendre est bien près du savoir. [Confucius]
Avatar de l’utilisateur
Crackvador
Visiteur
Visiteur
 
Messages: 19
Inscription: 09 Février 2009, 21:09

Re: Séquence Nostalgie : Flags

Messagepar dionosis » 19 Mars 2017, 19:55

Salut,

Ce sont des flags mono-bit.

Habituellement on les exprime en ORant des valeurs base 16 comme expliqué par eabcdx.
Toutes les valeurs sont publiquement disponibles <ICI> d'ailleurs.

Tu peux aussi les voir en base 2 et en additions, ça sera peut-être plus parlant.

Dans ton cas les valeurs sont :
msdn a écrit:IMAGE_SCN_CNT_CODE = 0x00000020 = 2^5 (0010000b)
IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040 = 2^6
IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080 = 2^7
IMAGE_SCN_MEM_EXECUTE = 0x20000000 = 2^29
IMAGE_SCN_MEM_READ = 0x40000000 = 2^30
IMAGE_SCN_MEM_WRITE = 0x80000000 = 2^31


(2^5) + (2^6) + (2^7) + (2^29) + (2^30) + (2^31) = 3758096608 = 0xE00000E0

Si on ne s'en servait déjà pas beaucoup avant c'est probablement parce qu'il te suffit de cliquer sur le bouton "..." à côté dans LordPe pour choisir tes flags et le soft calcule la valeur pour toi.
Aujourd'hui les dumpers modernes font ce travaille automatiquement donc c'est encore moins d'actualité.

A part ça je pense que tu as oublié "merci eabcdx" et "stp" dans ton post précédent.

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: Séquence Nostalgie : Flags

Messagepar Crackvador » 19 Mars 2017, 21:27

Désolé si je n'ai pas assez insisté sur les formules de politesse, je m'en excuse.
Je croyais avoir indiqué dans le début du post "Merci d'avance".

Je suis resté concentré sur les conseils que vous me donniez et ai manqué de me confondre en remerciements.
J'essayais de comprendre rapidement pour ne pas poser de questions stupides, surcharger mon fil. et vous faire perdre du temps.

Il va de soi qu'avant de placer "résolu" sur ce sujet, j'aurais remercié chacun d'entre vous pour le temps qu'il m'a consacré.

A mon tour donc, dyonosis, de te demander de ne pas préjuger d'une éventuelle impolitesse de ma part.

Merci très sincèrement à eabcdx et également à toi dyonosis.
Celui qui aime à apprendre est bien près du savoir. [Confucius]
Avatar de l’utilisateur
Crackvador
Visiteur
Visiteur
 
Messages: 19
Inscription: 09 Février 2009, 21:09

Re: Séquence Nostalgie : Flags

Messagepar dionosis » 20 Mars 2017, 01:12

Salut,

Crackvador a écrit:Je croyais avoir indiqué dans le début du post "Merci d'avance"

Transpose ça dans la vie de tous les jours à une situation identique (qui aide qui ?, combien vais je payer cette personne ? quel intérêt cette personne a t'elle à m'aider ?) et il te semblera évident que ça n'est pas suffisant.
Je pense que surtout à l'écrit, où ni intonation ni langage corporel ne sont présents, c'est très important (la conversation n'étant par ailleurs pas suivie). :)

Crackvador a écrit:surcharger mon fil. et vous faire perdre du temps

Taper 'merci' et 'svp' ne fait ni l'un ni l'autre, ni pour toi ni pour nous, et ça signifie efficacement la gratitude. 8)

Crackvador a écrit:A mon tour donc, dyonosis, de te demander de ne pas préjuger d'une éventuelle impolitesse de ma part

Pas de soucis t'inquiète. On a l'habitude de voir bien pire.

Essaye d'aller au bout de ton tuto, et surtout essaie ensuite de le faire comme réellement attendu, ça sera très instructif.

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43


Retourner vers Reversing

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités