首页
社区
课程
招聘
1
[原创]第六题:消失的岛屿
发表于: 2019-6-17 21:06 2853

[原创]第六题:消失的岛屿

2019-6-17 21:06
2853

简单看下ida反汇编的情况,稍微修改一下,差不多就是这样

int  main()

{

  int v3; // eax 

unsigned __int8 bindata; // [esp+11h] [ebp-3Fh]

   char v6[]= "!NGV%,$h1f4S3%2P(hkQ94==";

   char *v7; // [esp+4Ch] [ebp-4h]

  unsigned __int8 bindata[31];

  scanf("%s",bindata);

  v7 = (char *)calloc(1u, 1024u);

   base64_encode(bindata, v7,30);

   if(strcmp(v7,v6))

      printf("sucess");

   else

      printf("error");

   return 0;

}

好,那么现在只要根据base64_encode写逆过来的decode就行了

问题来了

base64_encode中含有这样的代码

 v4 = &base64[i];                           // 取值,v4=base64[i]

*v4 = charEncrypt((bindata[i] >> 2) & 63);

current = 16 * bindata[i] & 48;

v10 = &base64[v9];

*v10 = charEncrypt((bindata[i + 1] >> 4) | current);

currenta = 4 * bindata[i + 1] & 60;

base64[jb] = charEncrypt((bindata[i + 2] >> 6) | currenta);   //jb=j+2

v13 = &base64[v12];             //v12=jb+1 即j+3


[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费 1
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2023-1-25 03:38
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册