170921 逆向-成信CTF平台(ReverseMe&CLAZZ)

1625-5 王子昂 总结《2017年9月21日》 【连续第354天总结】
A. Syclover成信CTF练习平台-RE
B.

ReverseMe

打开是一个elf文件,运行报段错误
通过gdb调试发现错误出现在sub_400646的puts函数处

拖入IDA反编译:

__int64 __fastcall main(int a1, char **a2, char **a3)
{
  __int64 result; // rax@3
  __int64 v4; // rdx@7
  char v5; // [sp+10h] [bp-10h]@4
  __int64 v6; // [sp+18h] [bp-8h]@1

  v6 = *MK_FP(__FS__, 40LL);
  if ( a1 != 3 && (unsigned int)sub_400646((__int64)a2) )// 验证参数
  {
    puts("Keep thinking!");
    result = 0LL;
  }
  else
  {
    printf("Please input your password(5 words):", a2, a2);// 检查password
    __isoc99_scanf("%5s", &v5);
    if ( (unsigned int)sub_400755((__int64)&v5) == 1 )
    {
      printf("Good Job!\nThe password:%s", &v5);
      result = 0LL;
    }
    else
    {
      puts("Wrong!");
      result = 0LL;
    }
  }
  v4 = *MK_FP(__FS__, 40LL) ^ v6;
  return result;
}

我们知道,main的三个参数分别为argc, argc, env
很明显a1即argc没有被反编译出来,但是我们知道数量要

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值