Mi interessa fare obfuscation del codice (codice nativo, per chiarire cosa intendo per "codice nativo": il codice macchina effettivo nei file eseguibili x86 / x64 / arm - PE, ELF, Macho e ecc., non i sorgenti) come parte di un processo di compilazione. Posso pensare a diversi modi per farlo:
-
Scrivere un plug-in del compilatore, che otterrebbe una rappresentazione interna dopo tutte le fasi di ottimizzazione, trasformarlo e quindi inviarlo al back-end del compilatore. In questo caso, potresti consigliarmi alcuni compilatori che supportano plug-in del genere? Il linguaggio di programmazione non ha molta importanza, ma mi piacerebbe provare qualcosa di diverso da C / C ++ (so che sia GCC e Clang supportano i plugin, ma non potrei mai farlo funzionare correttamente su Windows).
-
Esegui il dump della rappresentazione interna dopo tutte le fasi di ottimizzazione per archiviare, analizzare ed elaborare con il mio strumento di offuscamento e passarlo nuovamente al compilatore. Non sono riuscito a trovare come farlo con GCC (ho scaricato diverse rappresentazioni interne, ma non sono riuscito a trovare il modo in cui il compilatore genera codice da esso). E so che Clang è in grado di generare un codice a barre LLVM, che può essere elaborato e compilato con il compilatore LLVM, ma ancora una volta non riesco a farlo funzionare correttamente su Windows. Conosci qualche compilatore che permetta di fare cose del genere?
-
Attualmente sto facendo l'offuscamento tramite le fonti di pre-elaborazione, funziona, ma ci vuole troppo tempo per farlo per un grande code-base. Quindi sto cercando modi alternativi per farlo, e voglio leggere le tue opinioni su quale sia il modo migliore di offuscare il codice nativo.
PS Per favore, ricorda che sto facendo una domanda concreta. Non sto chiedendo se ho bisogno di offuscare non su . L'offuscamento è fatto per una ragione e ho una ragione per farlo. Non sto chiedendo come eseguire l'effettiva offuscazione del codice nativo o sugli algoritmi di offuscamento del codice . So come farlo e come romperlo.
Sto chiedendo informazioni sui compilatori di codice nativo che hanno un buon supporto per i plugin o possono eseguire il dump e ricompilare una rappresentazione interna di basso livello come AST (abstract syntax tree), RTL (register transfer language), tre -indirizzo del codice o altro .