-
-
[原创]签到题writeup
-
发表于: 2018-6-16 19:47 2144
-
拖入IDA中分析,发现程序对输入的字符串长度限制为小雨不大于17.然后程序将输入的字符串转化为十六进制字符串然后与程序内定义的正确答案进行对比。具体逻辑为
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | do { v4 = v11[v3]; if ( !v4 ) break ; sprintf (v10, asc_408044, v4); v5 = strlen (v10) + 1; v6 = &v12[ strlen (v12)]; qmemcpy(v6, v10, 4 * (v5 >> 2)); ++v3; qmemcpy(&v6[4 * (v5 >> 2)], &v10[4 * (v5 >> 2)], v5 & 3); } while ( v3 < 17 ); if ( ! strcmp (v12, &v13) ) sub_40134B(aSuccess, v9); else sub_40134B(aWrong, v9); |
解题思路非常简单,只需要将程序内定义好的结果反过来转化一下就好了。具体的python代码如下所示:
1 2 3 | key = '437261636b4d654a757374466f7246756e' test = ''.join([ chr ( int (b, 16 )) for b in [key[i:i + 2 ] for i in range ( 0 , len (key), 2 )]]) print test |
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [原创] 南冥神功 writeup 4851
- [原创] 签到题writeup 2279
- [建议] 关于过去CTF比赛的赛题。 12625
- [原创] 半加器解题过程 3364
- [建议] 论坛上传图片功能后缀名检查不区分大小写 7203
赞赏
雪币:
留言: