吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1922|回复: 3
收起左侧

[Android 原创] 大吉大利杯 ctfshow Matara Okina 题解

[复制链接]
418 发表于 2023-8-31 16:57
本帖最后由 418 于 2023-8-31 17:04 编辑

ctfshow Matara Okina

app下载:https://ctfshow.lanzoui.com/i4PQEkn6vch

网上已经有大佬写了过程但都不太详细,本菜鸡以小白的角度记录一下思考过程 :D

参考:
http://t.csdn.cn/MsYd3

https://www.cnblogs.com/crfshadow/p/14380315.html#_label2

反编译

app安装到手机上,打开一看没什么用。。。

把app拖进jadx里

由于我是上课时摸鱼做出这道题的,过程全在手机上完成,就用了NP管理器代替

提取安装包后找到AndroidManifest.xml这个文件,打开方式选择编辑

0ade2f657192d6716ee60400d77b0c9.jpg

可以看到有两个入口,show.zxc.matarokina.MainActivity 就是默认打开运行的activity,还有一个 show.zxc.mataraokina.FlagActivity,进去这个类看看。

选中那个dex文件,打开方式选择DEX编辑PLUS, 找到 FlagActivity 点进去,默认显示的是 smali 代码

d1025330fbb06ef73956828042decad.jpg

点右上角的三个点,转为 java

01934f10581d754feb8074c2ee245e2.jpg

由此可知,让ans等于bytes就行

分析代码

byte[] bytes = scheme.getBytes();

找 scheme ->

scheme = data.getQueryParameter("secret");

找 data ->

Uri data = getIntent().getData();

看不懂在干什么,复制它上网搜

搜啊搜,搜到这篇文章

https://www.cnblogs.com/hwb04160011/p/13960578.html

可以看到java代码里,获取了data,scheme,hose,对照着可以构造出 sh0w://p4th/70/1nput

后面又在获取 data.getQueryParameter("secret");

也就是需要构造 sh0w://p4th/70/1nput?secret=?????

于是问题就转为了求 secret=什么玩意儿

这是上课摸鱼撸出来的分析过程:

Screenshot 2023-08-31 165158.jpg

逆向求解

核心加密代码就在那个while循环里,它把 scheme 转成 byte 后一通运算的结果和 ans 比较

也就是说,要使 scheme 计算后得到的结果是 ans 就行。

先搞明白while循环里面在算什么,可以带几个数进去,如上图,自己动手试试吧 :)

题目就变成了 y = x ^ n, 这里的 n(就是i,每次循环增加1) 和 y(ans的每个byte)是已知的,要求未知x.

做的是异或运算,搜索一下这种运算的特点:https://www.ruanyifeng.com/blog/2021/01/_xor.html

image-20230831162331030.png

等式两边同时 ^n

也就求得 x = y ^ n

于是写出代码

0565fd7428661bdc53c3fddefa10c6a.jpg

0fcf803a93c2f35929cc4d86cda7c60.jpg

浏览器跳转

于是可以凑出这个链接 sh0w://p4th/70/1nput?secret=Android_scheme_is_FUN

打开NP/MT管理器,新建文档 aaa.html 根据 https://www.cnblogs.com/hwb04160011/p/13960578.html 里学到的知识,写出如下代码

<a href="sh0w://p4th/70/1nput?secret=Android_scheme_is_FUN">hahaha</a>

保存退出后,点它选择打开方式,选择浏览器

a514f42ada078d6be578a1d2fa02cc5.jpg

左上角有个很小的字 ,点它,会跳转到应用

448c17261d0bc7ba17762313bea5157.jpg

看到flag
e0f68edd2e159b96e5dd0c46bc2ffb4.jpg

image-20230831162331030.png

免费评分

参与人数 4威望 +1 吾爱币 +23 热心值 +2 收起 理由
sohowtodo + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
junjia215 + 1 + 1 用心讨论,共获提升!
a7227078 + 1 热心回复!
正己 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

tanglikecuan 发表于 2023-9-1 14:54
做个标记,来学习学习。
业余小徐 发表于 2023-9-4 08:38
CBL-XG 发表于 2023-9-4 14:40
1. 两个相同的数异或为0;
2. 任何一个数和0异或得到数的本身;
3. 异或运算满足结合律;
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 05:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表