XCTF MOBILE 新手 app1、app2、easy-apk

XCTF MOBILE 新手 app1、app2、easy-apk

app1

使用APKIDE打开apk文件,查看java源码,找到主类:
XCTF MOBILE 新手 app1、app2、easy-apk_第1张图片
经过分析发现是异或,我们就去找这两个常数:
XCTF MOBILE 新手 app1、app2、easy-apk_第2张图片
直接编写脚本进行处理:

s = "X

app2

使用APKIDE打开apk文件,我们发现这里多了一个libc的文件夹,libc好像是什么函数动态链接库
XCTF MOBILE 新手 app1、app2、easy-apk_第3张图片
查看一下,里面好像有个什么解密的????
先不管,继续往下走~~
主函数里面没看出什么鬼东西,不过发现了一个类中有一个特殊的字符串,需要解密啥的:
XCTF MOBILE 新手 app1、app2、easy-apk_第4张图片
看见import com.tencent.testvuln.c.Encryto;,直接进入其中:
XCTF MOBILE 新手 app1、app2、easy-apk_第5张图片
发现好熟悉,就显示我们刚刚在libc中看见的那个东西???一个解密的函数???
直接是看libc中的这个文件,直接解压apk2,找到libc中的这个文件
.os文件直接使用ida打开,发现有一个encode函数,直接查看伪代码:
XCTF MOBILE 新手 app1、app2、easy-apk_第6张图片
根据名字感觉是AES加密,不过AES需要密钥,我们可以看见上面有一串字符串:thisisatestkey==
猜测这就是密钥,试试:
XCTF MOBILE 新手 app1、app2、easy-apk_第7张图片
好像就是,,,,提交正确,,,,
说实话这里面的函数完全没看懂,,,全靠猜,,
一脸懵逼

easy-apk

首先我们使用APKIDE打开apk文件,并且查看java源码,找到主类:
XCTF MOBILE 新手 app1、app2、easy-apk_第8张图片
很明显看出有比较,应该是我们输入的字符串进行base64加密之后
与5rFf7E2K6rqN7Hpiyush7E6S5fJg6rsi5NBf6NGT5rs=进行比较
所以我们需要对这个字符串进行base64解密,但是我们去解密会发现错误
在这里插入图片描述
所以我们去查看一下码表
XCTF MOBILE 新手 app1、app2、easy-apk_第9张图片
编写脚本查看一下:

a = [118, 119, 120, 114, 115, 116, 117, 111, 112, 113, 51, 52, 53, 54, 
55, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 121, 122, 48, 49, 50, 80, 
81, 82, 83, 84, 75, 76, 77, 78, 79, 90, 97, 98, 99, 100, 85, 86, 87, 
88, 89, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 56, 57, 43, 47]

flag = ""

for i in a:
	flag += chr(i);

print(flag)

在这里插入图片描述
ok,码表不同,所以需要使用另外的base64解密脚本
这里我已经写好了,就直接使用python编写base64加解密脚本(可变换码表)
得到运行结果:
XCTF MOBILE 新手 app1、app2、easy-apk_第10张图片
裹上flag{}提交正确

你可能感兴趣的:(CTF题,XCTF)