CTF学习之旅

技术太渣,只做出两道题,总结如下:

1、签到题
这里写图片描述

从图中可以发现这是一个扁的二维码,我们右键查看图片,进入图片页面,得到图片如下:
http://static2.ichunqiu.com/icq/resources/ctf/download/797356032862EFB26345619606A6DB89.gif

这里写图片描述

接下来使用图片通道查看神器:stegsolve(在安装java环境下打开)
这里写图片描述

点击左边箭头,即得正常二维码。扫描后得出答案。

2、re50
下载附件发现后缀中存在.apk,将文件后缀改为.apk,使用apk反编译助手(我用的是Android逆向助手)打开。
这里写图片描述

选择“dex转jar”,点击“操作”。

这里写图片描述
之后查看mainActivity函数,发现跳转比较字符串时调用了veryfy()函数,且该函数为本地内置函数

随后我们把apk文件后缀改为.rar,打开压缩包,用ida查看re50.rar\lib\armeabi下的libverify_me.so文件。

点击FunctionsWindows下的verify函数,按F5查看c代码:

int __fastcall verify(int a1)
{
  const char *v1; // r0@1
  const char *v2; // r4@1
  size_t v3; // r0@1
  int v4; // r3@1

  v1 = (const char *)(*(int (**)(void))(*(_DWORD *)a1 + 676))();
  v2 = v1;
  v3 = strlen(v1);
  v4 = 0;
  if ( v3 == 16
    && *v2 == 102
    && v2[1] == 108
    && v2[2] == 97
    && v2[3] == 103
    && v2[4] == 123
    && v2[5] == 112
    && v2[6] == 97
    && v2[7] == 83
    && v2[8] == 83
    && v2[9] == 95
    && v2[10] == 50
    && v2[11] == 95
    && v2[12] == 116
    && v2[13] == 119
    && v2[14] == 111 )
    v4 = (unsigned int)(v2[15] - 125) <= 0;
  return v4;
}

目测是将数字转化为ASCII码值,且字符串长度为16,上网找到一张ASCII码对照表:
这里写图片描述

与数字一一对照即得key:flag{paSS_2_two}

下次比赛加油!!!!!!!!!!!!!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值