[HDCTF2019]Maze

附件

步骤:

  1. 例行检查,32位程序,upx壳
  2. upx脱壳儿后扔进32位ida,首先检索程序里的字符串

    有类似迷宫的字符串,下面也有有关flag的提示字符串,但是没法进行交叉引用跳转
  3. 查看main函数,没法f5,看汇编,下方有个奇怪的jnz指令,它跳转到了下一行,相当于没跳
  4. 它call了一个奇怪的地址,ida没法分析出来,百度后得知这个叫花指令,nop掉

  5. 之后就是这个call指令,不能全部nop,因为后面那个东西可能是有效代码(我先全部nop掉了没法f5)。按d将其先转换为字节数据。
  6. 仍然没法f5,说明还存在花指令,在上述的花指令的链接中,那篇博主总结了花指令的常见情况,知道了db 0E8h是添加花指令,继续nop掉
    nop掉之后IDA自动的将后面的数据转换为代码数据
  7. 此时数据地址是红色的,仍然没法f5反汇编,将关键代码全部选中,按p键将其声明为函数
    然后就可以F5伪代码了


    输入的长度为14,然后要让dword_408078=5,40807c=-4,然后w表示上,s表示下,a表示左,d表示右
  8. 这是一道迷宫题,先打印一下字符

    按照迷宫题的经验,应该是从一个字符走到另一个字符,这边从+走到F,所以路径是–>下下左左左下左左下下右右右上,也就是–>ssaaasaassdddw,检验一下,符合条件
    flag{ssaaasaassdddw}

[BUUCTF]REVERSE——[HDCTF2019]Maze的更多相关文章

  1. [BUUCTF]REVERSE——[ACTF新生赛2020]Oruga

    [ACTF新生赛2020]Oruga 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索字符串,根据提示来到关键函数 14行~18行就是让字符串的前5位是 actf{ ,sub_78A( ...

  2. [BUUCTF]REVERSE——firmware

    firmware 附件 步骤: 检查文件没有看出什么,ida载入一堆乱码,看了其他师傅的wp才知道要先binwalk对文件进行提取 120200.squashfs这是一个linux的压缩文件 我们需要 ...

  3. [BUUCTF]REVERSE——[WUSTCTF2020]Cr0ssfun

    [WUSTCTF2020]Cr0ssfun 附件 步骤: 例行检查,无壳儿,64位程序,直接ida载入,检索程序里的字符串,根据提示跳转 看一下check()函数 内嵌了几个检查的函数,简单粗暴,整理 ...

  4. [BUUCTF]REVERSE——[FlareOn6]Overlong

    [FlareOn6]Overlong 附件 步骤: 例行检查,32位程序,不懂是个啥 32位ida载入,main函数很简单 处理函数 sub_401000 程序只对unk_402008的28位进行了处 ...

  5. [BUUCTF]REVERSE——[WUSTCTF2020]level3

    [WUSTCTF2020]level3 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,找到关键函数 看样子是个base64加密,但又感觉没那么简单,再翻翻左边的函数,找到了base64加 ...

  6. [BUUCTF]REVERSE——[MRCTF2020]hello_world_go

    [MRCTF2020]hello_world_go 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索程序里的字符串,有很多,直接检索flag 一个一个点过去,找到了flag 按a,提取 ...

  7. [BUUCTF]REVERSE——[GKCTF2020]BabyDriver

    [GKCTF2020]BabyDriver 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索程序里的字符串,看到提示flag是md5(input),下方还看到了类似迷宫的字符串 找到关 ...

  8. [BUUCTF]REVERSE——[MRCTF2020]Xor

    [MRCTF2020]Xor 附件 步骤: 例行检查,32位程序,无壳 32位ida载入,首先检索程序里的字符串,根据字符串的提示,跳转到程序的关键函数 根据flag,跳转到sub_401090函数 ...

  9. [BUUCTF]REVERSE——[FlareOn4]IgniteMe

    [FlareOn4]IgniteMe 附件 步骤: 例行检查,32位程序,无壳 32位ida载入 当满足第10行的if条件时,输出G00d j0b!提示我们成功,看一下sub_401050函数 3.s ...

随机推荐

  1. Java数组声明

    初始赋值值:例:一个二维数组,有二个1维数组组成,每一个一维数组有3个元素int[][] a = { {1,2,3}, {4,5,6} } ;动态二维数组声明:例:一个二维数组,有二个1维数组组成,每 ...

  2. Java的脚本机制、编译器API

    学习 xxl-job 定时任务时了解到基于 JVM 的 Grovvy 脚本语言.搭建 Jenkins 时知道了编译API 1. Java 脚本机制 Java 的脚本 API 可以让我们调用 JavaS ...

  3. [atAGC052F]Tree Vertices XOR

    结论 注意到如果$x$周围有偶数个1,对$x$操作显然不会改变$a_{x}$,因此不妨强制操作的点周围要有奇数个1,不难发现此时恰好会改变该点,即令$a_{x}=a_{x}\oplus 1$ 称$\{ ...

  4. [51nod1587]半现串

    将s所有长度为d/2的子串放进ac自动机中,直接匹配就可以判定半现串了再对其做一个差分,询问一个前缀的半现串个数,在ac自动机上数位dp,f[i][j][0/1]表示走了i步(i位的字符串),走到节点 ...

  5. Winform开发的快速、健壮、解耦的几点建议

    在Winform开发领域开发过十多年的项目中,见证着形形色色的架构和官方技术的应用,从最早类似Winform模式的WebForm技术,到接着的JQuery+界面组件,再到Asp.net Core的技术 ...

  6. 从记账软件看工具类APP的存量运营之道

    随着移动互联网的发展,APP的种类越来越多,一些工具类 APP 增长乏力,难以实现长期增长.只有提高用户留存时间,实现流量变现,才能在激烈的市场竞争中持续发展. 工具类APP的特点: 替代性很强: 用 ...

  7. Codeforces 1175G - Yet Another Partiton Problem(李超线段树)

    Codeforces 题面传送门 & 洛谷题面传送门 这是一道李超线段树的毒瘤题. 首先我们可以想到一个非常 trivial 的 DP:\(dp_{i,j}\)​ 表示前 \(i\)​ 个数划 ...

  8. Codeforces 1089I - Interval-Free Permutations(析合树计数)

    Codeforces 题面传送门 & 洛谷题面传送门 首先题目中涉及排列的 interval,因此可以想到析合树.由于本蒟蒻太菜了以至于没有听过这种神仙黑科技,因此简单介绍一下这种数据结构:我 ...

  9. 除了GO基因本体论,还有PO、TO、CO等各种Ontology?

    目录 PO/TO CO 后记 我们最常用最熟悉的功能数据库之一:GO(gene onotology),基因本体论.其实是一套标准词汇术语,目的是从不同角度来描述某个基因的特点和功能,三大本体如生物学进 ...

  10. R语言与医学统计图形【3】条形图、误差图

    R语言基础绘图系统 基础图形--条形图.误差图 3.条形图 barplot接收的数据是矩阵而非数据框. data <- sample(c(50:80),5) barplot(data,col=h ...