首页
社区
课程
招聘
[原创]第25题
发表于: 2016-12-21 01:01 2756

[原创]第25题

2016-12-21 01:01
2756
确定字符规律为以L为分割,

在第一处校验比较时直接跳过,到后面解密算法处:
分析算法,确定为camellia算法

然后在以下位置:

1
2
3
4
5
6
0040348B  |.  8BC8          MOV ECX,EAX
0040348D  |.  51            PUSH ECX
0040348E  |.  8DB424 300100>LEA ESI,DWORD PTR SS:[ESP+130]
00403495  |.  8D8C24 440100>LEA ECX,DWORD PTR SS:[ESP+144]
0040349C  |.  E8 BFF2FFFF   CALL KanxueCT.00402760                   ;  F2 93 C5 B4 F5 95
004034A1  |.  83C4 04       ADD ESP,4


1
2
//camellia_setkey_dec(&camellia, tmp, keysize);
//camellia_crypt_ecb(&camellia, CAMELLIA_DECRYPT, data, buf);


因此找到密钥和需要的解密后的数据

1
2
3
4
5
6
7
8
9
unsigned char key[16] =
    {
        0xA2, 0x7F, 0x82, 0x60, 0xB5, 0x91, 0x62, 0x54, 0x17, 0x06, 0x14, 0xEB, 0x60, 0xA2, 0xDB, 0x1F
    };
 
    unsigned char data[16] =
    {
        0xA8, 0x27, 0xF7, 0x4B, 0x09, 0x79, 0x23, 0xC9, 0xC9, 0x6B, 0x97, 0x95, 0xEB, 0xE6, 0x92, 0x38
    };


因而得到加密后的数据

1
f7 6c 2b 9f 8d 05 6b ff f8 88 e7 83 0b 85 e2 8c


因此剩下了解码过程:

明天继续。。。

接着昨天来,在上面的一串结果使用前还有一个dword的验证,

这四个字节和上面的十六个字节组成20字节的数组,由输入的

数据编码生成,而输入长度为35-3的32字节,同时看到编码用

到了字串AB......90,所以判断编码为base32编码编码,然后:

1
2
3
4
5
6
7
8
9
unsigned char t[20] = { 0xf7, 0x6c, 0x2b, 0x9f, 0x8d, 0x05, 0x6b, 0xff, 0xf8, 0x88, 0xe7, 0x83, 0x0b, 0x85, 0xe2, 0x8c, 0x00, 0x56, 0xb4, 0x61 };
unsigned char res[32] = { 0 };
 
int main(int argc, char* argv[])
{
    base32Encode(res, t, 20);
 
    return 0;
}


得到结果:
981C2H7QAZZ009EJ79BT2BSCVTAFQQDB

插入3个L即答案.

[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册