Problem: [HNCTF 2022 WEEK3]Double
[[toc]]
思路
- 解题大致思路
EXP
- 具体攻击代码#include <stdio.h>
unsigned short arr[] = {
0x3C0E, 0xC68C, 0x4EE7, 0x7BD6, 0xC318, 0xCF83, 0xEB1D, 0x304F,
0xFF00, 0x2C3A, 0x666D, 0x6798, 0xD015, 0x1E56, 0x562A, 0x8A81,
0x5C95, 0x78A0, 0x60ED, 0x1114, 0xADDB, 0x732C, 0x5190, 0x1135,
0xE353, 0xE9C9, 0x0AAF, 0x2818, 0x2636, 0x9B26, 0x3D09, 0x18BF,
0x2A64, 0x4F3D, 0xAE5F, 0x4E1A, 0x496A, 0xDB84, 0x24C3, 0xFFDA,
0x378B, 0x1F5E, 0xD071, 0x8C71, 0x062E, 0xD6D9, 0x8F74, 0xE856,
0xEA45, 0xBEC4, 0x0486, 0xF140, 0x729A, 0x7FFD, 0xAFED, 0x5F38,
0x06FC, 0x4BBD, 0x3322, 0x64DE, 0x458F, 0x8A30, 0x7514, 0x8BAC,
0xB584, 0xB8F1, 0x72BC, 0xC1E2, 0xB0B0, 0x5C49, 0xABBF, 0x539B,
0xDBD0, 0x0DAC, 0xEB08, 0x5BE3, 0x3B32, 0xD535, 0x1FAC, 0xFB63,
0x0E18, 0x3796, 0x4F91, 0x6644, 0x97A8, 0x0E06, 0xFB99, 0xA880,
0xC982, 0x889B, 0x4F89, 0x3FE4, 0xEE7E, 0x0BE7, 0x8ACD, 0x3208,
0x2A10, 0x6332, 0x2AD6, 0x03D0, 0xF53B, 0x5900, 0x016E, 0xF928,
0x5B51, 0x27B8, 0xBEEF, 0x233B, 0x017E, 0x63F0, 0xC025, 0xE51D,
0x3D44, 0x6F36, 0x16F9, 0x3081, 0x705F, 0xB776, 0x599D, 0x4EDC,
0x6557, 0xBE16, 0x8F0E, 0xBA6F, 0x3E5D, 0x7370, 0x1746, 0x6C0C,
0x712B, 0x5CBB, 0x6359, 0x8CAF, 0x4ED7, 0xAEC8, 0xFBA7, 0x74BD,
0xE3B1, 0x5D37, 0x4D4E, 0x8104, 0xB410, 0x8656, 0x2176, 0x23BB,
0x245E, 0xA92E, 0xAD1A, 0xE530, 0xD77C, 0xE043, 0x9116, 0xEDD0,
0xAB12, 0x0D67, 0x7685, 0x3CB9, 0xBFCE, 0x5A2B, 0x39F9, 0x908B,
0xFE3E, 0xBD18, 0xDB54, 0x0CAB, 0x3C56, 0xFE73, 0xD974, 0x00F8,
0x5B88, 0xA0F2, 0x3D88, 0x9DE4, 0x0935, 0x52B4, 0xA340, 0xEA88,
0xBE72, 0x6DCE, 0x6A2B, 0x3146, 0x0358, 0x0F4F, 0xFA60, 0x25EB,
0xDAC7, 0x076A, 0x3D67, 0x43F0, 0x9F9C, 0x5B66, 0x7163, 0x8F3B,
0x7EBB, 0x05D1, 0x62C4, 0x9F95, 0x1E06, 0x5D58, 0xE984, 0x75B3,
0x0D5F, 0xEE58, 0x2390, 0xFB91, 0x28AA, 0x87DD, 0xF5EA, 0x443C,
0x6742, 0x1999, 0x88E9, 0xFD0E, 0xC8BD, 0x55F8, 0xBB09, 0x6C10,
0x8068, 0xCDD4, 0x29A6, 0xDD9F, 0xCEC3, 0x6217, 0xBE28, 0x3E7A,
0xE71E, 0xC573, 0x042B, 0xDE06, 0xC934, 0x35D1, 0xEF49, 0x63A3,
0xF08F, 0x26E1, 0xE61E, 0x2710, 0xB6B3, 0x10E0, 0xBD36, 0x499C,
0x8446, 0xB614, 0xE921, 0xDB2D, 0x4AB8, 0x4C8B, 0xD1A8, 0x6A9B,
0xD817, 0xF349, 0xCE92, 0x7F8D, 0x4C66, 0xCF40, 0x9169
};
unsigned short enc[] = {
0x1FAC, 0x4F91, 0x3796, 0xB584, 0x0E18, 0xC1E2, 0x7370, 0x1FAC,
0xA880, 0xB8F1, 0x233B, 0x7370, 0x27B8, 0x4F91, 0xEB08, 0x8BAC,
0x5900, 0x3081, 0x4E1A, 0x599D, 0x5BE3, 0x5C49, 0xF53B, 0xFFDA,
0xBA6F, 0x3E5D, 0x27B8, 0x5B51, 0x8A30, 0x2A10
};
int main() {
for (int i = 0; i <= 29; ++i) {
for (int j = 0; j < sizeof(arr) / sizeof(arr[0]); ++j) {
if (arr[j] == enc[i]) {
printf("buf[%d] = %d\n", i, i ^ j);
break;
}
}
}
return 0;
}
总结
- 对该题的考点总结
