Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/05/2012, à 19:36

nicolas66

Comparaison programmes

Bonjour,

Je suis à la recherche d'un logiciel pour comparer deux (voire plusieurs) programmes C/C++ ou Java pour éviter les risques de fraudes sur un projet. L'idée serait dans un premier temps de voir notamment si des fonctions sont identiques dans le code. Quelqu'un a-t-il des infos à ce sujet ? D'avance, merci.


--
Nicolas.


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#2 Le 09/05/2012, à 20:55

pires57

Re : Comparaison programmes

dans un terminal :

man diff
man cmp

Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#3 Le 09/05/2012, à 23:07

nicolas66

Re : Comparaison programmes

Je pensais à un outil un peu plus sophistiqué qu'une bête comparaison ligne à ligne. J'utilise meld mais il n'a pas l'air de s'utiliser en ligne de commandes.


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#4 Le 09/05/2012, à 23:15

pires57

Re : Comparaison programmes

Dans ce cas, je ne vois pas trop ce que je pourrais te conseiller. S'il existe un outils, je n'en ai pas entendu parler mais je vais me renseigner auprès d'autre amis Linuxiens des fois que


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne

#5 Le 10/05/2012, à 09:51

eiger

Re : Comparaison programmes

Salut,

Tu pourrais essayer de laisser tourner PMD/CPD pour chercher du code identique.
A la base, l'outil sert plutôt à appliquer le principe "DRY" (Don't Repeat Yourself), dans le but de ne pas dupliquer inutilement du code, donc logiquement tu devrais pouvoir détecter des plagiats.

Il supporte C, C++ et Java.

Hors ligne

#6 Le 10/05/2012, à 12:28

nicolas66

Re : Comparaison programmes

Merci eiger, je regarderai ça à l'occasion.


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#7 Le 10/05/2012, à 19:10

kuri

Re : Comparaison programmes

Tu peux aussi utiliser la commande nm

Hors ligne

#8 Le 10/05/2012, à 23:09

nicolas66

Re : Comparaison programmes

Pas bête, je n'y avais pas pensé. Ca ne donne en revanche pas d'infos sur le coeur de la fonction.


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#9 Le 11/05/2012, à 23:14

kuri

Re : Comparaison programmes

oui, il s agit plus d un complement que d une solution a part entiere.
de toute facon l etude d empreintes de binaires, ce n est pas quelque chose de si simple, c est meme un metier.

Ce que tu peux aussi faire, c est etudier l estimation en cycles de toutes les fonctions, grace a valgrind + callgrind.
Si le nombre de cycles est identique, ou extremement proche, pour des fonctions dont les noms semblent indiquer un meme traitement, c est que tu as visiblement des algos a l identique ou presque. De la meme maniere, ca ne prouve rien en soit, mais ca peux alourdir la liste de suspicions.

Dernière modification par kuri (Le 11/05/2012, à 23:15)

Hors ligne

#10 Le 12/05/2012, à 01:38

nicolas66

Re : Comparaison programmes

Ouais par contre, je ne vois pas du tout comment récupérer ces infos avec valgring et callgrind. Une idée ?


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#11 Le 12/05/2012, à 11:26

kuri

Re : Comparaison programmes

oui, tu fais :
valgrind --tool=callgrind ./tonprog

une fois l execution terminee, tu visualise le log de valgrind avec le programme kcachegrind

Hors ligne

#12 Le 12/05/2012, à 14:27

nicolas66

Re : Comparaison programmes

Oui, j'avais essayé ça aussi hier mais je ne trouve pas l'info dans l'interface.


"The computer was born to solve problems that did not exist before." (B. Gates)

Hors ligne

#13 Le 12/05/2012, à 20:46

kuri

Re : Comparaison programmes

Tu as un onglet avec la liste de toutes les fonctions appellees, et le nombre de cycles passes dans chacune, a gauche

Hors ligne