Shell scriptből bináris? SHC!

Címkék

Érdekes jószág, shell scriptekből futtatható, RC4 kriptelt bytecode-ot generál. Akár az is megadható, hogy a bináris adott időpont után ne fusson.

Hozzászólások

őszinte leszek, én nagyon rühellem az ilyen dolgokat. 150 évvel ezelőtt láttam ilyet dos-on de akkor is berzenkedtem tőle.

szerintem így a scriptek az alapvető feladatukat és előnyüket veszítik el. vagy szkript vagy bináris. ^^

Nekem olyan kéne, ami tetszőleges binárisból csinál pl perl scriptet... :DD

Ez igazan remek. A legtobb shell script nem a biztonsagrol hires ugye, ha ezt meg le is forditjak es igy adjak tovabb akkor aztan meg nehezebb rajonni hol a hiba ha pl szokozt is tartalmaz a megadott file neve vagy hasonlo pelda ...

Azt hittem valami újdonság :-( . Az shc -t legalább 5 éve láttam először (FreeBSD ports-ban 4 éve benne van), de ha emlékeim nem csalnak, volt vele egy apró bibi: a /tmp-be csomagolta ki magát az eredeti scriptet, majd sh -c /tmp/izemize formában futtatta. Szóval inkább szép, mint jó :-)

Mellesleg újra belenéztem a forrásba, és a dolog nem változott. Szóval nem egy biztonsági eszköz!

És ezek mellett még mindíg nyugodtan alszol?

Szerinted mennyire bonyolult a programot strace-szel elindítani, és figyelni, hogy milyen io-műveleteket csinál, vagy lekövetni, hogy melyik fd-be mit ír?

És ehhez még nagy erőfeszítések se kellenek a kíváncsi személy részéről, mert az strace eléggé alapparancs...

Egy ügyesen megírt shell-scriptnél az strace rohadtul nem mutat semmi használhatót. Mondjuk ennél az shc -val kódiolt izénél már lesz eredménye - bár láthatod (elég a ChangeLog-ot megnézni), h a fickó pl. a _p_trace -t letilthatóvá teszi - de attól még ...

Ilyen alapon barmelyik binarist "visszafejtheted", fuggetlenul attol, hogy miben lett irva. Az is eleg alap, hogy az strace nem decompiler/disassembler, hanem a syscall hivasokat mutatja neked. Ha ebbol te kitalalod az egesz program logikajat akkor szamodra folosleges az strace, mert folyekonyan olvasod hexaban is, hogy mit csinal. A hirben szereplo bytecode nem bytecode, hanem binaris: shc creates a stripped binary executable version of the script specified with -f on the command line.

Jelszavakat valoban nem erdemes belerejteni, mert kb ugyanaz, mint ha belerejted egy c forrasba, aztan encrypteled ugy, hogy a decrypthez szukseges kulcs valoszinuleg benne van a binarisban (kulonben nem lenne futtathato)