吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 24956|回复: 71
收起左侧

[Android CTF] 2016zctf_android1-200 writeup-【详细】

  [复制链接]
UNCLE 发表于 2016-2-25 15:36
本帖最后由 UNCLE 于 2016-3-1 18:18 编辑

ctf题目就不说了,不重要~~(原题在最后有下载)
使用jeb查看源码,发现对usernamepasswd进行部分验证后,再将将username+passwd及一个数据库查询结果作为Auth.auth()方法的参数,如果返回值为1则激活另外一个活动app
image1.png
image2.png
仔细查看类app的源码发现这个类对传入的passwd参数做了是否为空的校验,后面将密码传入jni中把passwd作为des解密密钥使用了,所以需要知道passwd是什么。
image3.png
如下的数据库查询,是将key.db使用select * from key where id = 0语句查询,结果为zctf2016(数据库为SQLite,可以工具打开key.db直接查看)
image4.png
image5.png
有趣的是源码中不但有加密函数,也有解密函数。所以带入文件内容和解密函数写一小段代码就能把密  
   码算出来。
        byte[] bsrc = { (byte) 0xd3, 0x3a, (byte) 0x60, (byte) 0xc4, (byte) 0x74, (byte) 0xf1, (byte) 0x0a, (byte) 0x0a,(byte) 0x0d, (byte) 0x71, (byte) 0x64, (byte) 0x82, (byte) 0x57, (byte) 0x26, (byte) 0x68,(byte) 0xd1 };
        byte[] bres = new byte[24];
        try {
            bres = decrypt(src, "zctf2016".getBytes());
        } catch (Exception e) {
            e.printStackTrace();
        }
        String s_res = new String(bres);
        System.out.println(bres);


输出结果为}sihttoN{ftcz”,记得字符串是被反向的,正确的应该为zctf{Notthis}。故用户名为zctf密码为{Notthis}


image6.png






image7.png

接着在app中有结束进程的代码
image8.png
所以这里要修改代码 例如将!=0改成==0
image9.png
即,if-eqz改成if-nez(汇编代码和反编译代码逻辑有些许不同)
image10.png
image11.png
然后JNIclassadd貌似是一个检测是否为调试状态的函数,并不知道参数的12有什么用,反正我没有修改这里也没有任何问题。
最后调用了sayHelloInc()

IDAf5查看源码,首先判断了是否为调试状态(later_Java_com_zctf_app_JNIclass_add函数),如果不是就打开bottom文件,读取并以{Notthis为密码做des解密。
image12.png
然后马上释放掉存储解密内容和源文件的空间,最后返回。
image13.png
要在later_Java_com_zctf_app_JNIclass_add执行完后面下断点,调试时修改返回值
image14.png
在这里停下来之后修改r0的值
image15.png
并且在free前面停下来,
image16.png
image17.png
f5反编译出的代码中可以看出v15bottom文件内容,v23存放解密后的内容,即R5R7,找到R7所指向的,并在hex view下选定范围并另存为png文件。
image18.png
最后用stegsolve打开图片发现flag
image19.png
这个写得比较粗略,如果有疑问的敬请提出,虽然知道的不多但是我会尽量回复的。

链接: http://pan.baidu.com/s/1i4v3DoL 密码: xsq5

免费评分

参与人数 19吾爱币 +1 热心值 +19 收起 理由
52lxw + 1 + 1 谢谢@Thanks!
不要二分法 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
mmmmar + 1 用心讨论,共获提升!
zy2pj + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
Nutural + 1 热心回复!
蓝洛水深 + 1 学习了,写的很详细
WildWolf + 1 用心讨论,共获提升!
Suny + 1 用心讨论,共获提升!
Tortoise + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
蚯蚓翔龙 + 1 android留名
罒_罒 + 1 鼓励转贴优秀软件安全工具和文档!
gaozhiyy + 1 热心回复!
wqbt + 1 写的很详细,部分地方还没看懂。
hackeydg + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
冒充歌神 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
枫MapleLCG + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
Sound + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
1.shui + 1 鼓励转贴优秀软件安全工具和文档!
dych1688 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zy2pj 发表于 2016-3-26 08:59
UNCLE 发表于 2016-3-25 19:20
请问一下现在这个问题解决了吗,我居然才发现这个问题,实在是对不起~~

前面的那个是评分。。。好像默认是倒序排列的。。。

这个问题我在网上搜了一下,找到一个类似的问题,
https://finn.svbtle.com/remotely-debugging-android-binaries-in-ida-pro,

但是按照他的设置把android_server放到模拟器里执行后还是不行,因为我的虚拟设备没有root,没法用su登录root权限执行,用的普通用户执行的,不知道是不是和这个有关?

楼主你ida调试的时候没有遇到这种问题吗?
 楼主| UNCLE 发表于 2016-3-2 07:14
WildWolf 发表于 2016-3-1 16:44
楼主,请教一下jeb的安装教程,压缩文件夹下面的jeb_wincon.bat,提示命令语法不正确,该如何解决

怎么会出现这种问题,你是在爱盘下载的? 设置好JAVA_HOME就可以了,怎么会有语法不正确的问题呢
http://down.52pojie.cn/Tools/Android_Tools/jeb-1.5.201508100_full_floating_cracked_colordancer.zip
JPK 发表于 2016-2-26 16:42
OmJJWang 发表于 2016-2-26 17:29
加精了,虽然我不知道主题是什么意思,就看了大幅的代码
 楼主| UNCLE 发表于 2016-2-26 18:08
OmJJWang 发表于 2016-2-26 17:29
加精了,虽然我不知道主题是什么意思,就看了大幅的代码

这个是最近zctf其中一道题的详细解题过程,官方给的都非常粗略
枫MapleLCG 发表于 2016-2-26 18:50
论坛大牛指日可待
冒充歌神 发表于 2016-2-26 19:47
论坛大牛指日可待
 楼主| UNCLE 发表于 2016-2-26 19:55
大家言重了,其实没什么
秋海明月 发表于 2016-2-26 22:40
学习一下。
wqbt 发表于 2016-2-27 10:44
写的很详细,部分地方还没看懂。再研究会。
 楼主| UNCLE 发表于 2016-2-27 13:01
wqbt 发表于 2016-2-27 10:44
写的很详细,部分地方还没看懂。再研究会。

有什么没看懂的直接说,我还可以完善一下来理清我的思路
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-19 04:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表