2022HNCTF-Easy_Android(jeb调试)

二木 王者

HNCTF-2022-WEEK2-Easy_Android

这是去年一道非常简单的一道安卓题目,现在准备捡一捡安卓相关的知识,就从简单的开始对安卓题目进行学习。

记录这道题主要是记录一下关于jeb安卓调试。

将文件放入jeb中进行分析

找到mainactivity这个类,我们找到这个checkSN这个函数,代码逻辑很容易看懂,就是将我们前的用户名进行md5运算之后,取其奇数索引的字符,与我们输入的flag{}里面的内容进行对比,我们直接写代码进行逆向是是否简单的

Untitled

下面主要是通过这个例题来记录一下关于jeb对安卓程序的调试

这里我使用的是真机,做安卓最好使用真机,模拟器很容易出现问题(另外还有就是会与wsl冲突,作为习惯使用wsl的来说,没有wsl是万万不可的)

首先我们先链接adb ,查看是否连上手机了

Untitled

可以看到这里是连上了

之后,我们将app安装到我们的手机上使用命令

1
adb install + apk文件路径

安装好之后,我们在手机中打开这个app

现在在jeb中

Untitled

在需要下断点处,按下tab键,转到smali语言下。这里不同与ida,ida能够直接在伪代码中下断点,安卓只能在smali上下断点

Untitled

在需要下断点处按下,ctrl+b打断点

Untitled

这道题就在两处关键下断点即可

Untitled

开始调试

Untitled

因为事先打开了我们需要调试的程序,这里直接就会出现,我们直接点附加调试即可

Untitled

输入22个字符,过检测

过了之后,我们的断点断下来了,f6单步,f7步过,我们调试即可

Untitled

这旁边的就是我们的数据,与一些线程的东西

Untitled

smali与伪代码交叉着看,我们可以知道这里v6就是计算出来的flag

Untitled

得到flag

自己也是很少做安卓题目,所以就记录比较详细,防止自己搞忘。

 评论