zctf 2016 android writeup - Jieming的博客
本文为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。

zctf 2016 android writeup - Jieming的博客的更多相关文章
- [Android开发系列]IT博客应用
1.关于坑 好吧,在此之前先来说一下,之前开的坑,恩,确实是坑,前面开的两个android开发教程的坑,对不起,实在是没什么动力了,不过源码都有的,大家可以参照github这个应用 https://g ...
- android开发进阶学习博客资源
Android开发者博客推荐 Android入门级 - 罗宪明 http://blog.csdn.net/wdaming1986 Android入门级 - 魏祝林 http://blog.csdn.n ...
- (2016春) 作业1:博客和Github简单练习
0. 博客和Github简单练习 总分:10分 1. 目的 博客使用:注册.发布博客.博客管理练习 Github使用:注册.文件同步等练习 2. 要求 (总体作业要求参考[链接]) 发布一篇博客: 介 ...
- 完整Android开发基础入门博客专栏
博客地址:http://www.runoob.com/w3cnote/android-tutorial-contents.html
- android 开源和一些博客总结
记录一些开源的android库 (1)Http请求库封装 https://github.com/kevinsawicki/http-request (2)浮动组件,定制化 toast http://f ...
- [Android开发系列]IT博客应用V1.3
首先,感谢使用这款软件并给我意见的朋友们,有你们的意见,才有了这个版本. 其次,检索功能和分类筛选功能(如果是你提的意见,记得在下面mark哦,毕竟读代码你能发现,其实发意见这个就是用自己的邮箱给自己 ...
- android 关于ScrollView 的博客做记录学习
1.Android ScrollView向上滑动控件顶部悬浮效果实现 2.[android]仿知乎ScrollView滚动改变标题栏透明度 3.github开源Android组件资源整理(五)Scro ...
- 一个完全关于android编程的技术博客网站
https://www.oschina.net/android/96/file-process
- Qt for PC,Qt for iOS,Qt for Android (居士的博客)
http://blog.csdn.net/Esonpo/article/details/38081607 http://blog.csdn.net/Esonpo/article/details/380 ...
随机推荐
- TabControl+ListView
#include <windows.h> #include <commctrl.h> #include <tlhelp32.h> #include "re ...
- 吴裕雄--天生自然 PYTHON3开发学习:CGI编程
<Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI Order allow,deny ...
- k-means|k-mode|k-prototype|PAM|AGNES|DIANA|Hierarchical cluster|DA|VIF|
聚类算法: 对于数值变量,k-means eg:k=4,则选出不在原数据中的4个点,计算图形中每个点到这四个点之间的距离,距离最近的便是属于那一类.标准化之后便没有单位差异了,就可以相互比较. 对于分 ...
- Caffe Ubuntu14.04 + CUDA 8 (支持GTX1080 1070等Pascal架构显卡)
1. 前言 本教程使用的系统是Ubuntu 14.04 LTS 64-bit,使用的CUDA版本为8. 理论上本教程支持Pascal架构显卡,如游戏卡GeForce GTX1070,GTX 1080, ...
- 25)PHP,数据库定义
(1)数据库定义语句: create database [if not exists ] 数据库名 [charset 字符集] [collate 字符排序规则]: 说明: ,if not exists ...
- BCrypt BCryptPasswordEncoder
package org.linlinjava.litemall.core.util.bcrypt; // Copyright (c) 2006 Damien Miller <djm@mindro ...
- linux上安装 mysql
一.linux 上安装 mysql 1.查看mysql是否安装 rpm -qa|grep mysql 2.卸载 mysql yum remove mysql mysql-server mysql-li ...
- unittest如何在循环遍历一条用例时生成多个测试结果
引用自:http://blog.csdn.net/kaku21/article/details/42124593 参考网址:http://programmaticallyspeaking.com/te ...
- perf4j+spring+aop 配置 注解方式
今天将perf4j基于spring aop方式进入了接入,接入方法还是比较简单.具体配置如下: logback.xml <!--perf4j配置--> <appender name= ...
- 使用框架结构之frameset
首先,我希望在你的目录下,有4个网页,各自显示不同的内容. 如图所示: 1.html显示"火影忍者" 2.html显示"英雄联盟" 3.html显示" ...