-
-
[看雪CTF2016]第十八题分析
-
发表于: 2016-12-6 14:40 2459
-
sn至少有13位
sn第14位开始必须是数字
除0异常才能触发后面的流程, 前9位处理后相乘必须等于223092870
223092870 = 2 * 3 * 5 * 7 * 11 * 13 * 17 * 19 * 23
据此得到前9位: pediy2016
验证后面11位, 这个vm应该是最良心的了
strlen(sn)==20
sn[9]='c';
sn[10]='o';
sn[11]='o';
sn[12]='l';
sn[13]='1';
BYTE key=0xD0;
BYTE k1=sn[13]+key;
BYTE k2=sn[14]+key;
BYTE k3=sn[15]+key;
k1^3 + k2^3 + k3^3 == k1 * 0x64 + k2 * 0x0A + k3;
BYTE r1 = (sn[16] + key) * 0x0A + (sn[17] + key);
BYTE r2 = (sn[18] + key) * 0x0A + (sn[19] + key);
r1 + r2 == 0x23
r1 * 4 + r2 * 2 == 0x5E
得到后面11位: cool1531223
.text:00401210 cmp [ebp+var_4C], 0Dh
sn第14位开始必须是数字
.text:00401241 movsx edx, byte ptr [ecx] .text:00401244 cmp edx, 30h .text:00401247 jl short loc_401257 .text:00401249 mov eax, [ebp+sn] .text:0040124C add eax, [ebp+var_50] .text:0040124F movsx ecx, byte ptr [eax] .text:00401252 cmp ecx, 39h .text:00401255 jle short loc_401260
除0异常才能触发后面的流程, 前9位处理后相乘必须等于223092870
223092870 = 2 * 3 * 5 * 7 * 11 * 13 * 17 * 19 * 23
据此得到前9位: pediy2016
.text:00401318 mov ecx, 223092870 .text:0040131D sub ecx, [ebp+var_58] .text:00401320 mov eax, 64h .text:00401325 cdq .text:00401326 idiv ecx .text:00401328 mov [ebp+var_58], eax
验证后面11位, 这个vm应该是最良心的了
strlen(sn)==20
sn[9]='c';
sn[10]='o';
sn[11]='o';
sn[12]='l';
sn[13]='1';
BYTE key=0xD0;
BYTE k1=sn[13]+key;
BYTE k2=sn[14]+key;
BYTE k3=sn[15]+key;
k1^3 + k2^3 + k3^3 == k1 * 0x64 + k2 * 0x0A + k3;
BYTE r1 = (sn[16] + key) * 0x0A + (sn[17] + key);
BYTE r2 = (sn[18] + key) * 0x0A + (sn[19] + key);
r1 + r2 == 0x23
r1 * 4 + r2 * 2 == 0x5E
得到后面11位: cool1531223
.text:00401341 mov edx, [ebp+sn] .text:00401344 push edx ; char * .text:00401345 mov eax, [ebp+hWnd] .text:00401348 push eax ; hWnd .text:00401349 call xx_4013B0
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- KCTF2022春季赛 第三题 石像病毒 9194
- KCTF2022春季赛 第二题 末日邀请 16536
- KCTF2021秋季赛 第二题 迷失丛林 19290
- KCTF2020秋季赛 第十题 终焉之战 9294
- KCTF2020秋季赛 第九题 命悬一线 6789
赞赏
雪币:
留言: