Bugku—安卓—signin(这是签到题)

君远至此,辛苦至甚。 窃谓欲状,亦合依例,并赐此题。 (来吧,签个到热个身。)

来源:第七届山东省大学生网络安全技能大赛

安卓文件,signin.apk

解析:签到题不简单,如果不理解安卓开发的一些配置文件,会有些难度。

0x00、模拟器安装

Bugku—安卓—signin(这是签到题)_第1张图片

 

0x01、逆向安装包分析

安卓逆向工具可以选择jeb2或者APKTool,在此用jeb2做演示了

Bugku—安卓—signin(这是签到题)_第2张图片

MainAcitivity主程序分析代码

Bugku—安卓—signin(这是签到题)_第3张图片

关键性代码

paramString.equals(new String(Base64.decode(new StringBuffer(getFlag()).reverse().toString(), 0))))

解析一下就是先获取getFlag()
然后就是reverse() 反转字符串
然后base64解密
就是这样一个操作。
然后getFlag()看一下

getBaseContext().getString(2131427360);


2131427360,这里出现一个数字,已经不是一道简单的签到题了,这里是个坑。
这个肯定要系统的了解过,才知道2131427360其实就是一个资源管理分配的id
这里还要知道Android开发里,这个id是由R....什么来管理。所以,我们才有思路就是在R文件里找到这里ID

Bugku—安卓—signin(这是签到题)_第4张图片

然后找到toString
好了,这里又要考一个知识点,toString是一个字符串,要了解一定的开发知识,才能知道字符串的管理地方是在string.xml文件里。

Bugku—安卓—signin(这是签到题)_第5张图片

然后就看到字符串。
991YiZWOz81ZhFjZfJXdwk3X1k2XzIXZIt3ZhxmZ
然后基本就是正常套路

0x02、字符串解密

反转后:ZmxhZ3tIZXIzX2k1X3kwdXJfZjFhZ18zOWZiY199

Base64解密

Bugku—安卓—signin(这是签到题)_第6张图片

flag{Her3_i5_y0ur_f1ag_39fbc_}

你可能感兴趣的:(CTF,bugku,信息安全,安全)