Décompilation fichier objet

[Vezøul]Numerø41

Membre expert
Club MacG
1 Septembre 2005
4 829
369
DTC
www.vesoul.fr
A part les fichiers interprétés comme pour Java tu ne peux pas "décompiler" des fichiers objets. Le mieux que tu puisse faire est de les désassembler et de te taper le code assembleur souvent bien bourrin et casse tête. Ou si tu connais bien l'hexadécimal, le lire avec un éditeur prévu à cet effet. :p :D :D
 

Any

Membre actif
23 Février 2009
170
10
32
toulouse
[Vezøul]Numerø41;5438189 a dit:
A part les fichiers interprétés comme pour Java tu ne peux pas "décompiler" des fichiers objets. Le mieux que tu puisse faire est de les désassembler et de te taper le code assembleur souvent bien bourrin et casse tête. Ou si tu connais bien l'hexadécimal, le lire avec un éditeur prévu à cet effet. :p :D :D

Merci tu as des logiciel pour avoir le code en assembleur ou en hexadécimal?

Je pense m'en sortir jai des base en assembleur et le fichier .o ne contient que le corps de fonction de base !
 

[Vezøul]Numerø41

Membre expert
Club MacG
1 Septembre 2005
4 829
369
DTC
www.vesoul.fr
Tiens voilà ce que c'est en français : http://www.cpt.univ-mrs.fr/info/Guide_Rootard-13.html

Bref, depuis bien longtemps sur Linux le format ELF (Executable and Linkable Format) est supporté pour le link, je ne comprend pas pourquoi ils se posent la question sur Yaronet, à moins qu'ils utilisent encore les premières versions de RedHat ou Debian. :p :D :D
 

chombier

Membre confirmé
17 Novembre 2009
15
0
Merci tu as des logiciel pour avoir le code en assembleur ou en hexadécimal?

Je pense m'en sortir jai des base en assembleur et le fichier .o ne contient que le corps de fonction de base !
Pour désassembler un fichier objet mach-o sous Mac OS X, la commande à employer est "otool"
Bloc de code:
$ otool -tvV /usr/lib/crt1.o
/usr/lib/crt1.o:
(__TEXT,__text) section
start:
00000000	or	r26,r1,r1
00000004	addi	r1,r1,0xfffc
00000008	rlwinm	r1,r1,0,0,26
0000000c	li	r0,start
00000010	stw	r0,start(r1)
00000014	stwu	r1,0xffc0(r1)
[...]
 

tatouille

Membre expert
1 Juin 2004
5 174
493
Stanford CA
:D a les mechants, c'est pas bien de se foutre de la gueule des newbs

un dump object, ca depend si tu l'as construit avec des infos de debug ou pas ca peut aider, apres le disasemblage pour recreer le code original tu peux te mettre le poing dans le cul, l'hexadump te permet de comprendre la structure et le fonctionnement si tu veux reverse le code avec tes mimines

ELF ou Mach sont des formats de fichier binaire contenant le set d'instruction c'est une facon differente de stocker ces instructions, et si finalement valides executees par ton kernel; ton kernel doit comprendre comment traiter ce container pour y retrouver les instructions a executer.

http://en.wikipedia.org/wiki/Executable_and_Linkable_Format
http://en.wikipedia.org/wiki/Mach-o

et plus plein de chose concernant la securité comme resolver randomly les liens dynamiques

mais bon...

// Mon fichier source était écrit en c++ alors c'est surement un binaire obj-c !

peut etre dans 10 ans
 

ntx

Membre vénérable
Club MacG
15 Octobre 2004
12 128
376
92
Mais lol c'est pas bien de se moquer xD

Bon en gros je doit lâcher l'affaire c'est trop compliqué ^^
Si tu ne sais pas faire la différence entre de C++ et de l'Obj-C et que tu n'as jamais entendu parlé d'assembleur, j'ai effectivement peu que ce soit trop compliqué pour toi :rateau:
 

Any

Membre actif
23 Février 2009
170
10
32
toulouse
Si tu ne sais pas faire la différence entre de C++ et de l'Obj-C et que tu n'as jamais entendu parlé d'assembleur, j'ai effectivement peu que ce soit trop compliqué pour toi :rateau:

j'ai fait de l'assembleur je suis en première année d'iut info ^^ mais c'est vrai je ne connaissais pas la différence entre c'est deux langage pour moi c'est du C !
 

[Vezøul]Numerø41

Membre expert
Club MacG
1 Septembre 2005
4 829
369
DTC
www.vesoul.fr
Et puis de l'assembleur en avoir fait ne veut pas dire qu'on maîtrise, du code assembleur sorti par un compilateur si en plus il est optimisé et spécifique à une architecture, alors faut vraiment s'accrocher. :p :D :D

Le mieux c'est de récupérer les sources un point c'est tout. :p :D :D