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

news/2024/10/4 13:24:19

例题
攻防世界 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查看伪代码

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

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

相关文章

11-HashSet

HashSet 特点放入Integer类型数据//创建一个HashSet集合:HashSet<Integer> hs = new HashSet<>();hs.add(19);hs.add(5);hs.add(20);hs.add(19);//存重复数据hs.add(41);hs.add(0);System.out.println(hs.size());//6个数据,只存了5个System.out.println(hs);//[…

VoceChat - 发现私有云社交的魅力

VoceChat使用反馈:发现私有云社交的魅力 在这个信息浩如烟海的时代,如何保持有效的沟通与信息共享,成为了我们每一个人都需要面对的挑战。很高兴在这段时间里,体验了VoceChat这款支持独立部署的个人云社交媒体聊天服务。作为一个高度灵活且保护用户数据隐私的通讯工具,Vo…

做题小结---进制专题

第一个是进制转换的问题 十进制转换n进制 进制转化最需要明白的就是这个图了得到的数字再取反就是转化的数字了 先取余后除就行了 牛客 周赛刚好考了这个 题 进制的好题了 考的很好 题这题很有思维难度 首先我们可以想到2个k 从一个k入手 一个k满足的 再看另一个k是否满足 这种…

Pipeline流水线通过git拉取Jenkinsfile报错 error: RPC failed; result=22, HTTP code = 404

Pipeline流水线通过git拉取Jenkinsfile报错 error: RPC failed; result=22, HTTP code = 404 在学习共享库时使用通过git拉取jenkinsfile时,报错在排查gitlab服务状态,网络通讯,防火墙规则以及Jenkins凭据均可以正常使用,最后发现的时在URL填写中缺少 .git 结尾所导致的,在…

周总结

python 线程与进程简介进程与线程的历史 我们都知道计算机是由硬件和软件组成的。硬件中的CPU是计算机的核心,它承担计算机的所有任务。 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配、任务的调度。 程序是运行在系统上的具有某种功能的软件,比…

入门pytorch

### 卷积神经网络模型卷积神经网络(简称 CNN)是一种专为图像输入而设计的网络。它最明显的特征就是具有三个层次,卷积层,池化层,全连接层。借用一张图,下图很好的表示了什么是卷积(提取特征),什么是池化(减少数据量),而全连接层就是一个简单普通的神经网络。如下代…

Javaweb-子查询

select * from emp where salary > (select salary from emp where name=猪八戒); 1. select * from emp where dep_id in (select did from dept where dname in (财务部,市场部)); 2. select * from emp where dep_id=(select did from dept where dname=财务部); 3. sel…

一个小例子,给你讲透典型的 Go 并发操作

一个小例子,给你讲透典型的 Go 并发操作 原创 訢亮 程序员新亮2024年09月08日 16:57 天津 听全文程序员新亮 GitHub 9K+ Star | 技术交流分享 206篇原创内容公众号如果你有一个任务可以分解成多个子任务进行处理,同时每个子任务没有先后执行顺序的限制,等到全部子任务执行完…