Seminarium: Systemy Rozproszone
17 marca 2022 12:15, sala 4070, transmisja online
Wykonanie symboliczne polega na wykonywaniu kodu gdzie zamiast niektórych danych wejściowych podstawiamy zmienne symboliczne. W efekcie otrzymujemy zbiór ograniczeń, które możemy następnie rozwiązać używając SMT solvera, by utrzymać dane wejściowe powodujące wykonanie danej ścieżki. Wykonanie symboliczne jest stosowane głównie do szukania błędów w oprogramowaniu i testowania go, ale także do deobfuskacji czy inżynierii wstecznej.
KLEE jest frameworkiem do dynamicznego wykonania symbolicznego, działającym na poziomie kodu bitowego LLVM.
W trakcie prezentacji pokażę proste przykłady użycia KLEE, oraz opowiem jak został zastosowany do weryfikacji zliczania referencji w jądrze - skutkując znalezieniem 118 błędów, w tym 87 nowych.
Zapraszam,
Karol Baryła
Bibliografia:
Zapraszam,
Cezary Bednarz
Bibliografia: