zoukankan      html  css  js  c++  java
  • 奇虎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解压缩出来,然后用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.   执行看结果。

    
  • 相关阅读:
    vue.js环境配置步骤及npm run dev报错解决方案
    消息处理之performSelector
    iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
    iOS手机号正则表达式并实现344格式 (正则的另一种实现方式)
    IOS开发——正则表达式验证手机号、密码
    iOS网络请求之---GET和POST
    CLLocation
    ios本地文件内容读取,.json .plist 文件读写
    UITableViewCell的4种样式
    iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry)
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/9960212.html
Copyright © 2011-2022 走看看