Shc (kompilator skryptów powłoki)
shc to kompilator skryptów powłoki dla systemów operacyjnych typu Unix, napisany w języku programowania C. Shell Script Compiler (SHC) koduje i szyfruje skrypty powłoki do wykonywalnych plików binarnych. Kompilowanie skryptów powłoki do plików binarnych zapewnia ochronę przed przypadkowymi zmianami i kodu źródłowego oraz jest sposobem na ukrycie kodu źródłowego skryptu powłoki.
Mechanizm
shc
pobiera skrypt powłoki określony w wierszu poleceń opcją -f
i tworzy kod źródłowy C skryptu z dodanym szyfrowaniem . Wygenerowany kod źródłowy jest następnie kompilowany i łączony w celu utworzenia binarnego pliku wykonywalnego. Jest to proces dwuetapowy, w którym najpierw tworzy nazwa_pliku.xc
pliku skryptu powłoki nazwa_pliku
. Następnie jest kompilowany za pomocą cc -$CFLAGS nazwa_pliku.xc,
aby utworzyć plik binarny z kodu źródłowego C za pomocą domyślnego kompilatora C.
Skompilowany plik binarny nadal będzie zależny od powłoki określonej w shebang (np. #!/bin/sh
), dlatego shc
nie tworzy całkowicie niezależnych plików binarnych.
shc
sam w sobie nie jest kompilatorem, takim jak kompilator C , raczej koduje i szyfruje skrypt powłoki i generuje kod źródłowy C z dodaną możliwością wygaśnięcia. Następnie używa kompilatora systemu C do skompilowania źródłowego skryptu powłoki i zbudowania ogołoconego pliku binarnego, który zachowuje się dokładnie tak, jak oryginalny skrypt . Po wykonaniu skompilowany plik binarny odszyfruje i wykona kod z opcją powłoki -c
.
Wersje
Wersja | Data wydania | Zmiany | |
---|---|---|---|
shc-3.9.3 | 30 lipca 2016 r | obsługa i poprawka zsh dla powłoki ksh | |
shc-3.9.2 | 21 sierpnia 2015 r | Dodano obsługę Busybox (flaga -B do kompilacji dla Busybox). | |
shc-3.9.1 | 03-kwi-2015 | Ustaw opcję -T jako domyślną i zmień jej nazwę na -U zgodnie z logiką licznika | |
shc-3.9.0 | 01-kwi-2015 | Dodanie opcji pliku wyjściowego z [-o nazwa pliku] i poprawki błędów | |
shc-3.8.9 | 04-gru-2013 | Naprawiono długotrwały błąd powodujący, że źródło nie było ukryte | |
shc-3.8.7 | 10-lutego-2010 | Błąd w systemach 64-bitowych z datami wygaśnięcia | |
shc-3.8.5 | 10-lutego-2010 | ||
shc-3.8.3 | 10-lipiec-2006 | Naprawiono problemy z funkcją untraceable() we FreeBSD | |
shc-3.8.2 | 06-lip-2006 | Uprawnienia do odczytu skryptu.x narażają go na deasemblację. Uprawnienia do odczytu grupy i innych osób są teraz domyślnie usuwane. |
|
shc-3.7 | 28-cze-2005 | Usunięto wszystkie ciągi w skompilowanym skrypcie. Ulepszone wyjście programu i komunikaty o błędach. Opcja -m pozwala zdefiniować komunikat o wygaśnięciu *complete*. Zaktualizowano stronę podręcznika shc.1 |
|
shc-3.6 | 16-cze-2005 | Dwie nowe opcje: -D włącz wywołania funkcji Debug exec. -T wyłącz niewykrywalność. |
|
shc-3.4 | 19 czerwca 2003 r | Usuń problem „złego wyrównania” w systemie AIX i innych systemach. Tam, gdzie istnieje, użyj /proc/ / jak w niewykrywalnym. |
|
shc-3.3 | 21-kwi-2003 | Zapobiegaj prześledzeniu procesu | |
shc-3.2 | 05-sierpień-2002 | Znajdź starożytne pclose, które musi być fclose | |
shc-3.1 | 05-sierpień-2002 | Naprawiono błędne działanie skryptów z opcją w pierwszej linii równą „koniec opcji” (np. #!/bin/sh -- ) GCC „ostrzeżenie: zwracany typ `main' nie jest `int'” został usunięty |
|
shc-2.4 | 05-sierpień-2002 |
Alternatywy
- obasz
- obfsh
- shellcrypt
- ^ ab Günther , Karsten. „SHC Shell Compiler » Linux Magazine” .
- ^ a b c „Strona podręcznika shc” . neurobin.github.io . Źródło 2015-08-25 .
- ^ „Indeks /~frosal/sources” .
-
^ a b
„Kopia zarchiwizowana” . Zarchiwizowane od oryginału w dniu 2015-04-02 . Źródło 2015-04-01 .
{{ cite web }}
: CS1 maint: zarchiwizowana kopia jako tytuł ( link ) - ^ „obfuscator skryptów powłoki” .