首页
社区
课程
招聘
[原创]签到题writeup
发表于: 2018-6-16 19:47 2038

[原创]签到题writeup

2018-6-16 19:47
2038
拖入IDA中分析,发现程序对输入的字符串长度限制为小雨不大于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代码如下所示:
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直播授课

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