zoukankan      html  css  js  c++  java
  • 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的编码后的东西

    所以可以联想到,这里真的脑洞

  • 相关阅读:
    2009年2月28号发现,上海移动升级GPRS时出问题,导致一些用户话费被扣钱,甚至停机
    使Aptana Studio 3支持jQuery代码提示
    遍历对象的属性
    当一个变量为函数时,应该注意的一点细节
    给JavaScript类型增加方法
    JavaScript 原型继承
    firebug 输出调试信息
    javaScript 利用闭包模拟对象的私有属性
    函数调用模式
    Actionscript 3 自定义 matedata
  • 原文地址:https://www.cnblogs.com/YenKoc/p/13718257.html
Copyright © 2011-2022 走看看