Sysinternals – Strings – co to jest i po co mi to w ogóle potrzebne?

Sysinternals – Strings – co to jest i po co mi to w ogóle potrzebne?

Sysinternals jest to pakiet narzędzi które w niektórych sytuacjach bardzo mocno potrafią pomóc i uprościć niektóre zadania. Dzisiaj krótko o Strongs.

Czym jest narzędzie Strings?

Strings jest to narzędzie które wyszukuje ciągi znaków ASCII lub UNICODE znajdujące się w dowolnych plikach. Często przydaje się do analizy plików i oprogramowania co do którego mamy podejrzenia że może być plikiem złośliwym.

Jak używać to narzędzie?

Należy je pobrać ze strony live.sysinternals.com/, uruchomić wiersz poleceń lub PowerShell i w zależności od potrzeb wykonać polecenie.

strings [-a] [-f offset] [-b bytes] [-n length] [-o] [-q] [-s] [-u] <file or directory>

a: Wyszukiwanie tylko ciągów znaków z kodowaniem ASCII
-b: Używa się go z parametrem -n do określenia liczby bajtów kontekstu, które mają być wyświetlone przed i po znalezionym ciągu
-f: Rozpoczęcia skanowania od określonego miejsca w pliku
-o: Wyświetla przesunięcie w pliku, gdzie dany ciąg się zaczyna, podawane w bajtach. Przydatny parametr dla tych, którzy chcą zlokalizować konkretne ciągi w kodzie binarnym.
-n: Minimalna długość stringu która pojawi się na wyjściu (domyślnie 3)
-s: Przeszukiwanie rekursywne katalogów
-u: Wyszukiwanie tylko ciągów znaków z kodowaniem UNICODE
q: Nie wyświetla informacji o licencji na starcie aplikacji

Przykład użycia:

Ale po co mi to?

Jest to jedno z narzędzi umożliwiających analizę malware bez jego aktywnego uruchamiania. Dzięki niemu możemy w prosty sposób próbować znaleźć podejrzane ciągi znaków jak na przykład określone komendy, adresy IP, URL itp. A oto kilka przykładów:

  • Sprawdzenie czy plik zawiera frazę „This program cannot be run in DOS mode”
  • Sprawdzenie czy plik zawiera url
  • Przynajmniej częściowe odwzorowanie działania programu:

I wiele wiele innych. Jest to narzędzie bardzo proste, a jednak przy tym niejednokrotnie bardzo przydatne.