IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

[C] Reverse engineering / Décompilation


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut [C] Reverse engineering / Décompilation
    Bonjour à tous,

    Je dois bosser sur un nouveau projet qui se base sur un ancien projet. Seul hic, l'ancien projet a été développé il y a plusieurs années et plus de trace du code source.

    L'application a été développée en C sous linux et se compose entre autre d'un fichier .exe et d'un fichier .so.

    J'aimerais savoir quelle formules ont été utilisées dans l'application à l'époque pour calculer certaines valeurs qui sont retournées par l'application.

    Il existe de nombreuses méthodes pour obtenir ces valeurs (Méthodes empiriques) et je n'arrive pas à déterminer celle(s) qui ont été utilisées et qui donnent le résultat escompté.

    J'ai fait pas mal de recherche et tenté de décompiler le code, mais mes bases d'assembleur remontent à 10 ans de ça et je n'ai pas spécialement envie de me lancer dans cette fastidieuse approche.

    Existe-t-il des logiciels accessibles qui permettent d'interpréter le code assembleur et le convertir en un semblant de code C, ne serait que pour identifier les formules utilisées pour obtenir une valeur précise? Il semblerait que le code était commenté, vu que je retrouve les commentaires au sein du fichier exe et certains commentaires indiquent l'endroit où les calculs qui m'intéresse sont effectués.

    Merci d'avance,

    Stephane.

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Décompiler, c'est comme vouloir retrouver une vache en assemblant 500 Kg de steak, ca ne marche pas.
    Lors de la compilation, le compilateur supprime les commentaires, optimise le code,....

    Il n'y a aucun moyen de retrouver le code de base. Au mieux (et je suis loin d'être sûr) il existerai des logiciels pour faire la conversion ASM->C, mais le code produit est illisible (comme obfusqué) car les noms sont arbitraires.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    voila, en gros tu vas perdre ton temps à essayer de récupérer quelquechose

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    Avec une bonne colle et un peu de peinture, y'a moyen, pour la vache...

    Ce que je cherche, ce n'est pas tant le code exact, ça je m'en fous un peu, ce que je cherche, c'est retrouver une ou plusieurs formules mathématiques utilisées dans le code. Les noms de variables et de fonctions, voir même 99% de la structure logique du code, je ne m'en soucie pas...

    Quand j'ouvre le fichier .exe via un éditeur de texte, je retrouve des lignes de texte (Genre Calcul de la valeur selon la méthode de machin), ce qui me semble pour le moins bizarre, vu que les commentaires sont normalement supprimés lors de la compilation.

    Voici un joli exemple de ce qu'on peut trouver :
    dGTemperatureNULBreslauer 1986NULThe sequence of the reverse primer for an amplicon entity.NUL
    etc...

    J'aimerais pour obtenir au moins quelque chose du style :
    Variable1=Variable2-Variable3*Variable4
    return Variable1

    Avec ça, je pourrais savoir quelle formule a été utilisée ou quelles successions de formules ont été utilisées pour générer le résultat qui me semble correct.

    Merci d'avance,

    Stephane

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Par défaut
    A part des cas particulier, genre décompiler un .class pour récupérer le code java,
    si tu as un .exe, tu ne pourras que récupérer du code Assembleur machine.
    Tu peux toujours faire un tour là:http://www.program-transformation.or.../DeCompilation

    Peut-être l'instruction "strings" sous un système Unix te retrouvera des morceaux, mais si tes formules ne sont jamais affichées dans l'application, tu risque là aussi de ne rien retrouver (mais ça sera quand même plus puissant qu'une édition directe du .exe).

    Bon courage !

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 128
    Billets dans le blog
    149
    Par défaut
    Sinon, vous êtes parti pour un coup de WindASM ou OllyDBG ... mais les deux ne donnent que l'assembleur. Par contre c'est facile de repéré des références avec ( comme les phrases dans les boites de dialogues et autre )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Est-il possible de bloquer le reverse engineering ?
    Par fugi dans le forum Assembleur
    Réponses: 39
    Dernier message: 31/07/2007, 02h33
  2. Schéma du modèle de données : reverse engineering
    Par slefevre01 dans le forum Designer
    Réponses: 2
    Dernier message: 20/08/2005, 09h38
  3. cherche outil de reverse engineering
    Par peppena dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 14/06/2005, 15h59
  4. [HELP] Reverse Engineering
    Par ArKhAn dans le forum x86 32-bits / 64-bits
    Réponses: 7
    Dernier message: 13/12/2004, 21h15
  5. reverse engineering en C#
    Par Bouboubou dans le forum Rational
    Réponses: 3
    Dernier message: 07/10/2004, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo