llvm-obfuscation
Zaawansowana ochrona kodu przed dekompilacją – techniki obfuskacji na bazie LLVM
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umiejętności w zakresie obfuskacji kodu opartej na LLVM, obejmujące spłaszczanie przepływu sterowania, szyfrowanie stringów, wirtualizację kodu i metody anty-analizy. Skill zawiera wiedzę o frameworkach takich jak OLLVM, Hikari, Pluto-Obfuscator i o-mvll. Zastosuj go podczas pracy nad ochroną oprogramowania, przeciwdziałaniem inżynierii wstecznej lub implementacją własnych przejść obfuskacji w kompilatorze.
Jak używać
Zapoznaj się z głównymi technikami obfuskacji dostępnymi w LLVM: spłaszczaniem przepływu sterowania (CFF), fałszywym przepływem sterowania (BCF), szyfrowaniem stringów i podstawianiem instrukcji. Każda technika służy innym celom – CFF utrudnia śledzenie logiki programu, BCF dodaje fałszywe ścieżki, a szyfrowanie stringów chroni dane tekstowe.
Wybierz odpowiedni framework OLLVM w zależności od potrzeb: klasyczny OLLVM do podstawowych transformacji, Hikari do zaawansowanej ochrony funkcji, Pluto-Obfuscator do mieszanych wyrażeń boolowsko-arytmetycznych (MBA), lub o-mvll jeśli obfuskujesz aplikacje mobilne (iOS/Android).
Zdefiniuj cele ochrony – czy chcesz utrudnić analizę statyczną, dynamiczną, czy obie. Na tej podstawie dobierz kombinację technik: obfuskacja przepływu sterowania chroni logikę, obfuskacja danych chroni wartości, a wirtualizacja kodu (VMP) zapewnia najwyższą ochronę kosztem wydajności.
Implementuj wybrane przejścia obfuskacji w pipeline'u kompilacji LLVM. Możesz użyć istniejących implementacji z frameworków (np. BCF z klasycznego OLLVM) lub dostosować je do swoich wymagań poprzez modyfikację przebiegu na poziomie pośredniego kodu (IR).
Testuj obfuskowany kod pod kątem poprawności funkcjonalnej i wydajności. Obfuskacja zwiększa rozmiar kodu i czas wykonania – zweryfikuj, czy wpływ jest akceptowalny dla Twojego przypadku użycia.
Rozważ łączenie wielu technik dla głębszej ochrony: na przykład spłaszczanie przepływu sterowania w połączeniu z szyfrowaniem stringów i podstawianiem instrukcji. Jednak pamiętaj, że każda dodatkowa warstwa obfuskacji pogarsza wydajność i utrudnia debugowanie.
Podobne skille
accessibility-compliance
autor: wshobson
manim
autor: davila7
academic-researcher
autor: Shubhamsaboo
brand-voice
autor: anthropics
content-creator
autor: alirezarezvani
gmail-manager
autor: jeffvincent