首页
社区
课程
招聘
[原创]看雪2016 第二十八题 CrackMe逆向分析
发表于: 2016-12-28 10:18 7015

[原创]看雪2016 第二十八题 CrackMe逆向分析

2016-12-28 10:18
7015

IDA 反编译main如下:

  scanf("%s", sn);
  v3 = strlen(sn);
  if ( v3 > 0x64 )
    goto LABEL_11;
  if ( v3 <= 0x3C )
    goto LABEL_11;
  v4 = (char *)&v16 + 15;
  do
    v5 = (v4++)[1];
  while ( v5 );
  *(_WORD *)v4 = 0x3D3D;
  v13 = 0xEFCDAB89;
  v14 = 0x98BADCFE;
  v15 = 0x10325476;
  md5(sn, (unsigned int *)&v10, strlen(sn));
  md5_final((unsigned int *)&v10);
decode(1, &sn[40], word_405020, 0x34A00, word_405020);
  if ( !v7
    || sub_4012EE(
         (unsigned __int8)sn[30] - 0x30,
         (int)v7,
         (unsigned __int8)sn[46] - 0x30,
         (unsigned __int8)sn[58] - 0x30) )
sub_40143D(sn);
  v2 = luaL_newstate();
  luaL_openlibs(v2);
  lua_pushstring(v2, v1);
  lua_setglobal(v2, &unk_404138);
  *(_WORD *)&v13[1] = 0;
  v13[3] = 0;
  *(_WORD *)v13 = v1[30];
  v13[1] = v1[46];
  *(_WORD *)&v13[2] = v1[58];
  decode(3, v13, a3, 0x8454, a3);
  if ( luaL_loadbufferx(v2, a3, 0x8454, &unk_40413C, 0) || lua_pcallk(v2, 0, 1, 0, 0, 0) )
  {
    printf("error\n");
    lua_settop(v2, -2);
    return 1;
  }

[峰会]看雪.第八届安全开发者峰会10月23日上海龙之梦大酒店举办!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 1355
活跃值: (334)
能力值: ( LV13,RANK:920 )
在线值:
发帖
回帖
粉丝
2
六阶幻方,我就卡在这里,尝试了构造一阶幻方特例,字符串成功了,但是在lua取字符长度时遇到0x0并不终止,导致了验证失败,后面就不想玩了
2016-12-28 18:30
0
游客
登录 | 注册 方可回帖
返回
//