Portál AbcLinuxu, 13. května 2025 03:43
Řešení dotazu:
V první řadě doporučuji použít nějaký verzovací systém (např. Mercurial). I kdybys pak soubor poškodil, můžeš si verze porovnat, vidět přesně, co se změnilo, a případně se vrátit ke starší verzi. Mercurial můžeš provozovat i lokálně, nepotřebuješ k tomu žádný hosting ani vlastní server.
Co se týče editoru, tam záleží, v jakém jazyce ten CGI skript je napsaný (Bash? Perl? …). Tzn. hledat něco, co umí zvýrazňovat syntaxi v tomto jazyce (to většinou nebude problém) nebo i napovídat a validovat (to už je těžší). Osobně používám na většinu věcí Netbeans protože mj. hezky zobrazují, které řádky jsou změněné (oproti poslední commitnuté verzi), takže neustále vidíš, kde jsi něco měnil a kde by případně mohla být chyba, když ti program náhle přestane fungovat.
Format: ELF 32-bit LSB executable ARM EABI5 version 1 (SYSV) dynamically linked interpreter /lib/ld- for GNU/Linux 2.6.26 BuildID[sha1]=b0a0588563d1169c9faa3bc8bad1377ff84d1baa stripped
Nic takového jako "CGI soubor" neexistuje, zkratka CGI znamená Common Gateway Interface a jde o rozhraní mezi webovým serverem a programem generujícím data pro klienty. V podstatě to funguje tak, že když klient požádá o příslušnou stránku, místo aby se mu poslal existující soubor, spustí se program a klientovi se pošle jeho výstup.
Tím programem může být cokoli od shellového skriptu přes PHP nebo perlové skripty až po obyčejné ELF spustitelné soubory ("binárka"), což je i váš případ (jen mne trochu překvapuje to "32-bit", to už je dnes trochu anachronismus). Ty moc editovat nejde, nebo aspoň ne bez potřebných znalostí a už vůbec ne snadno. Spíš si sežeňte zdrojáky, upravte je a program přeložte znovu.
Tak to je horší. Zdrojové kódy od toho vážně nejsou?
Pokud by šlo o malou změnu (např. drobná změna HTML/CSS, kde výsledný text bude stejně dlouhý nebo kratší), tak to jde udělat v hexadecimálním editoru. Zachování délky (kratší text lze nahradit mezerami, ale delší tam nedostaneš) je zásadní, protože jinak se to celé posune, změní se adresy v paměti a program přestane fungovat. Tzn. nejde tam jen tak do prostředka něco dopsat.
Jinak bys musel program dekompilovat – pak ti z toho vypadne assembler nebo nějaké ošklivé céčko. To se sice edituje dost špatně, ale jde to a pokud potřebuješ jen upravit texty, tak je prostě jen najdeš v tom zdrojáku, přepíšeš a znovu zkompiluješ.
Další možnost je nechat tu binárku tak jak je, brát ji jako černou skříňku a jen ji obalit nějakým skriptem. Tento skript může jednak přepisovat parametry, které jsou na vstupu toho CGI programu, a jednak může upravovat jeho výstup (HTML dokument a HTTP hlavičky).
A nejčistší možnost je: zdokumentovat, co ten program dělá resp. co by měl dělat, a napsat to znova.
To je tak všechno, co můžu takhle v diskusi bez dalších informací poradit. Případně jestli s tím chceš pomoct, tak mi napiš, můžu na to kouknout a udělat vám nějakou nabídku – zabývám se zakázkovým vývojem.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.