Passer binaire - C

Fermé
kikiwan Messages postés 6 Date d'inscription samedi 30 décembre 2017 Statut Membre Dernière intervention 7 février 2018 - 30 déc. 2017 à 11:36
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 19 janv. 2018 à 12:56
bonjour j'aimerait passer un code source binaire (du moin je croit ) a un code source type c

voila un morceaux du code source binaire : {B Nul Nul
je supose que c'est du binaire car si je me souvient bien nul vaut 0 + 0 = 1

merci d'avance

1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 15 janv. 2018 à 14:25
Bonjour,

Tu disposes d'un exécutable et tu veux, à partir de cet exécutable, obtenir un code source ?

En France et dans l'UE, la décompilation ou l'ingéniérie inverse n'est permise qu'à des fins d'intéropérabilité et sous certaines conditions. Dans le doute, consulte un juriste pour savoir si tu as le droit de faire ce que tu projettes de faire.

Si tu es dans un cas où tu peux légalement le faire, techniquement, tu peux rechercher des programmes qui vont t'aider dans cette tâche : un décompilateur (qui tente de produire un code dans un langage de haut niveau, comme le C ou Java), ou désassembleur (qui produit du code assembleur).

En réalité, tu vas pouvoir décompiler plus ou moins facilement selon le langage utilisé pour produire l'exécutable. Par exemple, les programmes écrits en Java se décompilent très bien, ceux écrits en C ou C++ très mal. Si tu sais dans quel langage a été écrit le programme pour lequel tu disposes de l'exécutable, cela aide à trouver l'outil le plus approprié.

Enfin, si le programme pour lequel tu as un code exécutable est un logiciel libre ou open source, tu n'as pas à faire cela, car le code source correspondant à ton exécutable est disponible, avec les droits d'utilisation qui y sont attachés selon la licence.


Dal
0
kikiwan Messages postés 6 Date d'inscription samedi 30 décembre 2017 Statut Membre Dernière intervention 7 février 2018
18 janv. 2018 à 18:23
merci pour ta réponse ( je sais que décompiler un executable n'est pas l'égale , surtout ci c'est pour tricher sur certain jeu :/ )
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 19 janv. 2018 à 13:09
J'ignore d'où viennent les caractères que tu as postés, avec quoi tu les as obtenus et à partir de quel type de fichier car tu ne l'expliques pas. Cela peut effectivement ressembler à une visualisation en ascii d'un fichier objet, et ce que tu vois alors c'est la traduction en ascii d'opcodes (instructions élémentaires comprises par les processeurs) ou de données.

"nul" doit correspondre au caractère "null" qui a une valeur de 0

par contre 0 + 0 n'a jamais fait chez moi 1, ni en système décimal, ni en binaire

sur ton exemple, les caractères peuvent correspondre à n'importe quoi

si on prend l'hypothèse qu'ils sont tirés d'un fichier exécutable compilé pour une architecture x86 '{' pourrait être l'opcode 7B c'est à dire l'instruction de saut conditionnel x86 JNP (Jump short if not parity - PF=0) et 'B' correspondre au déplacement du saut court qui serait à une adresse relative de 0x42 (c'est à dire 66 octets plus loin) par rapport à l'adresse courante d'exécution

mais les deux 0 qui suivent n'ont alors pas beaucoup de sens si le test échoue

cela dit, le désassemblage d'un programme objet doit se faire depuis le début , car un octet, selon son contexte, peut être compris comme un opcode, comme une adresse mémoire ou une partie d'une adresse mémoire, comme une valeur,... l'analyse d'octets sortis de leur contexte a peu de sens

quand à espérer obtenir un quelconque code source C en ingénierie inverse (décompilation donc) à partir de 4 octets sortis de nulle part, c'est encore une autre paire de manche :-)

tu vois, que cela ne te renseigne pas beaucoup, et que si tu veux faire cela par toi même tu as besoin de te retrousser les manches sérieusement en analysant un peu plus que 4 octets, sans compter que tu dois te trouver dans des conditions bien précises pour que tout ce travail soit légal :-)


Dal
0