Dodałem integrację AutoIt Obfuscatora i procesu obfuskacji do domyślnego edytora AutoIt – SciTE.
Wystarczy zainstalować AutoIt Obfuscator korzystając z instalatora, a plik konfiguracyjny edytora, znajdujący się w folderze %USERPROFILE%\SciTEUser.properties zostanie automatycznie zaktualizowany.
Zmiana ta doda nową komendę Obfuscate do menu edytora Tools, dzięki czemu jednym kliknięciem można obfuskować skrypty *.au3.
Wprowadzone zmiany do pliku konfiguracyjnego:
### AutoItObfuscator Section Start
#
# Menu extension for AutoIt Obfuscator for SciTE editor
#
# 1. Open SciTE editor
# 2. Click menu -> Options -> Open User Options File
# 3. Paste the content of this script into the user options file
# 4. Setup extra obfuscation parameters, activation key, and output file path
# 5. Save file
# 6. You will find a new "Obfuscate" command in Tools menu for *.au3 files
#
# https://www.pelock.com/products/autoit-obfuscator
# https://www.scintilla.org/SciTEDoc.html
#
# Activate the obfuscator menu for *.au3 files only (* for all files)
command.name.11.*.au3=Obfuscate
# Setup your obfuscation parameters, enter your activation key, output path etc.
#
# overwrite existing file (SciTE fill refresh the view, you can always undo it CTRL-Z)
#
command.11.*.au3=C:\Program Files (x86)\AutoIt Obfuscator\AutoItObfuscatorCmd.exe /InputFilePath="$(FilePath)" /OutputFilePath="$(FilePath)"
#command.11.*.au3=C:\Program Files (x86)\AutoIt Obfuscator\AutoItObfuscatorCmd.exe /ActivationCode="ENTER-YOUR-CODE-HERE" /InputFilePath="$(FilePath)" /OutputFilePath="$(FilePath)"
#
# create a new file
#
#command.11.*.au3=C:\Program Files (x86)\AutoIt Obfuscator\AutoItObfuscatorCmd.exe /InputFilePath="$(FilePath)" /OutputFilePath="$(FilePath).obfuscated.au3"
# Save any script before obfuscation (1 - save before obfuscation, 2 - use previously saved file content)
command.save.before.11.*.au3=1
# Specify the subsystem (0 Console, 2 = Windows GUI Executable / Web Link)
command.subsystem.11.*.au3=0
# Obfuscation command shortcut
command.shortcut.11.*.au3=Ctrl+F12
### AutoItObfuscator Section End
Można je edytować w SciTE, klikając w menu Options i Open User Options File,np. zmieniając parametry obfuskacji czy dodając tam swój klucz aktywacyjny.
Jakby kogoś ciekawiło (wątpię), jakie są dostępne opcje konfiguracji — warto zajrzeć do oficjalnej dokumentacji projektu SciTE.
Zachęcony pozytywnymi komentarzami dotyczącymi mojego projektu StringEncrypt, postanowiłem zaktualizować wszystko, co się dało i spełnić marzenia fanów tego niezwykłego rozwiązania.
Silnik projektu jest wykorzystany w moich pozostałych narzędziach do masowego, polimorficznego szyfrowania stringów (w AutoIt Obfuscator i JObfuscator).
Szyfrować i generować kod można w następujących językach programowania:
Nowa wersja przynosi ogrom zmian, w tym najważniejsze – wsparcie dla wielu nowych języków programowania, tony bugfixów i najważniejsze – zagnieżdżone pętle polimorficzne.
Zagnieżdżone pętle polimorficzne
Jednym z zarzutów i wektorów ataku na StringEncrypt (w przypadku generatorów np. C/C++) było wykorzystanie narzędzi do ekstrakcji stringów, takich jak flare-floss. Narzędzie to potrafi przeskanować gotowy plik EXE, przeanalizować kod i wyciągnąć nawet zaszyfrowane stringi.
Zgłębiłem temat i cała filozofia tego rozwiązania bazuje na detekcji tzw. tight-loops, czyli ciasnych pętli. flare-floss potrafi rozpoznać krótkie pętle deszyfrujące i poprzez ich emulację wyciągnąć zaszyfrowane stringi, jeśli takie pętle zostały wykorzystane do ich odszyfrowania.
Rozwiązaniem tego problemu było wygenerowanie wielopoziomowo zagnieżdżonych pętli z polimorficznym kodem deszyfrującym co nie wpisuje się już w detekcję prostych pętli.
#!/usr/bin/env python
###############################################################################
#
# String Encrypt WebApi interface usage example.
#
# In this example we will encrypt sample string with default options.
#
# Version : v1.0.1
# Language : Python
# Author : Bartosz Wójcik
# Project page : https://www.stringencrypt.com
# Web page : https://www.pelock.com
#
###############################################################################
#
# include StringEncrypt module
#
from stringencrypt import StringEncrypt
#
# if you don't want to use Python module, you can import it directly from the file
#
#from stringencrypt.stringencrypt import StringEncrypt
#
# create StringEncrypt class instance (we are using our activation code)
#
myStringEncrypt = StringEncrypt("YOUR-API-KEY-HERE") # leave empty for demo mode
#
# encrypt a string using all the default options
#
result = myStringEncrypt.encrypt_string("Hello, world!", "label_encrypted")
#
# result[] array holds the encryption results as well as other information
#
# result["error"] (int) - error code
# result["source"] (string) - decryptor source code
# result["expired"] (boolean) - expiration flag
# result["credits_left"] (int) - number of credits left
# result["credits_total"] (int) - initial number of credits
if result and "error" in result:
# display source code of the decryption code
if result["error"] == StringEncrypt.ErrorCodes.ERROR_SUCCESS:
print(result["source"])
else:
print(f'An error occurred, error code: {result["error"]} ({result["error_string"]})')
else:
print("Something unexpected happen while trying to encrypt the string.")
Pełna wersja
Klucz można zakupić za śmieszne pieniądze lub za darmo go zdobyć, pisząc o tym rozwiązaniu na social mediach, artykułach, na forach czy gdziekolwiek się da z linkiem do strony projektu i krótkim opisem oraz screenshotem. Niewiele, prawda?
Na koniec chciałbym jeszcze raz podziękować wszystkim fanom, którzy w dobie AI zmotywowali mnie do tak dużych aktualizacji – bez waszych słów wsparcia by mi się nie chciało aż tak 🙂
Masz zablokowane radio w aucie Fiat Continental 500 lub 250? Skorzystaj z dekodera radiowego odblokowującego odtwarzacze w popularnych 500-tkach.
Jak odblokować radio w Fiat 500? Wpisz cztery ostatnie numery seryjne z tyłu odtwarzacza i to w zasadzie tyle do wygenerowania kodu odblokowującego.
Generator kodów radiowych dla warsztatów i programistów
Jeśli często generujesz kody lub chcesz dodać generowanie kodów na swoich stronach bądź sprzedawać kody na Allegro czy OLX wypróbuj Generator Kodów Radiowych mojego autorstwa.
Okres wakacyjny wyjątkowo nie sprzyja mojej aktywności zawodowej, ale udało mi się dodać kolejny kalkulator samochodowy do mojej kolekcji.
Tym razem padło na radioodtwarzacze marki Jaguar Alpine.
Jeśli padł Ci akumulator w twoim Jaguarze i posiadasz radio Alpine, skorzystaj z kalkulatora kodu radiowego, aby na podstawie numeru seryjnego radia wygenerować kod odbezpieczający i odblokować radio.
Przy okazji zaktualizowałem SDK pozwalające w prosty i przyjemny sposób generować masowo kody radiowe – Radio Code Calculator. Aktualizacja objęła pakiety dla PHP, JS i Pythona.
Jeśli chcecie się pośmiać w tym smutnym jak p#zda świecie to poczytajcie miażdżące techniczne opinie o książce o C++ polskiego autora Dawida F. na stronie Ceneo, której tytułu nawet nie wymienię w obawie o pozew autora. Raz mi już groził za to, że nie chciałem usunąć wywiadu, którego tu ten geniusz sam udzielił…
Polecam komentarze użytkownika Stanisław – nie warto było drażnić lwa hehe, przejechał po niej merytorycznie jak walec po drodze. Rozrywka gwarantowana!
Mój komentarz do tego wszystkiego i do tego, co na Ceneo niektórzy sugerują, że autor wystawia sobie sam pozytywne opinie i oceny, przedstawi pięknie Taylor Swift:
A jak znacie jakieś dobre książki o C++ to zostawcie linka w komentarzu. Może się czegoś ciekawego nauczę 😀