-
-
[原创]2015移动安全挑战赛 题目一 分析
-
发表于: 2015-1-26 15:16 2602
-
2015移动安全挑战赛 题目一 分析
————————————————————————
目录
————————————————————————
1、前言
2、分析
3、解决
4、总结
正文
————————————————————————
1、前言
本来菜鸟一枚,几年前还在上学的时候因为写了一篇入门级破解文章获得了会员资格,后面工作之后很少来看雪了,不过偶尔还是会来逛逛,嘿嘿~
这两天收到看雪[2015移动安全挑战赛]的邮件,抱着试一试的态度就参加了,但是我不懂安卓呀,完全业余啊,没法,正好晚上有时间,现学现卖就试试吧~
2、分析
(1)吃完饭,8点半了,已经开始了,点击下载APK,没得安卓机呀,马上安装一个安卓模拟器,成功运行APK,输入密码?破解?
(2)百度搜索 APK反编译相关文章,看了个大概,知道怎么办了,呵呵!

(图1)
(3)下载了一个【Android逆向助手.exe】(如图1),反编译,耶没反应??想了下可能是没安装JAVA,CMD执行JAVA,结果显示未知,果然没安装JAVA环境,马上下载JAVA-SDK,140M,五分钟下载安装。再用工具反编译后得到一个文件夹,里面有smali文件夹,打开一看,哇,是代码啊!!!瞬间有点高兴,打开代码一看,瞬间不高兴了,不是JAVA代码,完全看不懂啊~怎么办,百度smali语法,看文章,好,按以前PEDIY的经验,修改IF-EQZ为IF-NEZ就OK了三~~~我找呀找,找到关键代码,修改反编译,耶OK,放到模拟器安装。额,,,安装失败,看错误信息,一堆鸟语,大概是没有签名,好说简单上工具签名,再安装,OK!运行,点击按钮,提示“破解成功”,这个。。。。也太简单了吧~哈哈
(4)准备登陆账号上传修改后的APK,我晕,半天登陆不进啊,肿么回事???谁能告诉我??换成IE试试,居然成功了,看来看雪新专题页面JS没处理好啊,哈哈
(5)提交答案,啊啊啊啊,,,,要提交密码啊,不是说的提交APK么???这下完了
(6)重新打开代码,算法看不懂啊,旁门左道不行,看来还是要弄成JAVA代码才行,分析算法啊。
3、解决
————————————————————————
(1)把APK改后缀名为RAR,提取出DEX
(2)用上面的工具把DEX转成JAR
(3)用上面的工具把JAR用JD打开,哇终于看到了久违的代码,兴奋有木有!
(4)找到按钮事件,看到了要调用的两个算法函数,大概意思是从图片上获取字符串,耶,怎么两个代码被注释了,不是JAVA代码呢?怎么办,没得源码,就没法分析算法啊!!
(5)突然我想起了刚刚看SMALI代码的时候,SMALI没注释啊,再看看呢,在SMALI代码里,看到了被注释的代码实际就是调用了两个字符串转数组的方法,而且这两上方法在JAVA代码里没有被注释!!这太明显了~哈哈,只要获取要对比的字符串原码就行了~
(6)再分析代码,看到了log.i(),它把函数获取的内容输出了,这还不简单,把日志找出来就可以了!
(7)百度搜索“模拟器获取log日志”,原来可以用几个命令就行了
(8)进入F:\手机\Android_SDK\platform-tools目录,打开CMD,再执行日志导出命令:adb logcat >1.txt,日志到手,嘿嘿
(9)下面就简单了,拿到日志,把日志中的两个字符串取出来,再用JAVA代码反过来执行一下不就是密码了,SO EASY吧
(10)但是电脑上没有安装JAVA开发环境啊,不过算法一看很简单,电脑上安装有VS啊,算法迁移到c#语法应该差不多吧,好马上开始!最终结果如图2

