Találtam egy programot a neten, és legnagyobb meglepetésre ezt mondta a FreeBSD-s file parancs :
ABC: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.26, BuildID[sha1] XYZ, not stripped
(A fájl nevét és a checksum-ot direkt szedtem ki.) Számomra az a meglepő, hogy eddig nem találkoztam ilyennel (vagy legalábbis nem vettem észre) hogy egy binárisba beleplántálják a checksum-ját - illetve egy valamilyen checksum-ot. (Határozottan jobb ötlet, mint extended attribútumban tartani, bár gyanítom ezt könnyebb módosítani.) No most ha ráengedem az sha1 nevű programot, akkor (természetesen) mást számol ki. Jelenleg túrom a netet hogy milyen eszközökkel lehet ezt olvasni/írni/ellenőrizni. Egyelőre két RedHat-es oldalt találtam a témában, de eléggé szószátyárak. Annyit már látok, hogy vannak valamilyen eu-readelf meg eu-unstrip parancsok, amik ehhez kötődnek(*). Érdekes, de valószínűleg nem túl jól keresek, mert gugli nem igazán ad értékelhető találatot. A szoftvert a FreeBSD Linux-emulációjával akartam egy kicsit tesztelgetni de sajnos az jelenleg 2.6.18-as kernelt emulál, ez a dög meg ugye ennél újabb kernelt igényel - ezt induláskor egy morózus hibaüzenettel jelzi is :-( . A fenti RedHat-es parancsok neve alapján rápróbáltam a readelf-re, és gyakorlatilag egy perc alatt meglett az egyik infó:
$ readelf -x .note.gnu.build-id ABC
és az első 16 bájt után ott a keresett infó. No most akkor még azt kellene kideríteni, hogy pontosan mely szekciókat számítja bele, és hogy vajon mivel lehetne felülírni, csak mert writeelf-et nem találtam. Marad a binris peccselés (bpatch, vagy bvi) :-)