码迷,mamicode.com
首页 > 系统相关 > 详细

iscc2016 mobile1-TurtleShell.apk解题过程

时间:2016-05-25 22:03:24      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:

拿到程序先运行,简单的验证输入的flag正确与否。jeb加载apk文件

技术分享

实在库文件里面验证,所以ida加载之,so文件是加密的,所以看不到关键验证函数,百度搜了下libhackme.so,出来这篇文章:

http://burningcodes.net/so%E5%8A%A0%E5%9B%BA%E7%B3%BB%E5%88%97%E4%B9%8B%E8%BF%90%E8%A1%8C%E6%97%B6%E8%A7%A3%E5%AF%86/

看了下调用的函数,可以确定这个so文件就是文章里面所述的加解密方法,加密修改elf头的e_entry和e_shoff字段分别为要加密section的偏移和大小,然后那个section简单的移位操作,运行时解密通过elf头文件的这两个值定位待解密section,然后恢复section到内存中,所以通过dump程序运行时加载的so文件就能得到解密和的so。具体过程如下:

技术分享

然后就可以分析so文件的关键函数了:

技术分享

dump出的文件拿到ida加载可以看到关键函数crackme,里面调用了bingmeiyoushenmeluanyong函数(然而是有用的),算法很简单,前16位已经给出,后16位替换下就行。

技术分享

iscc2016 mobile1-TurtleShell.apk解题过程

标签:

原文地址:http://www.cnblogs.com/Joe-Z/p/5528395.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!