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
risposta
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.
Bene, ecco anche il mio piccolo esperimento: http://blogs.conus.info/node/58 –
È 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.
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.
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.
- 1. codice offuscato in C
- 2. Perché il compilatore genera questo codice?
- 3. Debug di codice offuscato java
- 4. Potete testare il codice offuscato dall'Unità?
- 5. È sbagliato ri-offuscare il codice offuscato?
- 6. Come funziona questo codice Perl offuscato?
- 7. Perché il compilatore genera sqrts aggiuntivi nel codice assembly compilato
- 8. Perché un compilatore genera questo assieme?
- 9. Codice C con risultati non definiti, il compilatore genera codice non valido (con -O3)
- 10. Quanto è facile decodificare il codice .net offuscato?
- 11. Hai bisogno di aiuto per spiegare un codice C++ offuscato?
- 12. Perché il compilatore Rust genera enormi eseguibili?
- 13. Codice offuscamento di Android con ProGuard ... come si sa che è stato offuscato?
- 14. Nei makefile cosa significano CC e LD?
- 15. Il compilatore compilerà solo il codice che può essere eseguito?
- 16. PHP Mail, CC Field
- 17. Funzionamento CC-Tray
- 18. Cos'è un semplice codice F # che genera l'istruzione .tail IL?
- 19. In che modo questo codice genera la mappa dell'India?
- 20. Editor di GUI Netbeans che genera il proprio codice incomprensibile
- 21. Perché questo codice genera System.ExecutionEngineException
- 22. Test di unità di scrittura nel mio compilatore (che genera IL)
- 23. genera codice Emmet da HTML
- 24. Gradle Android accumulo risultante APK contiene sia offuscato e le classi non offuscato
- 25. Come eseguire il debug di JavaScript offuscato?
- 26. C++ con un comportamento indefinito, compilatore genera std :: eccezione
- 27. mailto con più indirizzi cc
- 28. Continuazione (chiamata/cc) nello schema
- 29. mountainlion aprile compilare manca 'cc'
- 30. Filtro angolare che genera HTML
'-O3' è davvero difficile da decifrare – Anycorn
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 –
Huh. Non è divertente –