(图2)
(11)获取密码,提交密码,一看已经有100个人提交了,再一看时间已经12点了,整个过程一共花了3个多小时,看来我还是太业余了,哈哈
4、总结
————————————————————————
总的来说,虽然这个题目还是比较简单,但是用到了APK反编译的基本步骤,由于之前没有APK反编译经验,所以整个过程比较慢,得边看边学,可以说还是有收获的!
最后还是感谢看雪给了我一个学习的机会,嘿嘿,以后有空还是要多学习学习啦~
————————————————————————
目录
————————————————————————
1、前言
2、分析
3、解决
4、总结
正文
————————————————————————
1、前言
本来菜鸟一枚,几年前还在上学的时候因为写了一篇入门级破解文章获得了会员资格,后面工作之后很少来看雪了,不过偶尔还是会来逛逛,嘿嘿~
这两天收到看雪[2015移动安全挑战赛]的邮件,抱着试一试的态度就参加了,但是我不懂安卓呀,完全业余啊,没法,正好晚上有时间,现学现卖就试试吧~
2、分析
(1)吃完饭,8点半了,已经开始了,点击下载APK,没得安卓机呀,马上安装一个安卓模拟器,成功运行APK,输入密码?破解?
(2)百度搜索 APK反编译相关文章,看了个大概,知道怎么办了,呵呵!

(图1)
(3)下载了一个【Android逆向助手.exe】(如图1),反编译,耶没反应??想了下可能是没安装JAVA,CMD执行JAVA,结果显示未知,果然没安装JAVA环境,马上下载JAVA-SDK,140M,五分钟下载安装。再用工具反编译后得到一个文件夹,里面有smali文件夹,打开一看,哇,是代码啊!!!瞬间有点高兴,打开代码一看,瞬间不高兴了,不是JAVA代码,完全看不懂啊~怎么办,百度smali语法,看文章,好,按以前PEDIY的经验,修改IF-EQZ为IF-NEZ就OK了三~~~我找呀找,找到关键代码,修改反编译,耶OK,放到模拟器安装。额,,,安装失败,看错误信息,一堆鸟语,大概是没有签名,好说简单上工具签名,再安装,OK!运行,点击按钮,提示“破解成功”,这个。。。。也太简单了吧~哈哈
(4)准备登陆账号上传修改后的APK,我晕,半天登陆不进啊,肿么回事???谁能告诉我??换成IE试试,居然成功了,看来看雪新专题页面JS没处理好啊,哈哈
(5)提交答案,啊啊啊啊,,,,要提交密码啊,不是说的提交APK么???这下完了
(6)重新打开代码,算法看不懂啊,旁门左道不行,看来还是要弄成JAVA代码才行,分析算法啊。
3、解决
————————————————————————
(1)把APK改后缀名为RAR,提取出DEX
(2)用上面的工具把DEX转成JAR
(3)用上面的工具把JAR用JD打开,哇终于看到了久违的代码,兴奋有木有!
(4)找到按钮事件,看到了要调用的两个算法函数,大概意思是从图片上获取字符串,耶,怎么两个代码被注释了,不是JAVA代码呢?怎么办,没得源码,就没法分析算法啊!!
(5)突然我想起了刚刚看SMALI代码的时候,SMALI没注释啊,再看看呢,在SMALI代码里,看到了被注释的代码实际就是调用了两个字符串转数组的方法,而且这两上方法在JAVA代码里没有被注释!!这太明显了~哈哈,只要获取要对比的字符串原码就行了~
(6)再分析代码,看到了log.i(),它把函数获取的内容输出了,这还不简单,把日志找出来就可以了!
(7)百度搜索“模拟器获取log日志”,原来可以用几个命令就行了
(8)进入F:\手机\Android_SDK\platform-tools目录,打开CMD,再执行日志导出命令:adb logcat >1.txt,日志到手,嘿嘿
(9)下面就简单了,拿到日志,把日志中的两个字符串取出来,再用JAVA代码反过来执行一下不就是密码了,SO EASY吧
(10)但是电脑上没有安装JAVA开发环境啊,不过算法一看很简单,电脑上安装有VS啊,算法迁移到c#语法应该差不多吧,好马上开始!最终结果如图2

(图2)
(11)获取密码,提交密码,一看已经有100个人提交了,再一看时间已经12点了,整个过程一共花了3个多小时,看来我还是太业余了,哈哈
4、总结
————————————————————————
总的来说,虽然这个题目还是比较简单,但是用到了APK反编译的基本步骤,由于之前没有APK反编译经验,所以整个过程比较慢,得边看边学,可以说还是有收获的!
最后还是感谢看雪给了我一个学习的机会,嘿嘿,以后有空还是要多学习学习啦~
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
赞赏
雪币:
留言: