奇虎360安全牛人全球挑戰賽無線部…
新書上市《深入解析Android 5.0系統》
前幾天在網上看到了一個360安全挑戰賽的站點下載了當中無線挑戰部分的題看了看。一共同擁有三道題,前面兩道題比較簡單,都是關於apk的反編譯。大概花了4個小時完畢了,可是第三道題卻沒完畢,這道題須要工具來完畢so文件的反編譯。然後在網下了IDA的評估版。反編譯出來看了看,可是我對ARM匯編還沒有熟到看C代碼一樣。要完畢預計比較費勁,大概須要好幾天。畢竟自己不是專業玩破解的,並且將來預計也不會幹這行,也就懶了費這個勁了,放棄了。有點奇怪的是。為什麽把這個破解的題放到無線部分,而另外還設有專門的破解挑戰。
站點:http://challenge.onebox.so.com/DeveloperZhaopin/question?tag=wireless#nav-wrap。
如今挑戰應該已經結束了,把前面兩道題的情況講一講。
第1題:
1.請重打包本qihootest1.apk,將java層實現的解密算法移至jni層又一次實現,並在同一控件中展示解密後的內容;
完畢方法:
1. 先把apk文件的classes.dex解壓縮出來,然後用dex2jar將classes.dex轉換成jar包。
2. 用jd-gui將jar包轉換成java文件。
3. 用apktool將apk文件的資源文件解析出來
4.
5. 給project中增加一個JNI的so文件。
把Java實現的DES加密算法移究竟層。可是我在Android的c++沒有找到DES加密的庫,僅僅能在網上找了一段DES算法加進去。事實上也能夠在C++層調用Java的函數來完畢。
6. 用apktool反編譯我們新的apk文件。
7. 打開第6步中得到的MainActivity.smil文件,找到裝載JNI庫和定義NATIVE函數的語句增加到第3步中原版的MainActivity.smil文件裏,同一時候找到調到解密函數的語句,改成和新版
8. 將我們的so文件放到lib/armeabl文件夾。
9. 用apktool又一次打包,打包時會報錯,告訴你有個資源文件格式不正確。不知道是不是出題者留的陷阱,沒管它,隨便找了個圖片文件替代,又一次打包成功。
10. 簽名。
11. 又一次執行。完畢。
第2題:
1.請以重打包的形式將qihootest2.apk的程序包名改為"com.qihoo.crack.StubApplication",使得在同一手機上面能夠反復安裝並正確執行;
2.請寫個Application類,並在Manifest裏面註冊你的Application。同一時候要求使用該Application載入原包的Application;
完畢方法
1. 和前一題一樣,先構造出一個和原版apk一致的project文件。
2. 寫一個MyApplication類繼承原版中的StubApplication。
3. 將AndroidManifest.xml中"application"標簽的StubApplication換成MyApplication
4. 將AndroidManifest.xml中的package屬性換成com.qihoo.crack.StubApplication。
5. 增加一行"original-packageandroid:name="com.qihoo.test" "
6. 將標簽activity和provider中的類名補全,也就是加上com.qihoo.test(原來的是用.開頭)
7. 編譯並執行成功。
8. 用apktook將新版的apk反編譯。
9. 將新版的MyApplication.smil和AndroidManifest.xml文件復制到原版的反編譯文件夾中。
10. 又一次用apktool打包並簽名。
11. 執行看結果。
??奇虎360安全牛人全球挑戰賽無線部…