CTF
文章平均质量分 84
软件逆向类CTF真题分析
大雄_RE
一个热爱逆向,喜爱学习、分享的猿。
展开
-
XCTF_MOBILE17_Android2.0
初见附件为一个apk,无提示信息。安装apk并打开:随便输入一个字符串,点击确认:好大的错误信息。从使用上看,就获得这些信息,关键在“确认”按键的按下处理函数中。接下来静态分析看看。静态分析使用jadx加载apk,除了R、BuildConfig、JNI就剩下一个MainActivity类。MainActivity类代码也很简单,按钮点击响应函数为:this.button.setOnClickListener(new View.OnClickListene..原创 2022-04-26 09:42:04 · 502 阅读 · 0 评论 -
XCTF_MOBILE16_boomshakalaka-3
初见题目附件为一个apk。提示信息为:play the game, get the highest score在SDK创建的模拟器下按照apk后运行失败:想到电脑里还装了雷电模拟器,apk在雷电模拟器下可以正常按照运行。运行app后,是一个打飞机的游戏,然后我就玩了两把。。。。。。暂时不清楚这个游戏和解题有什么关系,题目的提示信息说要拿到最高分,但解题方法应该不是玩到最高分^_^。接下来静态分析apk文件看看。静态分析apk用jadx分析apk,发现apk..原创 2022-04-12 21:45:24 · 4979 阅读 · 0 评论 -
XCTF_MOBILE15_人民的名义-抓捕赵德汉1-200
初见题目附件为一个jar文件。提示信息为:flag{xxxxxx},这是flag格式的提示。直接运行jar:提示输入password。输入错误显示“Incorrect password”,并要求再次输入:从运行情况看,重点在password的验证上。下面静态分析一下jar文件。静态分析使用jd-gui打开jar文件,看见里面有6个文件:三个后缀名为class的为类文件。...原创 2022-04-07 14:09:26 · 3088 阅读 · 0 评论 -
XCTF_MOBILE14_APK逆向
初见题目除了一个apk附件外,还有一条提示信息:“备注:本题提交大括号内值即可”。还是先来具体体验一下,先安装APP:上图中,最后的“TopCtf”就是本题的APP。打开它:就一个输入控件,一个按钮。随便输入一个字符串,点击确定,提示“错误”:从体验上就这些信息,下面对APP的apk文件进行静态分析。静态分析使用jadx打开apk文件,可以看到该APP除了资源类“R”和配置类“BuildConfig”,只有一个类“MainActivity”。重点分析...原创 2022-03-30 09:06:44 · 480 阅读 · 0 评论 -
XCTF_MOBILE13_基础android
初探附件为一个apk,在模拟器里安装一下:运行后,主界面很简单,一个输入框,一个按钮:随便输入一个字符串,点击按钮,提示错误:从使用上只有这些信息,接下来反编译看一看。MainActivity使用jadx打开apk,进行反编译。先看MainActivity类,代码不多,可以轻松找到其中的按钮事件响应函数:this.login.setOnClickListener(new View.OnClickListener() { public voi...原创 2022-03-15 14:09:05 · 2522 阅读 · 0 评论 -
XCTF_MOBILE12_你是谁
初见附件为一个apk。在模拟器中安装打开先看到一个骚年:等一会这个画面自动跳过,然后看到一个熟悉的面孔:随便点击一下上面的图片,提示“你根本不懂什么叫做爱”,并且能听到语音“你是个好人,但是我们不适合。”:发现下面的白色圆圈可以点击:暂时没有其它信息,下面先静态分析。静态分析使用jadx打开apk,先看MainActivity类。通过jadx的注释信息,可以看到这里面重载了com.iflytek.cloud.SynthesizerListener类..原创 2022-03-01 16:38:48 · 4106 阅读 · 0 评论 -
XCTF_MOBILE11_黑客精神
初见附件为一个apk,先到模拟器中运行一下。必须选择CPU为ARM的模拟器,因为app里面的native库只提供了ARM指令集的版本,没有提供x86指令集的版本:模拟器启动后,将apk拖到模拟器中进行安装,安装好后,列表中app的图标是一个骚年:运行app,又见一个骚年:除了一个按钮啥也没有,点击这个按钮,弹出一个两按钮的对话框:点击“不玩了”,app直接退出。点击“注册”,进入新的界面。在新界面中,可以输入一串字符串,并有一个注册按钮。随便输入一个串,点击注..原创 2022-02-21 21:12:51 · 1522 阅读 · 0 评论 -
XCTF_MOBILE10_easy-dex
初见附件为一个apk,先到模拟器中运行一下。这里要注意,这道题不能选用CPU指令集为x86的模拟器,需要用CPU指令集为ARM的模拟器,因为这个apk里面用到了native库,并且apk只提供了ARM指令集的native库。可以看到,我是有两个模拟器,一个ARM指令集的,一个Intel指令集的,这里要用ARM指令集的模拟器。打开模拟器后,把apk拖进去进行安装,安装好后,就能看到这道题的app了:app名字上给我们了一个小提示:要找到dex。运行一下app,主界面就...原创 2022-02-14 15:20:06 · 1633 阅读 · 0 评论 -
XCTF_MOBILE9_RememberOther
初见下载附件,是一个zip。解压后有一个docx,一个apk。打开docx看看,里面就一句话:不懂安卓,所以就只是和安卓扯了扯边,,,Have fun~没看出什么作用。在模拟器中运行一下apk:随便输入用户名和注册码:没有更多信息了,反编译看看。静态分析将apk重命名为zip,解压。使用dex2jar对解压得到的dex文件进行反编译:使用jd-jui查看反编译得到的jar包。在MainActivity的onCreat...原创 2022-01-24 14:19:06 · 1926 阅读 · 0 评论 -
XCTF_MOBILE8_Ph0en1x-100
初见附件为一个apk,在模拟器中运行一下,主界面:随便输入一个字符串,点击GO:弹框显示:Failed。没有其它信息,反编译看看。反编译修改apk后缀名为zip,解压:使用dex2jar对解压得到的“classes.dex”文件进行反编译:使用jd-gui查看反编译的代码。直接看MainActivity,代码量不大,一眼就可以看到弹框的字符串所在函数: public void onGoClick(View paramView) { ...原创 2022-01-06 14:35:23 · 1612 阅读 · 0 评论 -
XCTF_MOBILE7_easyjni
初识附件为一个apk,先拖到模拟器看看,结果报错:百度一下错误信息,原因是:安装的APP中使用了与当前CPU架构不一致的native libraries。我的CPU是Intel的,为了模拟器运行速度快,我创建的模拟器使用的是x86指令集:而一般手机都是ARM指令集的,所以我重新创建了一个ARM指令集的模拟器:在这个新模拟器下,apk就能成功安装了。apk的主界面如下:随便输入一个字符串,点击CHECK,结果为:直接运行程序,我们能获得的信息就...原创 2021-12-30 09:30:24 · 503 阅读 · 0 评论 -
XCTF_MOBILE6_easyjava
初探附件是一个apk,现在模拟器跑一下:我么随便输入一个字符,点击CHECK:打印提示信息“You are wrong! Bye~”,然后程序自动退出。没有过多信息,反编译一下:使用jd-gui查看得到的jar包。静态分析先来到MainActivity,在OnCreate函数中找到注册按钮响应函数的位置:findViewById(2131427446).setOnClickListener(new View.OnClickListener(this...原创 2021-12-23 13:05:23 · 1892 阅读 · 0 评论 -
XCTF_MOBILE5_easy-apk
附件为一个apk,先拖到模拟器看看:无法安装,先不管这个错误了,反编译看看。修改apk扩展名为zip->解压->使用dex2jar对解压后的classes.dex文件进行反编译:将反编译得到的jar文件拖进jd-gui,看MainActivity,MainActivity代码很简单:核心就是这个if判断:if ((new Base64New()).Base64Encode(str.getBytes()).equals("5rFf7E2K6rqN7Hpiyush.原创 2021-12-08 10:32:26 · 462 阅读 · 0 评论 -
XCTF_MOBILE4_app3
下载附件后是一个.ab文件。无其它提示信息。ab文件百度一下,.ab 后缀名的文件是 Android 系统的备份文件格式。分为加密和未加密两种类型,.ab 文件的前 24 个字节是类似文件头的东西,如果是加密的,在前 24 个字节中会有 AES-256 的标志,如果未加密,则在前 24 个字节中会有 none 的标志。用UE打卡这个样本,看到文件头中有none:表明未加密。可以通过abe.jar(android-backup-extractor)将其转换成.tar文件然后进.原创 2021-12-02 14:32:40 · 2114 阅读 · 0 评论 -
XCTF_MOBILE3_app2
拿到app,先再模拟器里跑一下:需要的权限挺多,点击Continue,进入主界面:两个编辑框已经有默认的内容,直接点击登录:进到这个界面就不动了。修改编辑框的字符串,效果一样。静态分析一下,j2dex反汇编:用jd-gui打开,先看MainActivity。在构造函数中,将自己注册成了点击事件处理类:this.a.setOnClickListener(this);onClick所以点击按钮的处理函数为MainActivity的onClick...原创 2021-11-26 17:32:02 · 1840 阅读 · 0 评论 -
XCTF_MOBILE2_app1
题目没有多余提示,直接下载apk。拖到android模拟器中运行,随便输入一个字符串,点击按钮,弹框“再接再厉,加油~”,如下图:考虑先反编译看看:修改后缀名为zip 解压 用dex2jar将解压得到的classes.dex反编译为jar将jar拖到jd-gui中,直接看MainActivity类的代码,在函数成员onCreate中能看到刚才弹框的字符串:可见这里就是关键代码了。这里的逻辑很清楚,输入的字符串要满足两个条件:输入字符串长度等于packageIn...原创 2021-11-17 20:37:40 · 1034 阅读 · 0 评论 -
XCTF_MOBILE1_easy-so
题目信息,一个apk,一句提示。提示信息为:flag格式为flag{}首先下载apk毕竟是第一题,应该不会多难,直接静态分析应该可以。看smali代码没有看java代码痛快,还是决定反编译为jar包来看。修改apk后缀名为zip,解压:结构很简单,我们使用dex2jar将dex文件反编译为jar文件:然后就可以使用jd-gui查看java代码了。jar包中有多个类,我们直接看MainActivity类的构造函数:构造函数中,看到“验证通过”“验证失败”两个..原创 2021-11-11 21:06:44 · 1574 阅读 · 0 评论