XCTF MOBILE 新手 app1、app2、easy-apk

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42967398/article/details/101779509

XCTF MOBILE 新手 app1、app2、easy-apk

app1

使用APKIDE打开apk文件,查看java源码,找到主类:
在这里插入图片描述
经过分析发现是异或,我们就去找这两个常数:
在这里插入图片描述
直接编写脚本进行处理:

s = "X<cP[?PHNB<P?aj"
n = 15
flag = ""
for i in s:
	j = ord(i)
	flag += chr(j ^ n)
print(flag)

app2

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

easy-apk

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

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加解密脚本(可变换码表)
得到运行结果:
在这里插入图片描述
裹上flag{}提交正确

猜你喜欢

转载自blog.csdn.net/qq_42967398/article/details/101779509