-
-
看雪CTF2019Q1-第6题
-
2019-3-18 23:12 2472
-
这题好像有两部分, 做的时候只看了第一部分, 可以提交就没继续看了
1. 第一部分
sn格式: yyyymmddX1Y0uN3tG00dH***
2 * (yyyy + mm) == 4040
3 * mm / 2 + 100 * dd == 115
yyyy - 110 * dd == 1900
得到: 20101001X1Y0uN3tG00dH***
后4位为跳转地址: 00401BF0
得到: 20101001X1Y0uN3tG00dHaCk
int __cdecl sub_4012F0(char *a1) { strcpy(v4, "X1Y0uN3tG00d"); while ( v4[v2] == a1[v1] ) { ++v2; ++v1; if ( v2 > 11 ) { result = 1; if ( a1[20] == 'H' ) return result; return 0; } } return 0; } int sub_401460(char *Str) { char Dest; // [esp+8h] [ebp-10h] if ( strlen(Str) == 24 ) { if ( sub_4013B0(Str) ) { Str[20] -= 0x58; Str[21] -= 0x46; Str[22] -= 3; Str[23] -= 0x6B; strcpy(&Dest, Str); } } } int sub_4013B0(char *sn) { sub_401380(sn); yyyy = g_sn_bin[3] + 1000 * g_sn_bin[0] + 100 * g_sn_bin[1] + 10 * g_sn_bin[2]; mm = g_sn_bin[5] + 10 * g_sn_bin[4]; dd = g_sn_bin[7] + 10 * g_sn_bin[6]; if ( 2 * (yyyy + mm) != 4040 || 3 * mm / 2 + 100 * dd != 115 ) goto LABEL_2; result = 1; if ( yyyy - 110 * dd != 1900 ) { LABEL_2: result = 0; } return result; } int sub_401380(char *a1) { i = 0; do { result = a1[i] - 0x30; g_sn_bin[i++] = result; } while ( i <= 7 ); return result; }
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
赞赏
他的文章
KCTF2022春季赛 第三题 石像病毒
8499
KCTF2022春季赛 第二题 末日邀请
15689
KCTF2021秋季赛 第二题 迷失丛林
18249
KCTF2020秋季赛 第十题 终焉之战
8345
KCTF2020秋季赛 第九题 命悬一线
6024
赞赏
雪币:
留言: