buuctf_RE

[WMCTF2020]easy_re

简单输入flag

但是下断点后,还没走几步就报错退出了。

确实没有打印的字符串

main函数也看不懂在干嘛

int __cdecl main(int argc, const char **argv, const char **envp)
{
  __int64 v4; // r13
  char v5; // r12
  __int64 v6; // rax
  _QWORD *v7; // rax
  void *v8; // r12
  __int64 v10; // rcx
  _QWORD *v11; // rdx
  const char *v12; // rax
  int v13; // ebx
  __int64 v14; // rdi
  void *v15; // rdi
  void *v16; // rsi
  void *Block; // [rsp+40h] [rbp-168h] BYREF
  CHAR Filename[4]; // [rsp+50h] [rbp-158h] BYREF
  char Src[268]; // [rsp+54h] [rbp-154h] BYREF
  uintptr_t StackCookie; // [rsp+160h] [rbp-48h]

  StackCookie = qword_4192E8;
  v4 = argc;
  v5 = 0;
  GetModuleFileNameA(0i64, Filename, 0x104u);   // 获取当前模块名到Filename
  if ( *(_DWORD *)Filename == 0x5C3F5C5C )      // Filename前四个字节==0x5c3f5c5c
    memmove(Filename, Src, strlen(Src) + 1);    // 将Src移动到Filename
  v6 = 1i64;
  if ( (int)v4 > 1 )
  {
    while ( strcmp(argv[v6], "--err2out") )
    {
      if ( ++v6 >= v4 )
        goto LABEL_8;
    }
    v5 = 4;
  }
LABEL_8:
  if ( (unsigned int)opera1(Filename, v5) )
    return 1;
  v7 = malloc(8i64 * ((int)v4 + 2));
  v8 = v7;
  if ( !v7 )
  {
    fprintf(&iob[2], "Panic: Cannot reallocate argv");
    return 1;
  }
  v10 = 1i64;
  *v7 = *argv;                                  // 重新分配argv数组
  v7[1] = "--";
  if ( (int)v4 > 1 )
  {
    v11 = v7 + 2;
    do
    {
      v12 = argv[v10++];                        // 原始argv复制到新的里面
      *v11++ = v12;
    }
    while ( v10 < v4 );
  }
  Block = qword_419A88;
  v13 = ((__int64 (__fastcall *)(void **, _QWORD, _QWORD, _QWORD, void *, _QWORD, int, _QWORD))opera2)(
          &Block,
          0i64,
          0i64,
          (unsigned int)(v4 + 1),
          v8,
          0i64,
          1,
          0i64);
  opera3((char *)Block);
  if ( dword_419A78 )                           // 清理和释放资源
  {
    opera3((char *)qword_419A88);
    qword_419A88 = 0i64;
    if ( qword_419A90 )
    {
      v14 = qword_419AB8();
      qword_419BD0(qword_419A90);
      qword_419AC8(qword_419A90);
      qword_419A90 = 0i64;
      qword_419BD0(v14);
    }
    FreeLibrary(hLibModule);
    hLibModule = 0i64;
    DeleteCriticalSection(&CriticalSection);
    dword_419A78 = 0;
  }
  v15 = ::Block;                                // 释放链表节点
  if ( ::Block )
  {
    do
    {
      v16 = *(void **)v15;
      if ( *((_QWORD *)v15 + 1) )
      {
        if ( (unsigned int)((__int64 (*)(void))opera4)() )
          perror("rmtree failed");
        v15 = ::Block;
      }
      free(*((void **)v15 + 1));
      free(v15);
      v15 = v16;
      ::Block = v16;
    }
    while ( v16 );
  }
  free(v8);
  return v13;
}

应该就是要调试的

然后放到x64dbg

re学习笔记(69)WMCTF2020 - easy_re_69re-CSDN博客

看雪那个帖子解压call有字符串script(解压call之后出现的字符串可能是他帖子程序的解压代码了所以不考虑

所以x64dbg载入,搜索script字符串定位到关键位置

在script解密后的call函数下断点,运行,得到flag。

一般都是在这个里面。

[watevrCTF 2019]Timeout

修改一下后缀

翻到关键函数


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/658418.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

english语法

从句&#xff1a;简单句连词 介词

maven部署到私服

方法一:网页上传 1、账号登录 用户名/密码 2、地址 http://自己的ip:自己的端口/nexus 3、查看Repositories列表&#xff0c;选择Public Repositories&#xff0c;确定待上传jar包不在私服中 4、选择3rd party仓库&#xff0c;点击Artifact Upload页签 5、GAV Definition选…

Aria2下载安装使用

这里写目录标题 下载Aria2 配置创建 aria2.conf 文件创建 aria2.session 文件 Aria2的使用基础使用多源下载多线程下载后台下载配置文件启动 AriaNg下载安装AriaNg配置AriaNg使用 Tracker 列表 aria2 是一款免费开源跨平台且不限速的多线程下载软件&#xff0c;其优点是速度快、…

安全阀检测周期:确定因素与操作流程详解

在工业生产中&#xff0c;安全阀扮演着至关重要的角色&#xff0c;其性能的稳定性和准确性直接关系到设备和系统的安全。为确保安全阀的正常运行和事故防范&#xff0c;对其进行定期检测显得尤为关键。 接下来&#xff0c;佰德将深入探讨安全阀检测周期相关的内容&#xff0c;…

前端 CSS 经典:多行文本擦除效果

前言&#xff1a;使用动画实现更改变量 --p&#xff0c;实现多行文本擦除效果&#xff0c;css 动画逻辑&#xff0c;什么样的动画是生效的&#xff0c;一定是一个数值类的 CSS 属性。--p 只是个变量&#xff0c;不是 CSS 属性&#xff0c;通过 Houdini API 使它变成一个属性。 …

后量子加密算法的数学原理

后量子加密算法是一类专为抵御量子计算机攻击而设计的加密算法。随着量子计算技术的迅速发展&#xff0c;传统的加密算法如RSA和椭圆曲线密码学在量子计算机面前变得脆弱&#xff0c;因此&#xff0c;开发能够在量子计算时代保持安全性的加密算法变得尤为重要。下面将详细介绍后…

【kubernetes】关于k8s集群如何将pod调度到指定node节点(亲和与反亲和等)

目录 一、调度约束 1.1K8S的 List-Watch 机制 ⭐⭐⭐⭐⭐ 1.1.1Pod 启动典型创建过程 二、调度过程 2.1Predicate&#xff08;预选策略&#xff09; 常见的算法 2.2priorities&#xff08;优选策略&#xff09;常见的算法 三、k8s将pod调度到指定node的方法 3.1指定…

【ARM+Codesys案例】基于全志T3+Codesys软PLC的3C点胶边缘控制解决方案:整合了运动控制、视觉、激光测高等技术

视觉精密点胶控制方案 针对直交型机构的平面点涂胶应用&#xff0c;基于CODESYS软件平台开发的一站式PC型控制器解决方案&#xff0c;包含运动控制器硬件和点胶应用软件。方案整合了运动控制、视觉、激光测高等技术&#xff0c;高效精密的控制胶水点涂于产品表面或内部&#x…

Linux查看设备信息命令

dmidecode | grep Product Name 查看grub版本号&#xff1a;rpm -qa | grep -i "grub" 客户端操作系统版本&#xff1a; cat /etc/issue cat /etc/redhat-release 处理器品牌及型号&#xff1a; less /proc/cpuinfo |grep model

瓦罗兰特国际服怎么注册账号 瓦罗兰特 无畏契约账号注册教程

瓦罗兰特国际服怎么注册账号 瓦罗兰特 无畏契约账号注册教程 瓦罗兰特作为拳头游戏开发的一款多人竞技第一人称射击游戏&#xff0c;自从2020年发布之后&#xff0c;热度持续升高&#xff0c;游戏采用5V5竞技模式&#xff0c;采用了传统FPS中游戏的类型&#xff0c;玩家们分为…

WorldSpace下的合批策略与ScreenSpace有什么区别

1&#xff09;WorldSpace下的合批策略与ScreenSpace有什么区别 2&#xff09;在iOS上用Metal取代OpenGL的多么 3&#xff09;在动画蓝图中将两个或多个动画同时融合到同一个网格 4&#xff09;Mipmap如何限定层级 这是第387篇UWA技术知识分享的推送&#xff0c;精选了UWA社区的…

PHP对接百度语音识别技术

PHP对接百度语音识别技术 引言 在目前的各种应用场景中&#xff0c;语音识别技术已经越来越常用&#xff0c;并且其应用场景正在不断扩大。 百度提供的语音识别服务允许用户通过简单的接口调用&#xff0c;将语音内容转换为文本。 本文将通过PHP语言集成百度的语音识别服务…

【链表】Leetcode 82. 删除排序链表中的重复元素 II【中等】

删除排序链表中的重复元素 II 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,3,4,4,5] 输出&#xff1a;[1,2,5] 解题思路 由于链表…

2024年5月份架构师考试真题完整版

截至2024-5-28 19:24:14已全部收录完成 共75到选择题&#xff0c;5道案例题&#xff0c;4道论文题。题目顺序不分先后。 全网最全的2024年5月份架构师考试真题回忆版&#xff0c;包含答案和解析。 群友 疯狂程序员 花落无声 半夏 鲁迅-三战老兵(预备役) 本次必成 锦鲤附体 2024…

【启程Golang之旅】掌握Go语言数组基础概念与实际应用

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…

Gradle的学习

1.1 Gradle的优势 一款最新的&#xff0c;功能最强大的构建工具&#xff0c;用它逼格更高 使用Groovy或Kotlin代替XML&#xff0c;使用程序代替传统的XML配置&#xff0c;项目构建更灵活 丰富的第三方插件&#xff0c;让你随心所欲使用 完善Android,Java开发技术体系 1.2 …

深入解析数据库中的连接方法:四种关键技巧

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、连接方法的重要性 二、左连接&#xff08;Left Join&#xff09; 三、右连接&#xff…

C# yolov8 TensorRT Demo

C# yolov8 TensorRT Demo 目录 效果 说明 项目 代码 下载 效果 说明 环境 NVIDIA GeForce RTX 4060 Laptop GPU cuda12.1cudnn 8.8.1TensorRT-8.6.1.6 版本和我不一致的需要重新编译TensorRtExtern.dll&#xff0c;TensorRtExtern源码地址&#xff1a;https://githu…

【全开源】简单商城系统源码(PC/UniAPP)

提供PC版本、UniAPP版本(高级授权)、支持多规格商品、优惠券、积分兑换、快递鸟电子面单、支持移动端样式、统计报表等 提供全部前后台无加密源代码、数据库离线部署。 构建您的在线商店的基石 一、引言&#xff1a;为什么选择简单商城系统源码&#xff1f; 在数字化时代&am…

立创·天空星开发板-GD32F407VE-环境搭建

本文以 立创天空星开发板-GD32F407VET6-青春版 作为学习的板子&#xff0c;记录学习笔记。 立创天空星开发板-GD32F407VET6-环境搭建 单片机ARMARM内核系列Cortex-M系列常用ARM芯片厂商 GD32GD32的产品系列开发板开发板资源、尺寸标注图设计图纸 GD32F407 Keil ARM 安装下载地址…