zoukankan      html  css  js  c++  java
  • logmein

    logmein

    难度系数: ⭐⭐⭐
    题目来源: RC3 CTF 2016
    题目描述:菜鸡开始接触一些基本的算法逆向了
    题目场景: 暂无
     
    附件是一个没有后缀的文件
    直接用ida打开
     
     

     可知是elf文件,64位

    打开后F5查看伪代码,先看main函数

     发现sub_4007c0,转过去看一下

     显示的意思是密码不对

    这flag不就出来了嘛,s[i] 不等于什么什么,就密码错误,剩下的你懂的!

    看一下,s[i]的组成,有BYTE,v7,v6,v8

    然后就修修改改,写成c跑一下

    #include <stdio.h>
    #include<string.h>
    #define BYTE unsigned char
    int main () {
        
      int i; // [rsp+3Ch] [rbp-54h]
      char s[36]; // [rsp+40h] [rbp-50h]
      int v6; // [rsp+64h] [rbp-2Ch]
      long long v7; // [rsp+68h] [rbp-28h]
      char v8[18] = ":"AL_RT^L*.?+6/46"; // [rsp+70h] [rbp-20h]
      v7 = 28537194573619560LL;
      v6 = 7;  
      for ( i = 0; i < strlen(v8); ++i )
      {
        s[i] = (char)(*((BYTE *)&v7 + i % v6) ^ v8[i]);
      }
      printf("%s
    ",s);
    }

    找个在线代码运行一下

     出来了,就是RC3-2016-XORISGUD,后面的乱码啥的就不要了

    v7在ida里转的是__int64,在线代码__int64一直报错,我查了一下,__int64和long long一样,就改成long long了

    还有v8,ida转的是[8],只有前八位,我没试能不能全部容纳,要求是要全部的,所以数了一下是包含了18个字符,就改成[18]了

    看评论学会个技巧:

    ida按R可以数字转字符

    加油!未来可期!!

     
  • 相关阅读:
    nginx 命令
    nginx 配置文件(windows)
    nginx 配置文件(linux)
    nginx 安装
    什么是REST架构
    名词解释
    建造者模式
    单例模式
    工厂模式
    赋值运算符,拷贝构造函数,clone()方法总结
  • 原文地址:https://www.cnblogs.com/rebirther/p/13039847.html
Copyright © 2011-2022 走看看