Wydałem kilka dni temu ulepszoną wersję mojego obufscatora dla języka autoit, czyli AutoIt Obfuscator. Dodane zostało wstrzykiwanie kodu do detekcji wielu narzędzi służących do reversingu i analizy zabezpieczonych skryptów.
Wstrzykiwany kod jest automatycznie wykonywany zaraz na początku działania skryptów i w razie pozytywnej detekcji jakiegokolwiek narzędzia – cicho kończy działanie skryptu, bez żadnego komunikatu o błędzie.
Dodane detekcje to m.in.
Antydebugging
- Wykrywanie debuggerów dołączonych do do procesu aplikacji
Wykrywanie wirtualnych maszyn (anty-VM)
- VMware (procesy, pliki, sterowniki, WMI, BIOS, GFX)
- Oracle Virtual Box (procesy, pliki, sterowniki, BIOS, GFX)
- Parallels Virtual Machine (procesy, pliki)
- KVM (sterowniki)
Wykrywanie piaskownic tzw. sandboxów
- Sprawdzaj podejrzanie małą liczbę rdzeni procesora (wyjdź jeśli jest ich mniej niż 3)
- Sandboxie (biblioteki DLL)
- Joe Sandbox (procesy)
Wykrywanie emulatorów CPU
- WINE (niekonsystencje w funkcjach API, biblioteki DLL, specjalne funkcje API)
- Bochs (WMI BIOS)
- QEMU (procesy, WMI BIOS)
- XEN (procesy)
Trochę mi zajęło skompletowanie tych metod, dlatego są one dostępne jedynie w płatnej wersji obfuscatora, ale wiem, że was na to stać i możecie sobie to przetestować online na
https://www.pelock.com/autoit-obfuscator/
PS. Pozdrawiam Fabka za podsunięcie metod detekcji i w sumie naprowadzenie mnie na możliwość dołączenia tej funkcjonalności do mojego obfuscatora.
PS2. Jeśli znacie jakieś fajne metody detekcji, dopiszcie do komentarzy kod albo linki, ograniczeniem AutoIt jest w teorii brak dostępu do PEB czy TEB legitnymi metodami, więc interesują mnie jedynie rozwiązania oparte o legitne sposoby przez WinAPI i pokrewne funkcje.