1. 程式人生 > >奇虎360安全牛人全球挑戰賽無線部…

奇虎360安全牛人全球挑戰賽無線部…

led clear XML java dex mod 一次 http 簡單

新書上市《深入解析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解壓縮出來,然後用dex2jarclasses.dex轉換成jar包。

2. jd-guijar包轉換成java文件。

3. apktoolapk文件的資源文件解析出來

4.

利用前面得到的java文件和資源文件構造一個新的Androidproject。編譯出來,執行結果和原版一樣。

5. 給project中增加一個JNIso文件。

Java實現的DES加密算法移究竟層。可是我在Androidc++沒有找到DES加密的庫,僅僅能在網上找了一段DES算法加進去。事實上也能夠在C++層調用Java的函數來完畢。

6. apktool反編譯我們新的apk文件。

7. 打開第6步中得到的MainActivity.smil文件,找到裝載JNI庫和定義NATIVE函數的語句增加到第3步中原版的MainActivity.smil文件裏,同一時候找到調到解密函數的語句,改成和新版

apk中調用native函數的方式。

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.smilAndroidManifest.xml文件復制到原版的反編譯文件夾中。

10. 又一次用apktool打包並簽名。

11. 執行看結果。

??

奇虎360安全牛人全球挑戰賽無線部…