buuctf reverse 刮开有奖

1.打开文件af6a3319a0bf4941a13966123683d796.png

 

 查壳d82fb086aa2e43acb8c3ae6980062c7d.png

是32位的

shift+f12查看字符串 看到了一个base64加密的特征字符串 2df5675985cf452da07957b10656eec7.png

查看主函数 b204aa2815c04a2e848734946cb140fd.png

 DialogBoxParam函数百度后得知是根据对话框模板资源创建一个模态的对话框,直接看函数主体。编写代码
  if ( a2 == 272 )
    return 1;
  if ( a2 != 273 )
    return 0;
  if ( (_WORD)a3 == 1001 )                      
  {
    memset(&String, 0, 0xFFFFu);               
    GetDlgItemTextA(hDlg, 1000, &String, 0xFFFF);
    if ( strlen(&String) == 8 )               
    {
      v7 = 90;
      v8 = 74;
      v9 = 83;
      v10 = 69;
      v11 = 67;
      v12 = 97;
      v13 = 78;
      v14 = 72;
      v15 = 51;
      v16 = 110;
      v17 = 103;
      sub_4010F0((int)&v7, 0, 10);            
      memset(&v26, 0, 0xFFFFu);
      v26 = string[5];
      v28 = string[7];
      v27 = string[6];
      v4 = sub_401000((int)&v26, strlen(&v26));
      memset(&v26, 0, 0xFFFFu);                
      v27 = string[3];
      v26 = string[2];
      v28 = string[4];
      v5 = sub_401000((int)&v26, strlen(&v26));
      if ( String == v7 + 34                    
        && string[1] == v11                   
        && 4 * string[2] - 141 == 3 * v9        
        && string[3] / 4 == 2 * (v14 / 9)       
        && !strcmp(v4, "ak1w")                  
        && !strcmp(
              v5,
              "V1Ax") )
      {                                         
        MessageBoxA(hDlg, "U g3t 1T!", "@_@", 0);
      }
    }
    return 0;
  }
  if ( (_WORD)a3 != 1 && (_WORD)a3 != 2 )
    return 0;
  EndDialog(hDlg, (unsigned __int16)a3);
  return 1;
}
base64解密 531d68afcfe2477a8d8a620ea7471638.png

根据代码 处理string字符 得到flag1901e237b7aa4856b201ff2406a1c037.png 

flag{UJWP1jMp} 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值