[BUUCTF]REVERSE——[HDCTF2019]Maze
[HDCTF2019]Maze
步骤:
- 例行检查,32位程序,upx壳
  
- upx脱壳儿后扔进32位ida,首先检索程序里的字符串
  
 有类似迷宫的字符串,下面也有有关flag的提示字符串,但是没法进行交叉引用跳转
- 查看main函数,没法f5,看汇编,下方有个奇怪的jnz指令,它跳转到了下一行,相当于没跳
  
- 它call了一个奇怪的地址,ida没法分析出来,百度后得知这个叫花指令,nop掉
  
  
- 之后就是这个call指令,不能全部nop,因为后面那个东西可能是有效代码(我先全部nop掉了没法f5)。按d将其先转换为字节数据。
  
- 仍然没法f5,说明还存在花指令,在上述的花指令的链接中,那篇博主总结了花指令的常见情况,知道了db 0E8h是添加花指令,继续nop掉
 nop掉之后IDA自动的将后面的数据转换为代码数据
  
- 此时数据地址是红色的,仍然没法f5反汇编,将关键代码全部选中,按p键将其声明为函数
 然后就可以F5伪代码了
  
  
 输入的长度为14,然后要让dword_408078=5,40807c=-4,然后w表示上,s表示下,a表示左,d表示右
- 这是一道迷宫题,先打印一下字符
  
 按照迷宫题的经验,应该是从一个字符走到另一个字符,这边从+走到F,所以路径是–>下下左左左下左左下下右右右上,也就是–>ssaaasaassdddw,检验一下,符合条件
 flag{ssaaasaassdddw}
[BUUCTF]REVERSE——[HDCTF2019]Maze的更多相关文章
- [BUUCTF]REVERSE——[ACTF新生赛2020]Oruga
		[ACTF新生赛2020]Oruga 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索字符串,根据提示来到关键函数 14行~18行就是让字符串的前5位是 actf{ ,sub_78A( ... 
- [BUUCTF]REVERSE——firmware
		firmware 附件 步骤: 检查文件没有看出什么,ida载入一堆乱码,看了其他师傅的wp才知道要先binwalk对文件进行提取 120200.squashfs这是一个linux的压缩文件 我们需要 ... 
- [BUUCTF]REVERSE——[WUSTCTF2020]Cr0ssfun
		[WUSTCTF2020]Cr0ssfun 附件 步骤: 例行检查,无壳儿,64位程序,直接ida载入,检索程序里的字符串,根据提示跳转 看一下check()函数 内嵌了几个检查的函数,简单粗暴,整理 ... 
- [BUUCTF]REVERSE——[FlareOn6]Overlong
		[FlareOn6]Overlong 附件 步骤: 例行检查,32位程序,不懂是个啥 32位ida载入,main函数很简单 处理函数 sub_401000 程序只对unk_402008的28位进行了处 ... 
- [BUUCTF]REVERSE——[WUSTCTF2020]level3
		[WUSTCTF2020]level3 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,找到关键函数 看样子是个base64加密,但又感觉没那么简单,再翻翻左边的函数,找到了base64加 ... 
- [BUUCTF]REVERSE——[MRCTF2020]hello_world_go
		[MRCTF2020]hello_world_go 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索程序里的字符串,有很多,直接检索flag 一个一个点过去,找到了flag 按a,提取 ... 
- [BUUCTF]REVERSE——[GKCTF2020]BabyDriver
		[GKCTF2020]BabyDriver 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索程序里的字符串,看到提示flag是md5(input),下方还看到了类似迷宫的字符串 找到关 ... 
- [BUUCTF]REVERSE——[MRCTF2020]Xor
		[MRCTF2020]Xor 附件 步骤: 例行检查,32位程序,无壳 32位ida载入,首先检索程序里的字符串,根据字符串的提示,跳转到程序的关键函数 根据flag,跳转到sub_401090函数 ... 
- [BUUCTF]REVERSE——[FlareOn4]IgniteMe
		[FlareOn4]IgniteMe 附件 步骤: 例行检查,32位程序,无壳 32位ida载入 当满足第10行的if条件时,输出G00d j0b!提示我们成功,看一下sub_401050函数 3.s ... 
随机推荐
- c语言是如何处理函数调用的?
			1. 要编译的测试代码: int plus(int x, int y) { return x + y; } int main(void) { return plus(3, 4); } 2. main ... 
- Codeforces 547E - Mike and Friends(AC 自动机+树状数组)
			题面传送门 好久每做过 AC 自动机的题了--做几个题回忆一下罢 AC 自动机能够解决多串匹配问题,注意是匹配,碰到前后缀的问题那多半不在 AC 自动机能解决的范围内. 在初学 AC 自动机的时候相信 ... 
- NOI 2008 志愿者招募
			NOI 2008 志愿者招募 考虑用 $ p_i $ 表示第 $ i $ 天实际招收的人数,我们假设我们有三种志愿者,分别是 $ 1\to 2,1 \to 3 , 2\to 3 $ ,我们招手的人数分 ... 
- 洛谷 P3600 - 随机数生成器(期望 dp)
			题面传送门 我竟然独立搞出了这道黑题!incredible! u1s1 这题是我做题时间跨度最大的题之一-- 首先讲下我四个月前想出来的 \(n^2\log n\) 的做法吧. 记 \(f(a)=\m ... 
- Codeforces 840C - On the Bench(dp/容斥原理)
			Codeforces 题目传送门 & 洛谷题目传送门 这是一道 *2500 的 D1C,可个人认为难度堪比某些 *2700 *2800. 不过嘛,*2500 终究还是 *2500,还是被我自己 ... 
- mysql proxy 数据库读写分离字符集乱码
			mysql proxy 数据库读写分离字符集乱码 解决办法 在对应配置后端数据库服务器的配置.cnf中加入如下代码 init-connect='SET NAME UTF8' skip-characte ... 
- URI和URL的区别(转)
			转载:http://www.cnblogs.com/gaojing/archive/2012/02/04/2413626.html 这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java B ... 
- cp -拷贝文件出现错误
			对于cp -a最主要的用法是在保留原文件属性的前提下复制文件. 如果出现了拷贝文件错误,在文件前面加上-a 即可 
- 内存管理malloc 2
			malloc可以在函数指针内使用.#include <stdio.h> #include <stdlib.h> char * get_string() { //char s[] ... 
- 深度探讨 PHP 之性能
			1.缘起 关于PHP,很多人的直观感觉是PHP是一种灵活的脚本语言,库类丰富,使用简单,安全,非常适合WEB开发,但性能低下.PHP的性能是否真的就 如同大家的感觉一样的差呢?本文就是围绕这么一个话题 ... 
