[NewStarCTF 2023 公开赛道]AndroGenshin

安卓题jadx打开

找到主函数进去,主要逻辑

第一个加密函数rc4把username作为keybase64_table作为加密后数据

进行逆向解密即可

int main() {
     char key[] = "genshinimpact";
	int Data[] = { 125, 239, 101, 151, 77, 163, 163, 110, 58, 230,
		186, 206, 84, 84, 189, 193, 30, 63, 104, 178,
		130, 211, 164, 94, 75, 16, 32, 33, 193, 160,
		120, 47, 30, 127, 157, 66, 163, 181, 177,47,
		0, 236, 106, 107, 144, 231, 250,16, 36, 34, 91,
		9, 188, 81, 5, 241, 235, 3, 54, 150, 40,
		119, 202, 150 };
	int keylen = strlen(key);
	int s[256] = { 0 };
	int k[256] = { 0 };
	int j = 0;
	for (int i = 0; i < 256; i++) {
		s[i] = i;
		k[i] = key[i % keylen];
	}
	for (int i2 = 0; i2 < 256; i2++) {
		j = (s[i2] + j + k[i2]) & 255;
		int temp = s[i2];
		s[i2] = s[j];
		s[j] = temp;
	}
	int j2 = 0;
	int i3 = 0;
	for (int i4 = 0; i4 < 64; i4++) {
		i3 = (i3 + 1) & 255;
		j2 = (s[i3] + j2) & 255;
		int temp2 = s[i3];
		s[i3] = s[j2];
		s[j2] = temp2;
		int rnd = s[(s[i3] + s[j2]) & 255];
		printf("%c", rnd ^ Data[i4]);
	}
	return 0;

}

解密结果:BADCFEHGJILKNMPORQTSVUXWZYbadcfehgjilknmporqtsvuxwzy1032547698/+

在进行一次魔改base64解密即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值