2010-11-06 21 views
16

Esiste un compilatore C/C++ noto che genera codice offuscato/non trasmesso? O forse qualche patch per compilatore C/C++ open source come GCC?Compilatore C/C++ che genera codice offuscato

+8

'-O3' è davvero difficile da decifrare – Anycorn

+8

Bene, la macchina codifica il C e I compilatori di compilatori C++ sono già abbastanza offuscati. Vieni a pensarci, qualche codice C e C++ che ho visto è già abbastanza offuscato ... :-P –

+0

Huh. Non è divertente –

risposta

3

Se sei interessato a strumenti commerciali, potresti voler dare un'occhiata a Morpher (dichiarazione di non responsabilità: lavoro su questo progetto). Si tratta essenzialmente di una versione di llvm-gcc con ulteriori passaggi di offuscamento: si suppone che utilizzi Morpher come sostituzione drop-in per gcc. I passaggi per l'offuscamento comprendono protezione costante, clonazione di blocchi e funzioni di base, mesh di archi in CFG e altri; sono descritti nello documentation section con esempi di assemblaggio. I linguaggi ufficialmente supportati sono C/C++/Objective-C/Objective-C++, sebbene potremmo adattarlo a tutto ciò che può essere compilato su LLVM IR in base alla tua richiesta.

+0

Bene, ecco anche il mio piccolo esperimento: http://blogs.conus.info/node/58 –

3

È possibile offuscare l'assembler con http://www.pelock.com/products/obfuscator. Probabilmente puoi compilare l'assembler (in questo caso lo stile MASM) e quindi offuscarlo.

Edit: usando molti virtuale funzioni/indiretto e/o di un interprete (vale a dire creare il proprio mini-bytecode per alcune fasi di trattamento dei suoi) come parte dei risultati di codice, nella mia esperienza, nel codice del tutto unreverseable.

-1

Un altro approccio potrebbe essere quello di eseguire l'eseguibile all'interno di un ambiente VM protetto. ZProtect - un prodotto che non ho né utilizzato né approvato, ma piuttosto trovato con un "Mi sento fortunato con Google" - afferma di fornire più livelli di protezione del codice (VM, crittografia, offuscamento, ecc.).

Se qualcuno davvero vuole davvero sapere come hai fatto qualcosa, lo scopriranno - se si tratta di un furto di proprietà intellettuale, allora assumere un buon avvocato. Se è crittografico, utilizza un approccio industriale comprovato. E se si tratta di qualcosa di DRM, beh, si tratta di una lotta per passare all'hardware (e ai rootkit) comunque.

+2

DRM è una lotta per lo stupido. Alla fine i pirati vinceranno. Lo stesso vale per qualsiasi altro IP, non appena lascia il tuo possesso, è solo una questione di tempo finché qualcuno non lo toglie completamente dal tuo controllo. – BCS

+0

questo non è penso che l'asnwer – MLSC

1

Qualunque compilatore questo è in grado di generare una pseudo numeri casuali campionature (tramite __COUNTER__) e può iniettare byte in un flusso di assemblaggio in linea (via __emit) può eseguire offuscamento codice linea, il suo nulla come confezionatori esterni e obfuscaters fanno, che può essere un vantaggio La "forza" si basa principalmente su quanto metaprogrammazione ci metti, ma ovviamente non potresti mai criptare IAT ecc.

Problemi correlati