Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Stosywywołańisymbole
37
Każdyztychtypówwykorzystujeinneograniczeniapodpisywaniakodu,włącznie
ztym,jakiepodmiotyupoważnionedopodpisaniaplikuobrazuprocesu,ktojest
autoryzowanydopodpisywaniabibliotekDLL,atakżewymaganyalgorytmskrótu.
Każdytypwymuszarównieżniecoinnyzestawograniczeńprawdostępu,naktó-
repozwala.DlaprzykładuproceszochronąPsProtectedSignerAuthenticodemoże
przyznaćwywołującemuprawoPROCESS_TERMINATE,aleproceszochronątypu
PsProtectedSignerAntimalwarejużnie.
Każdyztypówochronymożebyćoznaczonyalbojako„protectedprocess”,albo
jako„protectedprocesslight”.Wersja„light”(lekki)maniższypriorytet,niżodpo-
wiadającymutypbeztegooznaczenia,cojestbranepoduwagę,gdyjedenproces
chronionypróbujeuzyskaćdostępdoinnego.To,któreprocesychronione,atakże
typochronykażdegoznich,możnasprawdzićprzyużyciunarzędziaProcessExplorer,
opisanegowrozdziale3.
WięcejinformacjinatematchronionychprocesówmożnaznaleźćwpostachAlexa
Ionescu,współautoraWindowsInternals:
http://www.alex-ionescu.com/?p=97
http://www.alex-ionescu.com/?p=116
http://www.alex-ionescu.com/?p=146
http://www.nosuchcon.org/talks/2014/D3_05_Alex_ionescu_Breaking_
protected_processes.pdf
Stosywywołańisymbole
WielenarzędziSysinternalswtymProcessExplorer,ProcessMonitoriVMMap
potrafiwyświetlićszczegółyścieżekkoduwykonywanegowokreślonympunkciecza-
su,nazywanestosamiwywołań.Powiązaniesymbolizmodułamiwprzestrzeniadre-
sowejprocesuzapewniabardziejznaczącykontekstinformacjiotychścieżkachkodu,
szczególniewprzypadkukodusamegosystemuoperacyjnego.Zrozumieniestosów
wywołaniaisymboliorazsposobówichkonfigurowaniawnarzędziachSysinternals
zapewniaogromnąwiedzęozachowaniuprocesówiczęstopozwaladotrzećdopraw-
dziwejprzyczynyproblemu.
Czymjeststoswywołań?
Kodwykonywalnywprocesiejestzazwyczajuporządkowanyjakokolekcjaoddziel-
nych,dyskretnychfunkcji.Abymócwykonaćswojezadania,funkcjamożewywoły-
waćinnefunkcje(funkcjepodrzędne).Gdyfunkcjazakończydziałanie,przekazuje
sterowaniezpowrotemdofunkcji,którawywołała.
Prostyprzykład,pokazanynarysunku2-8,demonstrujetakiprzepływdziałań.
MyApp.exejestpowiązanazbibliotekąDLLonazwieHelperFunctions.dll.DLL
zawierafunkcjęonazwieEncryptThisText,któraszyfrujeprzekazanydoniejtekst.