signin

  1. 将apk安装到手机中,adb install Sign_in.apk。

  2. 观察界面,一个输入框,一个login按钮。初步估计需要输入一串正确的数字,就可以login。

  3. 使用androidKiller反编译apk文件。发现无法反编译出java源码。

  4. 于是改成JEB来打开apk文件,反编译出java源码。

  5. 然后对源码进行分析如下:

    首先,看onCreate()方法中,从输入框中取出用户输入的文字,然后调用checkPassword()函数。

signin-pic1

​ 然后,在checkPassword()函数中,将该输入与new String(Base64.decode(new StringBuffer(this.getFlag()).reverse().toString(), 0)))进行比较。如果二者相等则打印Congratulations !,若不相等则打印Try again.

signin-pic2

​ 弄清以上逻辑之后,重点应该分析new String(Base64.decode(new StringBuffer(this.getFlag()).reverse().toString(), 0)))。我们来看一下getFlag()函数。

signin-pic2

​ 插播一条getString()和toString()的区别:

https://blog.csdn.net/piaopiaoxiaoshuaige/article/details/79658134

​ 2131427360是一个ID,应该对应于一串字符串。于是在R中进行搜索,得到如下图所示。该串字母对应toString。

signin-pic2

​ 在androidKiller中进行工程搜索,搜索toString。得到如下结果。

signin-pic2

new String(Base64.decode(new StringBuffer(this.getFlag()).reverse().toString(), 0)))于是可以变成new String(Base64.decode(new StringBuffer(991YiZWOz81ZhFjZfJXdwk3X1k2XzIXZIt3ZhxmZ).reverse().toString(), 0)))

​ 先对字符串做反转得到ZmxhZ3tIZXIzX2k1X3kwdXJfZjFhZ18zOWZiY199,再对其进行base64解码,得到flag{Her3_i5_y0ur_f1ag_39fbc_}。

​ 提交到练习平台中,就对啦!

​ 一个小疑问:将flag输入到输入框中点击login并不会显示Congratulations !目前还没明白为什么。猜测跟new String()会创建一个对象,而String()才是生成一个字符串相关。等之后解决了这个问题再来更新一下。

安卓-mobile1(gctf)

​ 将apk安装后,界面显示如下:

signin-pic2

​ 依旧是一个输入框,一个按钮。接着,我们去反编译一下,分析源码。

signin-pic2

​ 在R.class中查看得到ID – 2131099678对应失败,ID – 2131099675对应成功。查看if条件语句,当MainActivity.this.checkSN(MainActivity.this.edit_userName.trim(), MainActivity.this.edit_sn.getText().toString().trim())为真时,会执行到成功分支。接下来我们看看checkSN()这个函数。由上图可知,paramString1对应“Tenshine”,paramString2对应输入框输入的字符串。

signin-pic2

​ 对这个函数进行分析之后,得到输入的字符串长度为22,且是“flag{****************}”的形式。中间是16个字符。针对paramString1分析,先对其取MD5值,为“b9c77224ff234f27ac6badf83b855c76”,然后从第1个字符开始,每隔一个字符取一个组成新的字符串“bc72f242a6af3857”。最后,将“flag{bc72f242a6af3857}”与输入的字符串做比较,两者相等则返回真。因此,得到本题的flag为“flag{bc72f242a6af3857}”。

安卓-mobile2(gctf)

​ 将zip后缀名改为apk并重命名

signin-pic2

​ 使用apktool对该apk进行反编译,得到如下提示

signin-pic2

​ 结合使用jeb等工具进行反编译的出错提示可知,androidmanifest.xml文件出现了问题。猜测该文件有玄机。

​ 于是,使用010editor打开amdroidmanifest.xml文件,发现类似于flag的字样fl4g,于是将其拼为:flag{8d6efd232c63b7d2}

signin-pic2

相关文章
评论
分享
  • BugkuCTF-WEB

    web2打开链接后直接查看源码,得到flag为KEY{Web-2-bugKssNNikls9100}。 计算器​ 查看源码 ​ 一开始maxlength为1,所以根本无法输入正确答案。于是我们手动将它的值改大一些,然后...

    BugkuCTF-WEB
  • ubuntu之sogou与firefox

    1 ubuntu14.04安装搜狗输入法参考链接:https://blog.csdn.net/sheng_mu555/article/details/82078082 分三步: 1、添加fcitx的键盘输入法系统。(sogou是基于...

    ubuntu之sogou与firefox
  • linux4.4.0安装EP-DB1608驱动

    EP-DB1608无线网卡驱动安装(linux内核版本大于3.10时) 针对EP-DB1608无线网卡驱动的安装,官网只给出了linux kernel<=4.3.14的安装包。折腾了很久,决定自己上网寻找解决方案。 使用lsu...

    linux4.4.0安装EP-DB1608驱动
  • PANDA的安装及使用

    1 PANDA及其运行环境安装1.1 安装PANDA 首先,在GitHub上根据官方文档安装。地址:https://github.com/panda-re/panda 123456789sudo add-apt-repository...

    PANDA的安装及使用
Please check the comment setting in config.yml of hexo-theme-Annie!