首页 > 其他分享 >[ACTF新生赛2020]easyre 1

[ACTF新生赛2020]easyre 1

时间:2023-05-03 14:22:48浏览次数:41  
标签:esp int v4 easyre ebp v5 v6 2020 ACTF

下载回来后,有两个文件

查那个内存大的就行,上边那个扔着不管就行

查壳

32位,进IDA,老套路,进主函数

int __cdecl main(int argc, const char **argv, const char **envp)
{
  _BYTE v4[12]; // [esp+12h] [ebp-2Eh] BYREF
  _DWORD v5[3]; // [esp+1Eh] [ebp-22h]
  _BYTE v6[5]; // [esp+2Ah] [ebp-16h] BYREF
  int v7; // [esp+2Fh] [ebp-11h]
  int v8; // [esp+33h] [ebp-Dh]
  int v9; // [esp+37h] [ebp-9h]
  char v10; // [esp+3Bh] [ebp-5h]
  int i; // [esp+3Ch] [ebp-4h]

  __main();
  qmemcpy(v4, "*F'\"N,\"(I?+@", sizeof(v4));
  printf("Please input:");
  scanf("%s", v6);
  if ( v6[0] != 65 || v6[1] != 67 || v6[2] != 84 || v6[3] != 70 || v6[4] != 123 || v10 != 125 )
    return 0;
  v5[0] = v7;
  v5[1] = v8;
  v5[2] = v9;
  for ( i = 0; i <= 11; ++i )
  {
    if ( v4[i] != _data_start__[*((char *)v5 + i) - 1] )
      return 0;
  }
  printf("You are correct!");
  return 0;
}

看着不是很难弄,那么问题来了,flag的输出哪里来?找了好多地方,啥也没有。只看到了v5被初始了,那么有没有可能v5里存的就是我们要找的flag的字符串呢?

能看出来,这个判断是关键,已知v4:"*F'"N,"(I?+@",那么先看看 data_start_ 里边是个啥,跟进 data_start_ :

那么问题就知道了,比较v4中的字符和data数据中的字符.找到对应字符相等的位置,也就是下标。下标就是我们的flag。(这里有个小坑,我们是要找v5里存放的值,但看伪代码,我们能知道v5-1的值才是拿来比较的字符所在下标,写脚本的时候注意这一点)

int main(){
    char v[] = {'*','F','\'','\"','N',',','\"','(','I','?','+','@','\0'};
    string s = "~}|{zyxwvutsrqponmlkjihgfedcba`_^]\\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$# !\"";
    string flag = "";
    for(int i = 0; i < strlen(v); i++) {
        for (int j = 0; j < s.size(); j++) {
            if (s[j] == v[i]) {
                flag += (char)(j+1);
                break;
            }
        }
    }
    cout << flag << endl;
    return 0;
}

得到flag{U9X_1S_W6@T?}收工

标签:esp,int,v4,easyre,ebp,v5,v6,2020,ACTF
From: https://www.cnblogs.com/TFOREVERY/p/17369010.html

相关文章

  • [ZJOI2020] 序列 线性规划做法/贪心做法
    线性规划做法同时也作为线性规划对偶的一个小小的学习笔记。以下\(\cdot\)表示点积,\(b,c,x,y\)是行向量。\(A\)是矩阵,对于向量\(u,v\)若\(\foralli,u_i\leqv_i\)则称\(u\leqv\),\(\geq\)同理。线性规划标准型:\[\maxc\cdotx\\s.t.\left\{\begin{aligned}&Ax......
  • easyre
    很简单的一个小练手这里习惯性的先查壳(养成习惯)(也可以查是几位的)无壳不管是进OD还是IDA都是直接出答案拖入OD如图拖入IDA很明显flag不需要动什么脑子,会拖入就行......
  • Unity2020.1新功能探路:Profiler相关更新
    洪流学堂,让你快人几步。你好,我是你的技术探路者郑洪智,你可以叫我大智。大智作为探路者带你一块探索一下Unity2020.1里面有什么好玩的东西。这一次Profiler的更新比较大,咱们专门用一篇来看看Profiler方面的更新。主要包含以下几个方面:Profiler作为单独程序启动ProfileAnalyer包的更......
  • [独家放送]Unity2020规划预览,可视化编程又双叒叕来了!
    你好,我是你的技术探路者郑洪智,你可以叫我大智。欢迎一起进入2020年,在新的一年里Unity有什么大动作呢?本文带你速览你最关心的Unity2020的核心功能!你最可能关心的功能有哪些呢?Unity2019.3在哪里???(乱入)下面从四个方面来看Unity有哪些更新:核心功能和性能更多的DOTS(Data-OrientedTechSt......
  • BUAACTF2023 Writeup题解 by Joooook
    BUAACTF2023WriteupbyJoooook目录MiscWhichElementchatgptzhuzhuzhuzhu'srevengeScreenshotcarzymazeMCCryptoBlockCipherMathKeyExchangeWebmotaReverseoneQuiz'srevenge*SnakeMinesweepobfu可以从队名猜一下博主是哪里人(nooffline......
  • [NISACTF 2022]is secret
    本题考点1,RC4对称加密。2,flask模板注入。解题过程打开题目什么也没发现啥有用的,查看源码也没什么发现。上网查了一下发现这道题时[CISCN2019华东南]DoubleSecret原题。看了别人的wp,用御剑扫一下发现了/secret这个路径。页面内容为Tellmeyoursecret.Iwillencryptitso......
  • FTDT2020 安装
    参考视频:Nestor_呐等的个人空间_哔哩哔哩_bilibili从百度网盘下载解压:1解压_SolidSQUAD_,复制ANSYSInc文件夹到C:\ProgramFiles\2解压Ansys.Lumerical.2020.R2.Win64.iso,双击LumericalInstaller.exe运行安装,点击install3安装完成,退出向导,不要启动程序4_将SolidSQUAD_,文件L......
  • 软考高项2020下案例题
    1.配置管理的角度指出项目存在的问题1.配置库权限设置存在问题,不能所有人都有管理权限;2.配置库设置存在问题,还应该设置受控库;3.版本管理存在问题,产品库版本与实际运行版本不一致;4.文档管理存在问题,部分文档缺失;5.变更管理存在问题,没有对变更进行记录;2.设计核心产品......
  • pwn | wustctf2020_getshell
    pwn|wustctf2020_getshellx86ret2textexp:frompwnimport*fromLibcSearcherimport*context.log_level='debug'p=remote('node4.buuoj.cn',28063)p.sendline(b'M'*(0x18+4)+p32(0x0804851B))p.interactive()......
  • 2020年总结
    时光飞逝,转眼的时间又到了2021年,记得也是去年这个时候写下了,2019年的总结,主要是对测试和开发的一些技术栈的总结,还附有两个xmind图片。今年对以往的过去做一次总结,在2020年这一年中,还是一如既往的坚持博客的编写,今年总共输出了44篇博客,并且在四月份的时候,申请成为博客专家,同时也感......