J'ai mis seulement le compte des lignes là, mais en fait j'ai regardé le détail, et c'est vraiment très clair.
Dans ton exemple, les chaines en question sont principalement des noms de symboles, parceque tes binaires sont liés dynamiquement à la même bibliothèque (libc), et font bien sûr en partie appel aux même fonctions.
Mais ce que moi j'ai comparé, ce sont des binaires statiques strippé, où l'on ne retrouve pas ces chaines ci. Celles qui restent sont presques toutes des vraies chaines du programmes (en gros les messages balancés sur stderr/stdout). Je te colle en exemple, pour pas faire trop long, celles communes à busybox et minimod et qui sont de longueur >=20 et qui ne concernent pas le format ELF :
% cat /tmp/busybox-strings.txt /tmp/minimod-strings.txt | sort | uniq -d | grep "...................." | grep -v -i elf
A module named %s already exists
Can't allocate kernel memory for module; needed %lu bytes
can't handle sections of type %ld
Could not load the module
couldn't find the kernel version the module was compiled for
improperly terminated string argument for %s
invalid argument syntax for %s
invalid parameter %s
kernel-module version mismatch
local symbol %s with index %ld exceeds local_symtab_size %ld
Not configured to support old kernels
parameter type 'c' for %s must be followed by the maximum size
query_module: QM_INFO: %s
query_module: QM_SYMBOLS: %s
RELA relocations not supported on this architecture
relocation entry size mismatch: %lu != %lu
section header size mismatch: %lu != %lu
%s of type %ld for %s
string too long for %s (max %ld)
%s was compiled for kernel version %s
symbol for parameter %s not found
symbol size mismatch: %lu != %lu
too few values for %s (min %d)
too many values for %s (max %d)
Unhandled relocation
unknown parameter type '%c' for %s
unresolved symbol %s
Warning: kernel-module version mismatch
Warning: unhandled reloc %d
while this kernel is version %s
while this kernel is version %s.
Bien sûr, ça n'a rien d'une preuve absolue et ça peut être par hasard que dans les deux code le dernier message c'est trouvé écrit un coup avec un point et un coup sans, m'enfin bon, faut pas pousser :)
Si on prend à titre de comparaison le même test effectué entre busybox et insmod+modprobe+rmmod, on trouve seulement 3 chaines (alors que eux pourraient légitimement partager du code) :
% ( strings /sbin/insmod ; strings /sbin/modprobe ; strings /sbin/rmmod ) | sort -u > /tmp/modutils-strings.txt
% cat /tmp/modutils-strings.txt /tmp/busybox-strings.txt | sort | uniq -d | grep "...................." | grep -v -i elf
Invalid module format
Module has wrong symbol version
Unknown symbol in module
Ça donne une idée de combien ce genre de coincidence est improbable.
[^] # Re: oubli
Posté par tgl . En réponse au journal Chronique d'une violation de licence ordinaire.... Évalué à 4.
Dans ton exemple, les chaines en question sont principalement des noms de symboles, parceque tes binaires sont liés dynamiquement à la même bibliothèque (libc), et font bien sûr en partie appel aux même fonctions.
Mais ce que moi j'ai comparé, ce sont des binaires statiques strippé, où l'on ne retrouve pas ces chaines ci. Celles qui restent sont presques toutes des vraies chaines du programmes (en gros les messages balancés sur stderr/stdout). Je te colle en exemple, pour pas faire trop long, celles communes à busybox et minimod et qui sont de longueur >=20 et qui ne concernent pas le format ELF :
Bien sûr, ça n'a rien d'une preuve absolue et ça peut être par hasard que dans les deux code le dernier message c'est trouvé écrit un coup avec un point et un coup sans, m'enfin bon, faut pas pousser :)
Si on prend à titre de comparaison le même test effectué entre busybox et insmod+modprobe+rmmod, on trouve seulement 3 chaines (alors que eux pourraient légitimement partager du code) :
Ça donne une idée de combien ce genre de coincidence est improbable.