zctf 2016 android writeup - Jieming的博客
2024-10-08 20:30:51
本文为2016年zctf中android的writeup。
首先点我下载题目。使用jeb反编译,对username和password进行部分验证后,再将username+password及一个数据库查询结果(动态调试可知查询结果为zctf2016)作为Auth.auth()方法的参数,如果返回值为1则跳转到app页面。
进行算法还原,用户名是zctf,密码是{Notthis}。
|
|
在oncreate方法中有两部分影响程序调试,在smali中修改可以绕过。
关键地方如下图所示,在sayHelloInc函数下断点进行动态调试。
动态调试时遇到问题:静态分析时在armeabi下的so下断,动态调试出现断点处汇编代码不同(图二的断点对应图一的断点)或断点处汇编代码是DCB指令(下图三)的情况。
解决方法:把lib下的armeabi-v7a和x86都删去,只保留armeabi。
分析sayHelloInc函数知{Notthis}作为DES密钥对拼接后的数据流进行解密,解密后马上释放解密后的内容。在free函数处下断点,数据存放在R0寄存器。
解密后的数据太长明显不是字符串,发现是png图片(头数据89 50 4E 47 0D 0A 1A 0A 00是标准的png格式),png格式结尾是AE 42 60 82,右键存为文件。
打开图片没有flag说明flag隐藏在图片中,用stegsolve查看图片中隐藏的flag。
最新文章
- how-to-install-siege-on-centos-7
- putty如何使用
- 【01:转自知乎:关于 openSUSE 】
- codeforces 706D (字典树)
- 《.NET 编程结构》专题汇总(C#)
- 九度OJ 1349 数字在排序数组中出现的次数 -- 二分查找
- python编程语言 函数的形参
- javascript 封装 构造函数继承 非构造函数继承
- HTML DOM节点
- Win8下,以管理员身份启动VS项目
- 决策树模型比较:C4.5,CART,CHAID,QUEST
- 解析Linux中的VFS文件系统之文件系统的来源与简介(一)
- 使用Linux脚本更新Weblogic部署的应用程序
- java从Swagger Api接口获取数据工具类
- Django ORM 常用字段和参数
- php格式化json字符串
- maya2013卸载/安装失败/如何彻底卸载清除干净maya2013注册表和文件的方法
- 从源码的角度分析List与Set的区别
- u3d 逐个点运动,路径运动。 U3d one by one, path motion.
- [翻译]第二天 - Visual Studio 中的 .NET Core 模版一览