Pages : 1
#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
Pages : 1