最近準備從x86上轉移到linux上, 因而乎弄了個手游來玩, 正巧朋友推薦了一個修改軟件,相似於八門神器、CE,用於搜索修改遊戲數據,因而抱着好奇的心理初步研究了下該軟件的原理:linux
研究了下軟件, 搜索,修改,暫停遊戲,實現BT都有,比較齊全,猜想應該核心功能是基於SO上實現的。android
打開AndroidKiller.exe,拖進APK,很順利的反編譯完成安全
在目錄結構並無發現so相關的東西, 搜索LoadLibrary也一無所得,看下進程信息函數
我擦,居然沒有進程信息。。。糾結了。先經過smail看它現有的信息吧。工具
搜索它的catch_.me_.if_.you_.can_,也依然一無所得, 那麼搜索它的版本號呢,測試
發現了:加密
這裏定義的版本號,繼續往下瀏覽, 發現:spa
這裏的代碼,經過插入輸出信息,能夠知道,它這裏獲取了包名,接着原名被替換掉了,至此原來不是沒有找到,而是被替換了,因此按照原來的去找就確定找不到了。調試
此舉作法,應該是防止殼或者檢測類軟件檢測它的進程信息。遊戲
接着繼續看它的啓動信息, 由於該軟件能kill掉其餘進程,因此它多是守護進程。
在這裏輸出exec的參數,能夠發現一個關鍵性的點:
好傢伙果真有so 文件 ,那麼目錄中沒有,這裏又加載了,說明它的so是經過下載流dump出來的。
繼續往下看,發現:
到這裏OK,能夠在該路徑下把so文件給pull出來。
分析so部分
原來它用了ptrace該函數實現注入遊戲進程。
經過這兩個部分,一樣能夠對它實行一些檢測,好比檢測進程在被注入的狀況下,進程狀態, 檢測TracerPid的值, 被注入調試,該值不爲0。
菜鳥第一次挑戰apk,結果整得懷疑人生,終於知道android apk加密的重要性了。apk若是不作防禦,一個菜鳥花一點時間就能破解它,找個在線加密工具作防禦仍是很必要的,在網上找了幾家加密作測試,發現幾維安全的apk加密工具,dex文件加密用起來還不錯,關鍵仍是免費。平臺能夠無償使用加密工具,有須要的自取了!
http://cloud.kiwisec.com/encr...
拿走不謝
操做方法很是簡單隻需四步:
一、登陸官網註冊幾維安全帳號;
二、上傳所需加密文件(如.apk/.so等文件);
三、下載加密完成應用;
四、簽名;
此平臺也還有其餘加密功能,例如:安全檢測、安全監測、iOS加密等等。
因爲是菜鳥初入門檻,水平所限,寫的比較淺顯,還請大神勿噴。