本文來自網易雲社區。
越來越多的so文件採用了llvm進行加固,逆向的小夥伴表示不能愉快的玩耍了。本文對Obfuscator-llvm實現混淆的方式進行講解,希望能幫助到大家。
1. O-llvm介紹O-llvm是基於llvm進行編寫的一個開源項目(
https://github.com/obfuscator-llvm/obfuscator),它的作用是對前端語言生成的中間代碼進行混淆,目前在市場上,一些加固廠商(比如360加固寶、梆梆加固)會使用改進的O-llvm對它們so文件中的一些關鍵函數採用O-llvm混淆,增加逆向的難度。因此,掌握O-llvm的實現過程,是很有必要的。O-llvm總體構架和llvm是一致的,如圖1所示。