-
-
[原创]看雪ctf晋级赛第二题wp-真心废物团队
-
发表于: 2019-3-24 09:29 3713
-
用到的其实就是RC4算法:
1、密钥流:RC4算法的关键是根据明文和密钥生成相应的密钥流,密钥流的长度和明文的长度是对应的,也就是说明文的长度是500字节,那么密钥流也是500字节。当然,加密生成的密文也是500字节,因为密文第i字节=明文第i字节^密钥流第i字节;
2、状态向量S:长度为256,S[0],S[1].....S[255]。每个单元都是一个字节,算法运行的任何时候,S都包括0-255的8比特数的排列组合,只不过值的位置发生了变换;
3、临时向量T:长度也为256,每个单元也是一个字节。如果密钥的长度是256字节,就直接把密钥的值赋给T,否则,轮转地将密钥的每个字节赋给T;
4、密钥K:长度为1-256字节,注意密钥的长度 keylen 与明文长度、密钥流的长度没有必然关系,通常密钥的长度趣味16字节(128比特)
密文第i字节=明文第i字节^密钥流第i字节;
明文第i字节=密文第i字节^密钥流第i字节;
密钥长度任意(1-256B),密文长度=密钥流长度=明文长度
二、本程序中的RC4算法应用
v36 = v46 ^ s
明文:s
密文:v36
向量S:unk_23E8256Bytes
密钥流:v46(来自于向量S)
三、作者剩余逻辑
v26 = byte_4050[ v36的一些变换] ^ const
v26 == " {9*8ga*l!Tn?@#fj'j$\\g;;"
四、思路
1、从v26逆推出v36
2、从前面的计算里由unk_23E8推出v46
3、s = v36 ^ v46
用到的其实就是RC4算法:
1、密钥流:RC4算法的关键是根据明文和密钥生成相应的密钥流,密钥流的长度和明文的长度是对应的,也就是说明文的长度是500字节,那么密钥流也是500字节。当然,加密生成的密文也是500字节,因为密文第i字节=明文第i字节^密钥流第i字节;
2、状态向量S:长度为256,S[0],S[1].....S[255]。每个单元都是一个字节,算法运行的任何时候,S都包括0-255的8比特数的排列组合,只不过值的位置发生了变换;
3、临时向量T:长度也为256,每个单元也是一个字节。如果密钥的长度是256字节,就直接把密钥的值赋给T,否则,轮转地将密钥的每个字节赋给T;
4、密钥K:长度为1-256字节,注意密钥的长度 keylen 与明文长度、密钥流的长度没有必然关系,通常密钥的长度趣味16字节(128比特)
密文第i字节=明文第i字节^密钥流第i字节;
明文第i字节=密文第i字节^密钥流第i字节;
密钥长度任意(1-256B),密文长度=密钥流长度=明文长度
二、本程序中的RC4算法应用
v36 = v46 ^ s
明文:s
密文:v36
向量S:unk_23E8256Bytes
密钥流:v46(来自于向量S)
三、作者剩余逻辑
v26 = byte_4050[ v36的一些变换] ^ const
v26 == " {9*8ga*l!Tn?@#fj'j$\\g;;"
四、思路
1、从v26逆推出v36
2、从前面的计算里由unk_23E8推出v46
3、s = v36 ^ v46
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
- [原创]看雪ctf晋级赛第六题wp-真心废物团队 5963
- [原创]看雪ctf晋级赛第二题wp-真心废物团队 3714
- [原创]看雪ctf晋级赛第一题wp-真心废物团队 3497
- [原创]看雪ctf晋级赛第十题wp 3224