挥汗如雨 发表于 2017-4-25 17:32

陕西省网络空间安全技术大赛安卓破解试题分析(一)

本帖最后由 挥汗如雨 于 2017-12-17 12:48 编辑

今年的陕西省网络安全大赛一共有5道题,笔者将详细讲一下解题过程及思路。(特别感谢:@东梨子。推荐一下对我帮助很大的simp1er 的博客 http://wsimp1er.com/)


第二题破解及思路:http://www.52pojie.cn/thread-603169-1-1.html


第三题破解及思路:http://www.52pojie.cn/thread-604320-1-1.html(作者是@Enigma_G ,感谢他的付出 )


第四题破解及思路:http://www.52pojie.cn/thread-604822-1-1.html(作者是@Enigma_G ,感谢他的付出 )


第五题破解及思路:http://www.52pojie.cn/thread-605059-1-1.html(作者是@lumou ,感谢她的付出)

==================================================================

第一道题:
然后给你个apk文件:链接: https://pan.baidu.com/s/1jIL6icm 密码: rtjb
打开是这样的:
也就是需要参赛选手破解出来密码,下面直接说思路。


Android kill 打开这个文件,翻译成Java代码进入入口函数



可以明显看到调用的.so文件和判断语句,直接用IDA打开这个.so文件


PS:其实   lib目录下面有两个文件夹


这俩的区别是一个是arm 一个是x86,也就是32位和64位,我一开始用的arm里面的.so文件,但是IDA F5后不太友好,有的语句没有反编译出来,所以建议选择x86里面的,还有我以前用的是吾爱IDA6.6汉化的,经过对比发现吾爱破解工具包2.0里打包的IDA6.8版本F5效果比较好。




IDA里导入humen.so文件






找到这个函数,F5后直接看代码,明显的一段算法+比较,算法大概的分析写上面了,当初写的比较粗心,数组其实是从0开始的,第12号字符其实是第13个,请把里面的“个”看成“号”,抱歉。


直接点开这个t_ptr可以发现是输入的字符串经过加密后是同它比较的




好了,知道算法和最后的字符串,直接反过来算一遍。


原来的加密方式


python 逆推和结果


结果输入进去:


由于楼主的重点在逆向出密码,所以安卓分析讲的不太详细,可以参考@Enigma_G 的帖子http://www.52pojie.cn/thread-603799-1-1.html,IDA变量名称方面讲的也很不错。

第二题破解及思路:http://www.52pojie.cn/thread-603169-1-1.html


第三题破解及思路:http://www.52pojie.cn/thread-604320-1-1.html(作者是@Enigma_G感谢他的帮助 )


第四题破解及思路:http://www.52pojie.cn/thread-604822-1-1.html(作者是@Enigma_G ,感谢他的付出 )




第五题破解及思路:http://www.52pojie.cn/thread-605059-1-1.html(作者是@lumou ,感谢她的付出)

lumou 发表于 2017-4-26 21:10

超开心,看了楼主的题目后,根据所学的知识我用了另外一种方法破解,没有研究它的算法。我也讲一下我的解题思路吧。

从这里,我们除了知道调用.so文件还可以知道如果返回是“a”就可以打开WindowActivity,也就是输入密码后的界面。
然后和楼主一样,用IDA打开这个.so文件,找到那个函数,按下空格键之后可以看到这样的界面:

这是一个jl判断跳转的(额……我的理解就只有这点),顺利的话往右边,看到‘a’,不然就是'b'。而且这两个分支除了‘a’和‘b’那里不一样外,其他都一样,所以我想着应该可以只修改这里。
把光标放到aA那里,然后切换到hex-view模式,可以看到:

这就确定了修改的位置。
最后用APK改之理来打开这个apk文件,

用16进制编辑器打开这个so文件,到0DC3h处修改它(把62改成61)

最后重新编译生成apk就可以了。结果图如下:

谢谢楼主!!

我爱小彤 发表于 2017-4-25 17:53

,厉害了,还得会Python,还得会看java代码{:301_990:}看不懂

邪梦 发表于 2017-4-25 18:31

过来看看学习学习,

★邪梦 发表于 2017-4-25 18:35

感谢分享,学习一下,

end620 发表于 2017-4-25 18:36

支持,谢谢

仙峰涯 发表于 2017-4-25 19:11

小白来围观学习一下。

caddy 发表于 2017-4-25 19:22

thx for share.

YsGer 发表于 2017-4-25 19:50

我爱小彤 发表于 2017-4-25 17:53
,厉害了,还得会Python,还得会看java代码看不懂

一法通万法通{:1_900:}

guiwushaonian 发表于 2017-4-25 20:43

学习一下,好好看看

==! 发表于 2017-4-25 20:59

感谢楼主分享!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 陕西省网络空间安全技术大赛安卓破解试题分析(一)