XCTF-boomshakalaka-3
这题讲道理出的挺脑洞的,apk直接拖入jeb打开,找到主活动

这里有两个方法,一个是onCreate()方法,还有一个是onCreateView()方法
onCreate()方法调用了a这个对象的d方法,还调用了两次,onCreateView()方法调用是在onCreate()方法调用后才会调用
里面也调用了a对象的d方法,现在跟进这个方法看看

它里面调用了一个getSharedPreferences()方法,这个方法是会返回一个SharedPreference对象的,这个对象在安卓开发中
用途就是保存一些配置信息的,不过是以键值对的形式保存在xml文件中,调用edi()方法后,返回一个edit对象,调用putString()方法
将键值对保存到xml文件中,这里d方法,是先将data这个key所对应的值弄出来,然后和我们传入的字符串进行一个拼接,之后再保存
到xml文件中,java层仔细看了半天发现,根本没有涉及到分数的函数,这里就是用ida,打开它的so文件
搜索一下分数的字符串。

发现好像是每到一定分数,都会往xml文件中添加对应的字符串,这里我先玩了一下,观察了一下xml文件的内容,以此来验证一下我的猜想

那些通过Sharepreference对象保存的xml文件是在data/data/对应app包名/shared_prefs这个文件下的
发现每次我刷新最高分数,都会在分数0的基础上所对应的字符串上,添加我ida里面看到的字符串,并每次结束都是以dz99结尾
那么我大概就可以直接拼凑出字符串了,然后为什么联想到base64呢,因为onCreate()方法里面是放进来的一个是base64的编码后的东西
所以可以联想到,这里真的脑洞


XCTF-boomshakalaka-3的更多相关文章
- 攻防世界(XCTF)WEB(进阶区)write up(四)
ics-07 Web_php_include Zhuanxv Web_python_template_injection ics-07 题前半部分是php弱类型 这段说当传入的id值浮点值不能为1 ...
- 攻防世界(XCTF)WEB(进阶区)write up(三)
挑着做一些好玩的ctf题 FlatScience web2 unserialize3upload1wtf.sh-150ics-04web i-got-id-200 FlatScience 扫出来的lo ...
- 攻防世界(XCTF)WEB(进阶区)write up(一)
cat ics-05 ics-06 lottery Cat XCTF 4th-WHCTF-2017 输入域名 输入普通域名无果 输入127.0.0.1返回了ping码的结果 有可能是命令执行 ...
- XCTF攻防世界Web之WriteUp
XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...
- xctf进阶-unserialize3反序列化
一道反序列化题: 打开后给出了一个php类,我们可以控制code值: `unserialize()` 会检查是否存在一个 `__wakeup()` 方法.如果存在,则会先调用 `__wakeup` 方 ...
- 日常破解--从XCTF的app3题目简单了解安卓备份文件以及sqliteCipher加密数据库
一.题目来源 题目来源:XCTF app3题目 二.解题过程 1.下载好题目,下载完后发现是.ab后缀名的文件,如下图所示: 2.什么是.ab文件?.ab后缀名的文件是Andr ...
- 日常破解--XCTF easy_apk
一.题目来源 来源:XCTF社区安卓题目easy_apk 二.破解思路 1.首先运行一下给的apk,发现就一个输入框和一个按钮,随便点击一下,发现弹出Toast验证失败.如下图所示: ...
- XCTF练习题-WEB-webshell
XCTF练习题-WEB-webshell 解题步骤: 1.观察题目,打开场景 2.根据题目提示,这道题很有可能是获取webshell,再看描述,一句话,基本确认了,观察一下页面,一句话内容,密码为sh ...
- 【XCTF】ics-04
信息: 题目来源:XCTF 4th-CyberEarth 标签:PHP.SQL注入 题目描述:工控云管理系统新添加的登录和注册页面存在漏洞,请找出flag 解题过程 进入注册页面,尝试注册: 进行登录 ...
- 【XCTF】ics-05
信息: 题目来源:XCTF 4th-CyberEarth 标签:PHP.伪协议 题目描述:其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统 解题过程 题目给了一个工控管理系统,并提示存在后门, ...
随机推荐
- LNMP环境搭建与配置
lnmp就是 Linux+nginx + mysql + PHP,把Apache替换为Nginx: 这里我用到的Linux环境为为centos,接下来就分步骤来一步步安装及测试. 一.安装php 参考 ...
- PHP实现简单的socket与异步应用
1.socket应用 (1)简单概念 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编 ...
- IDEA 通过ctrl+滚轮缩放字体大小
能用图解决的问题,尽量简单粗暴通俗易懂 1.第一种方式 2.第二种方式
- [leetcode] 212. 单词搜索 II(Java)
212. 单词搜索 II 这leetcode的评判机绝对有问题!!同样的代码提交,有时却超时!害得我至少浪费两个小时来寻找更优的答案= =,其实第一次写完的代码就可以过了,靠!!!第207位做出来的 ...
- springboot中引入zookeeper,生成 配置类
1.application.properties zookeeper.address=@mvn.zookeeper.address@ zookeeper.namespace=@mvn.zookeepe ...
- springboot打包上线
发布到线上的包结构 runtime是发布到线上的目录结构 1.项目pom.xml添加打包配置 <build> <plugins> <plugin> <grou ...
- TensorFlow损失函数
TensorFlow损失函数 正如前面所讨论的,在回归中定义了损失函数或目标函数,其目的是找到使损失最小化的系数.本文将介绍如何在 TensorFlow 中定义损失函数,并根据问题选择合适的损失函数. ...
- IntelliJ IDEA不好用?那是因为没掌握这些技巧
想要愉快的coding,一个好的IDE肯定少不了.而对于Java开发者来说,IntelliJ IDEA绝对是Java-IDE的首屈一指的选择(eclipse党还请绕我一命). 从我第一次下载IDEA到 ...
- 来了!STM32移植LuatOS,潘多拉示例全新教程
进击的五月,继上期<使用Air724UG制作简易贪吃蛇>教程之后,@打盹的消防车 又为大家带来基于STM32的潘多拉LuatOS移植全新教程: 为什么使用潘多拉作为教程呢? STM32不能 ...
- 【题解】codeforces 219D Choosing Capital for Treeland 树型dp
题目描述 Treeland国有n个城市,这n个城市连成了一颗树,有n-1条道路连接了所有城市.每条道路只能单向通行.现在政府需要决定选择哪个城市为首都.假如城市i成为了首都,那么为了使首都能到达任意一 ...