. Kako sa naprednijim obfuskatorima? Odgovor je (kao i uvek:) jednostavan: rešenje je raditi samo sa bajtkodom
poziv statičke metode neke Tracer klase koja radi ispis u fajl. Za početak je potrebno ostvariti izmenu bajtkoda
biblioteka, treba primetiti jednu bitnu stvar - Java nam omogućuje da generišemo proizvoljne klase na osnovu bajtkoda
koriste za imena metoda i promenljivih itd. Sama virtuelna mašina nema takvih ograničenja i izmenom samog bajtkoda
Ovakve greše se primećuju tek u run-time-u. Ipak, upravo ovakva fleksibilnost omogućuje totalnu kontrolu bajtkoda
olakšavaju proces generisanja klase, tako što ne moramo ručno da pravimo niz bajtova koji predstavlja bajtkod
instrukcijama. Druga stvar koju je neophodno imati je dobar bajtkod kompajler koji može da kompajlira takav bajtkod
AspectJ se pokazao kao jako korisan alat za ovakve stvari jer dopušta elegantnu direktnu manipulaciju bajtkoda
sličan uobičajenom Java sorsu. Drugi program je, naravno, asembler (tj. kompajler), koji od ovakvog bajtkod
kompajliranje. Ovaj članak se bavi upravo takvim zaštitama, koje je jedino moguće prevazići na nivou bajtkoda