這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
別人需要做這個功能,開始用易語言實現,發現被編碼的問題繞到坑底了,ANSI-UTF8 ,gb323-uft8 ansi到un等等,做到最後也沒有完成,因為做一個程式顧客的要求有時候很苛刻,有的甚至需要幾個小時完成。
因為這個APK,是新版本的,我曾經研究了幾百個APK,也反編譯了上百個SWF,研究過上百個JS加密的,所以非常懂得這些東西套路,目前SO庫加密的比例很幾年前的20%急劇上升到目前的90%,也就是說,反編譯上基本上是一條不歸路、也是一條血路。
APK從以前的DEX檔案到反編譯的JAVA代碼,到SO庫跟蹤調試dump,再到修改smail代碼,再到反射HOOK注入,再到當前的記憶體截流等等,方法一波接一波,但是APK從加固、到反調試,再到校正等等,也是防止方法一重接著一重。
SWF的反編譯也是這樣一個上述一個過程。目前的SWF基本上調用了C語言的加密。
我做這些彈幕、人氣、私聊等程式,一般不會超過10小時就能完成,從自動註冊、自動發言,自動採集房間內ID,但是昨晚被編碼掉到坑底了,結果沒有辦法。
我寫程式一般用易語言,資料庫之類的應用程式用delphi、做酷炫的功能用UNITY3D、手機的話肯定是eclipse(很慚愧,寫了這麼多年的程式,光是刷人氣,彈幕、私聊的估計做了上百個了,從鬥魚、戰旗、龍珠、奇秀等,做到現在連電腦也買不起,全交給網吧網費了)。
先拿起我的python,先用QT設定視窗,為什麼不用GO語言呢,因為我開始用GO語言,本來實現了準系統,結果心碎了點,介面做起來麻煩一點,結果放棄了,QT做起來多爽啊,直接用QT設計師一分鐘把介面做完。
經過SO庫解密的代碼,再來轉換byte,具體解密的代碼暫時不放上了。
因為經過兩步加密,一種是so庫登入加密,一種是聊天的加密位元組演算法,沒有問題就完成,只用了不到1個小時。
go語言的話,過程和python一樣,只是介面的問題稍微麻煩點。
結論:用任何語言也不是問題,關鍵是在你遇到無法解決的痛點的時候,換種方式去思考吧。