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

C Discussion :

Code source d'une dll le plus probablement écrite en langage C


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 23
    Points
    23
    Par défaut Code source d'une dll le plus probablement écrite en langage C
    Salut à tous,

    bon mon problème c'est que j'ai une DLL que je veux obtenir le code source.

    bon il ne s'agit pas de code .net (Vb ou C# car j'ai essayé le .net reflector qui n'a pas reconnu le code du dll) mais le plus probablement d'un code C.

    j'ai trouvé et j'ai essayé pas mal de dé-compilateurs mais rien.

    le meilleur résultat que j'ai eu c'est que j'ai réussi à convertir la DLL en hexadécimal et en assembleur mais je trouve de nouveau dans l'impasse.

    Veillez m'aider svp !!! ça fait une semaine que je suis coincé.

    merci d'avance

  2. #2
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 364
    Points : 5 378
    Points
    5 378
    Par défaut
    Un décompilateur C, ca n'existe pas !!

    Au mieux, tu arriveras peut-être à avoir du code assembleur.

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Du Code Reversing n'est jamais une science exacte, le mieux c'est éventuellement de la refaire toi même si tu sais à quoi elle sert et comment elle fonctionne !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    bonjour ,

    Merci pour vos réponse.

    mais en faite c'est une DLL codée depuis les années 90 environ.

    le programme avec lequel je travaille utilise cette DLL donc le risque de

    régression est très haut pour pouvoir la recoder de nouveau.

    bon comme un premier pas j'ai réussi à convertir la DLL en un fichier LIB qui

    s'ouvre avec VisualStudio 2008 comme un fichier hexa.

    est ce qu'il y a possibilité d'obtenir le code de ce fichier LIB

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Points : 654
    Points
    654
    Par défaut
    Non tu ne peut pas
    Le probléme est que tu et sur un fichier compiler et que au mieux tu peut récupérer l asm mais la décompilation ne peut pas récupérer les variables et tout ce qui s'en suit.
    De plus si tu n'as pas les source c'est que tu sur un lib privé donc tu n'as pas vraiment le droit de faire ce que tu veu.
    Les .h peuvent peut être répondre a tes question cela dit.
    Dans quel but tu a besoin de cette dll et pour quoi faire?
    Ce n'est peut être rien a redévelopper.
    En plus année 90 dit que tu n'est pas multi archi avec donc pas de 64 bit.

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Oui, pourquoi tu veux récupérer les sources de la DLL ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par Franck.H Voir le message
    Oui, pourquoi tu veux récupérer les sources de la DLL ?
    en faite j'ai besoin du code ce DLL, qui contient des fonctions spécifiques, pour

    pouvoir détecter la source d'une anomalie provenant de l'une des fonctions

    lorsque le traitement s'alourdi.

    Merci.

  8. #8
    Membre éclairé Avatar de seeme
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    430
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 430
    Points : 791
    Points
    791
    Par défaut
    Logiquement, le fournisseur de la dll t'as probablement donné aussi de la documentation.. Mais là, à moins de te mettre à l'ASM ou de tout éplucher au débugger (et probablement sans symboles de debug pour la dll) c'est un peu mort...

  9. #9
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    D'autant plus que si ce n'est pas un logiciel libre bin c'est complètement mort, tu n'auras jamais le droit de le faire, c'est pas légal quoi Au moins recréer la fonction qui déconne éventuellement au lieu de refaire toute la DLL mais sinon c'est foutu pour toi
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  10. #10
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 371
    Points : 23 626
    Points
    23 626
    Par défaut
    Citation Envoyé par Franck.H Voir le message
    D'autant plus que si ce n'est pas un logiciel libre bin c'est complètement mort, tu n'auras jamais le droit de le faire, c'est pas légal quoi Au moins recréer la fonction qui déconne éventuellement au lieu de refaire toute la DLL mais sinon c'est foutu pour toi
    Ce n'est pas tout-à-fait vrai. Il y a une exception au code de la propriété intellectuelle qui est régulièrement mis à mal par le législateur et qui a, une fois de plus, failli partir à la trappe avec DADVSI, mais qui existe bel et bien : c'est le droit à l'interopérabilité. Il est défini dans l'article 122-6-1 du code de la propriété intellectuelle :

    Citation Envoyé par art. L.122-6
    I. Les actes prévus aux 1° et 2° de l'article L. 122-6 ne sont pas soumis à l'autorisation de l'auteur lorsqu'ils sont nécessaires pour permettre l'utilisation du logiciel, conformément à sa destination, par la personne ayant le droit de l'utiliser, y compris pour corriger des erreurs.

    Toutefois, l'auteur est habilité à se réserver par contrat le droit de corriger les erreurs et de déterminer les modalités particulières auxquelles seront soumis les actes prévus aux 1° et 2° de l'article L. 122-6, nécessaires pour permettre l'utilisation du logiciel, conformément à sa destination, par la personne ayant le droit de l'utiliser.

    II. La personne ayant le droit d'utiliser le logiciel peut faire une copie de sauvegarde lorsque celle-ci est nécessaire pour préserver l'utilisation du logiciel.

    III. La personne ayant le droit d'utiliser le logiciel peut sans l'autorisation de l'auteur observer, étudier ou tester le fonctionnement de ce logiciel afin de déterminer les idées et principes qui sont à la base de n'importe quel élément du logiciel lorsqu'elle effectue toute opération de chargement, d'affichage, d'exécution, de transmission ou de stockage du logiciel qu'elle est en droit d'effectuer.

    IV. La reproduction du code du logiciel ou la traduction de la forme de ce code n'est pas soumise à l'autorisation de l'auteur lorsque la reproduction ou la traduction au sens du 1° ou du 2° de l'article L. 122-6 est indispensable pour obtenir les informations nécessaires à l'interopérabilité d'un logiciel créé de façon indépendante avec d'autres logiciels, sous réserve que soient réunies les conditions suivantes :

    1° Ces actes sont accomplis par la personne ayant le droit d'utiliser un exemplaire du logiciel ou pour son compte par une personne habilitée à cette fin ;

    2° Les informations nécessaires à l'interopérabilité n'ont pas déjà été rendues facilement et rapidement accessibles aux personnes mentionnées au 1° ci-dessus ;

    3° Et ces actes sont limités aux parties du logiciel d'origine nécessaires à cette interopérabilité.

    Les informations ainsi obtenues ne peuvent être :

    1° Ni utilisées à des fins autres que la réalisation de l'interopérabilité du logiciel créé de façon indépendante ;

    2° Ni communiquées à des tiers sauf si cela est nécessaire à l'interopérabilité du logiciel créé de façon indépendante ;

    3° Ni utilisées pour la mise au point, la production ou la commercialisation d'un logiciel dont l'expression est substantiellement similaire ou pour tout autre acte portant atteinte au droit d'auteur.

    V. Le présent article ne saurait être interprété comme permettant de porter atteinte à l'exploitation normale du logiciel ou de causer un préjudice injustifié aux intérêts légitimes de l'auteur.

    Toute stipulation contraire aux dispositions prévues aux II, III et IV du présent article est nulle et non avenue.
    En gros, tu as le droit d'étudier le code si tu as déjà le droit de l'utiliser (normal) et si c'est nécessaire pour son exploitation en conditions normales dans l'environnement concerné et ce, à condition :

    1. Que ces infos ne soient pas déjà mises à disposition par l'auteur ou l'éditeur ;
    2. de garder confidentielles les informations que tu as récoltées, dans le cercle des gens qui ont participé à la recherche.


    Désassembler la lib dont tu dépends doit donc tomber dans ce cas de figure. Par contre, cela risque d'être un travail de titan. Désassembler un logiciel écrit directement en assembleur est déjà difficile, le faire pour un produit qui a été écrit dans un langage de plus haut niveau et qui est probablement rempli de redondances, ça risque d'être illisible.

    En outre, il y a des obstacles supplémentaires depuis DADVSI en ce qui concerne les mesures techniques de protection mises en place exprès, mais ça ne devrait pas concerner ta lib.


    Tout ça pour dire que, malgré tout, opter pour un équivalent dans le monde libre, même s'il est un tout petit peu différent, c'est se donner beaucoup moins de travail sur le long terme, et ça permet de garantir les résultats et la pérennité de ton produit.

Discussions similaires

  1. Transcrire code PHP dans une DLL
    Par LEK dans le forum C++
    Réponses: 16
    Dernier message: 26/09/2005, 14h17
  2. [FLASH MX2004 PRO] Recuperer le code source d'une page
    Par adilou1981 dans le forum Flash
    Réponses: 9
    Dernier message: 26/07/2005, 18h11
  3. [Reseau] Récupérer le code source d'une URL
    Par gogolpexe dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 29/06/2005, 14h06
  4. Récupérer le code source d'une page web
    Par glRaZ dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/12/2004, 09h16
  5. [Juridique] Comment réutiliser le code source d'une classe ?
    Par mathieu dans le forum Général Java
    Réponses: 8
    Dernier message: 17/05/2004, 13h40

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