Clickstorm

Posted by Humb1e on 2023-03-08
Estimated Reading Time 2 Minutes
Words 539 In Total
Viewed Times

ClickStorm 一道有意思的安卓逆向

image-20230308105016786

最近研究了RC4,结果遇到了很多RC4

这是一道某个被喷烂的杯的逆向题,还是有点意思的

这个RC4的key在上面

image-20230308105121215

infiniteloop已经暗示了下面的无限循环

果然下面在对rc4的xbox进行初始化的时候采取了点击一次button随机一次xbox的操作

image-20230308105242220

在循环99999次后初始完成

是的,有点坑人,如果你点击了九万九千九百次,他并不会给你flag,他只是完成了xbox的初始化,你仍然需要输入flag

并且这题对flag的check隐藏在了native层,这个native层有点类似C语言的.h头文件,又有点像.dll动态链接库

反正在jadx里对这个.apk是看不出啥了的

oacia✌说只要给.apk解压一下找一下.so文件,Linux下叫共享目标文件

checkflag的逻辑就写在这里,只要把他拖进ida就行了

image-20230308110219921

密文找到哩

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
void init(unsigned char* s, unsigned char* key)
{

int i = 0;
int j = 0;
unsigned char k[256];
unsigned char temp = 0;
for (i = 0; i < 256; i++)
{
s[i] = i;
k[i] = key[i % strlen(key)];
}
for (int l=0; l < 99999; l++) {
j = 0;//注意一下j=0,不然就g了
for (i = 0; i < 256; i++)
{
j = (j + s[i] + k[i]) % 256;
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
void crypt(unsigned char* s, unsigned char* data, unsigned long len)
{
int i = 0, j = 0, t = 0;
unsigned long k = 0;
unsigned char temp;
for (k = 0; k < len; k++)
{
i = (i + 1) % 256;
j = (j + s[i]) % 256;
temp = s[i];
s[i] = s[j];
s[j] = temp;
t = (s[i] + s[j]) % 256;
data[k] ^= s[t];
}
}
int main()
{
unsigned char s[256] = { 0 };
char key[] = "InfinityLoop";
unsigned char data[] = { 0xA6, 0x3D, 0x54, 0xB0, 0x74, 0xCC, 0xBD, 0x2A,
0x4A, 0xDE,
0xBD, 0x35, 0xD1, 0x1D, 0x80, 0x32, 0x5F, 0x64, 0x2F, 0xC5,
0xDD, 0x11, 0x3E, 0x95, 0xCC, 0x17, 0x13, 0xE5, 0x5E, 0x65,
0xCE, 0x42, 0x9E, 0x47, 0xC8, 0xF3, 0x4D, 0x8A, 0xA6, 0x1F,
0xF0, 0x50, 0x27, 0xA2, 0x28, 0x81, 0x24, 0xA7, 0xB4, 0x90,
0xFC, 0x93, 0x8A, 0xC1, 0x77, 0xD5, 0x16, 0x1E, 0xFD, 0x87,
0xC7, 0xBB, 0xB3, 0x00 };
init(s, key);
crypt(s, data, 63);
for (int i = 0; i < 64; i++) {
printf("%c", data[i]);
}
return 0;
}//flag{i_hope_you_didnt_click_the_button_99999__justRE_in_Static}

如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !