Statička i dinamička analiza programa : završni rad - Krmpotić Đurđević, Maja (M. Krmpotić Đurđević, 2018)
Sažetak na hrvatskom: Postupci reverznog inženjerstva mogu se koristiti kako bi se neko programsko rješenje nadogradilo, popravilo, analiziralo i slično. Reverzno inženjerstvo uključuje primjenu postupaka statičke i dinamičke analize programa. Statička analiza započinje analizom same datoteke, odnosno zaglavlja i sekcija datoteke propisanih formatom PE. Potom se traže znakovni nizovi i korištene vanjske biblioteke koji mogu ukazivati na namjenu programskog rješenja. Ukoliko je riječ o aplikaciji za platformu .NET, postupci statičke analize uključuju i analizu međukoda generiranog u kod zapisan jezikom CIL. Potom se primjenjuju postupci dinamičke analize programa prilikom kojih se program analizira za vrijeme izvođenja. Tada je moguće pratiti vrijednosti koje se nalaze na gomili i stogu te izvoditi program naredbu po naredbu. Postupcima dinamičke analize programa najlakše je prepoznati tijek i zadaću programa. Međutim, za aplikacije za platformu .NET dinamičkom analizom dolazi se do informacija o naredbama radnog okvira i nije moguće pronaći korisnički kod. Iako su postupci reverznog inženjerstva iznimno korisni, većinom su pravnih dokumenata zabranjeni ili su prava na analizu programa ograničena autorskim pravima izvornog autora programskog rješenja.