加载中…
个人资料
行者无疆-超越
行者无疆-超越
  • 博客等级:
  • 博客积分:0
  • 博客访问:23,590
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

奇虎360安全牛人全球挑战赛无线部分

(2014-04-29 09:00:35)
标签:

android

安全

it

分类: Android安全

前几天在网上看到了一个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文件和资源文件构造一个新的Android工程,编译出来,运行结果和原版一样。

5.  给工程中加入一个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一致的工程文件。

2.      写一个MyApplication类继承原版中的StubApplication

3.      AndroidManifest.xml中"application"标签的StubApplication换成MyApplication

4.      AndroidManifest.xml中的package属性换成com.qihoo.crack.StubApplication

5.      加入一行"original-package android:name="com.qihoo.test" "

6.      将标签activity和provider中的类名补全,也就是加上com.qihoo.test(原来的是用.开头)

7.      编译并运行成功。

8.      apktook将新版的apk反编译。

9.      将新版的MyApplication.smilAndroidManifest.xml文件拷贝到原版的反编译目录中。

10.    重新用apktool打包并签名。

11.    运行看结果。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有