首页 > 其他分享 >CTF逆向:将数组作为函数代码执行

CTF逆向:将数组作为函数代码执行

时间:2024-09-08 19:25:45浏览次数:7  
标签:逆向 然后 start CTF 代码执行 数组 judge

例题
攻防世界 BABYRE


flag判定条件为这个

if ( v5 == 14 && (*judge)(s) )

注意judge本质上是一个数组,(*judge)(s)则说明judge数组中的内容被当做代码执行
但前面又有

  for ( i = 0; i <= 181; ++i )
    judge[i] ^= 0xCu;

judge数组中的内容进行加密

所以需要进行patch

start=0x600b00
for i in range(182):
    patch_byte(start+i,ord(get_bytes(start+i,1))^0xc)

然后选中judge按住c然后按住p,然后F5反汇编

方法二:
动态调试
先打一个断点

linux端输入一个长度为14的字符串并回车


F7单步到call rdx;judge 然后F7进入judge


在刚开始进入judge的时候按一下p

然后F5查看伪代码

标签:逆向,然后,start,CTF,代码执行,数组,judge
From: https://www.cnblogs.com/thebeastofwar/p/18403124

相关文章

  • CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!
       一、CTF简介CTF(CaptureTheFlag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的......
  • n00bzCTF 2024
    n00bzCTF2024Passwordless给了源码#!/usr/bin/envpython3fromflaskimportFlask,request,redirect,render_template,render_template_stringimportsubprocessimporturllibimportuuidgloballeetapp=Flask(__name__)flag=open('/flag.txt').re......
  • sekaiCTF-2024-pwn-nolibc解析
    sekaiCTF2024nolibc程序逆向IDA反编译之后:全是没有符号表的函数。start函数就是主函数。然后发现一些类似于printf的函数也没有符号。我们linux上运行程序可以确定,至少sub_1322("WelcometoStringStorage!");这样的函数实现的功能就是类似于printf。逆向函数:__int64__......
  • php审计[HCTF 2018]WarmUp 1
    <?phphighlight_file(__FILE__);//这个函数会将当前PHP文件的源代码以高亮方式显示出来,便于调试或展示源代码。classemmm{publicstaticfunctioncheckFile(&$page)//这个方法接受一个引用类型的参数$page,用于检查请求的文件是否在允许的文件白名......
  • js逆向基础14异步编程3
    上节课遗留.finally.finally()方法不管Promise对象最后的状态如何都会执行.finally()方法的回调函数不接收任何的参数,也就是你在.finally()函数中是没法知道Promise最终的状态是resolved还是rejected的它最终返回的默认会是一个上一次的Promise对象值,不过抛出的是一个异常......
  • 京东h5st参数js逆向
    扣代码的环节挺简单的就不讲了直接到重点发现许多包都会有一个h5st的加密参数那么我们就要看这个参数是怎么生成的我们可以根据请求堆栈找到h5st的入口当然还有一种更简单的方法就是直接全局搜索h5st这里采用后者这里sign函数就是h5st生成的地方但是这是个promi......
  • ctfshow web13
     尝试 常规姿势上传文件打开网站初步判定为文件上传漏洞。随便选择几个文件上传,提示错误不选择任何文件直接点提交也会报错打开burpsuite抓包,改掉MIME类型,也就是图示位置,发现也不行,应该不是MIME过滤一头雾水,只能换个思路。 -------------------------......
  • ctfshow web红包题第二弹题解
    从今天开始记录刷题日常打开靶场平平无奇,看源代码发现如下提示get方式提交cmd参数,猜测是命令执行漏洞,先写个phpinfo();试试。有用,但报错cerror查看显示出来部分php代码,过滤了很多东西if(preg_match("/[A-Za-oq-z0-9$]+/",$cmd)) 第一个正则表达式把字母数字几乎全......
  • [HNCTF 2022 WEEK2]easy_include
    开启NSSCTF靶场,打开链接:可以看到过滤了很多常见的利用协议,GET传参是file先随便读取点正常的文件吧,构造payload:/?file=/etc/passwd可以看到是nginx服务器还有日志文件信息apache服务器日志存放文件位置:/var/log/apache/access.lognginx服务器日志存放位置:/var/log/......
  • js逆向--cai招网
    js逆向--cai招网一、寻找加密入口1、抓包2、关键字搜索寻找加密入口二、调试js三、python代码实现一、寻找加密入口1、抓包目标数据来源网址为:https://search.bidcenter.com.cn/search?keywords=%E5%85%AC%E5%85%B1%E4%BD%8F%E5%AE%85,打开开发者工具进行......