因為工作需要,轉型干android逆向,有幾個月了。不過對於so的逆向,任然停留在,難難難的階段,雖然上次自己還是逆向了一個15k左右的小so文件,但是,那個基本是靠,一步一步跟代碼,查看堆棧信息來自己得到的結論。
下面來說說,什么是半自動化吧,我是這樣認為的。
很多時候,由於so只是一個加密算法,或者什么操作,並且相當復雜,所以我們並不需要對他進行完全逆向,因為那樣很麻煩。
版本1. 自己寫一個app,使用某個需要逆向算法的so文件,然后在app中調用那個算法。使用http協議提供接口,供exe程序調用。
這樣寫,無非就是自己寫了一個app,然后加入了,某款應用的so文件,進行逆向操作,通過http傳入參數,調用so算法,得到返回值,可以在不逆向so的情況下進行算法調用。
不過這樣寫,也是有一些麻煩的,針對so多個相互調用和,對app耦合比較高,可能有時候這樣,就會報錯,報一些找不到原因的錯誤。
版本2.使用xposed+app的方法,來調用其他app的so的算法,同樣提供http服務接口。來給其他第三方程序調用。
這樣,無非就是找到算法的加密地點,然后進行調用。一般大公司的app,這種方式都是可以拿下,至於小公司的就不好說了,因為很多小公司,so和java代碼都是一批人寫的,
他們可能會做一些比較惡心的處理。所以比較麻煩。
大神版本:我想大神應該都是把別人so算法逆向出來了,所以不需要依賴上面的這種方式,
但是這種方式也有他的優勢所在,就是高效,可以在不具體操作算法的情況下,進行操作。
YY版本:(yiyin版本)這種版本是我最喜歡的了,就是,打入敵人內部。。。嘎嘎。。直接源碼。。
總結:
已經三個月沒有寫過東西,感覺手生疏得不可收拾。。。哎,先寫幾篇,充充數,后面再分享點比較精彩的文章。。。歡迎品鑒。
后話:
腦殼有點昏,導致排版有點差,見諒,見諒。