Zadania admina bywają czasem załamujące ;) bo komuś pomieszały się źródełka softu i nikt nie ma pojęcia w jakich wersjach działają ‘binarki’ na serwerze, to pan admin na pewno da rade to ustalić :P
Jak zwykle nie skorzystam z goole ;) nie użyje jakiegoś perla ani innego wysokopoziomowego badziewia ;)
O tyle fajnie jest, że w binarkach, w postaci czystego tekstu są zaszyte stringi zawierajace wersje poszczególnych komponentów. W pierwszej kolejności potraktuje binarki poleceniem strings dostając na standardowe wyjście wszystkie stringi zawarte w pliku binarnym. Potem grep, co by ograniczyć mnie do linii, które mnie interesują. A dalej dla ułatwienia tr w celu powiększenia wszystkich literek na wielkie i pozbycia się zbędnych spacji, sort, uniq i gotowe – może nie będzie to zbyt czytelne dla czlowieka za to idelane dla diff-a :)
strings binary_file | grep -i pattern | tr [a-z] [A-Z] | tr -d " " | sort | uniq > binary_file_version.txt
i w taki sam sposób pliki źródłowe
strings source_file | grep -i pattern | tr [a-z] [A-Z] | tr -d " " | sort | uniq > source_file_version.txt
a dalej już zwykły diff i gotowe :)
oczywiście wszystko trzeba opatrzyć pięknymi pętelkami w bash :P