[GWCTF 2019]re3

int mprotect(void *addr, size_t len, int prot);

 实现内存区域的动态权限控制:

  • addr:要修改保护权限的内存区域的起始地址。
  • len:要修改保护权限的内存区域的长度(以字节为单位)。
  • prot:要设置的新的保护权限,通常使用以下常量之一:
    • PROT_NONE:禁止对内存区域的任何访问。
    • PROT_READ:允许读取内存区域的内容。
    • PROT_WRITE:允许向内存区域写入数据。
    • PROT_EXEC:允许执行内存区域中的指令.

嗯,然后先修改那段内存吧

https://www.cnblogs.com/LyShark/articles/13100048.html 

[IDA]IDC脚本基础_idc的加法运算-CSDN博客

主要是sub开头那一点,不然好像不能P重定义

 

调用了很多函数,最后有一个比较。

然后再从main函数开始分析,看别人wp,有JUMPOUT(0x402123LL)

函数边界识别错误

或者是由于编译器某些原因会把某些代码分出来,不存放在连续区域,而是在其他位置,这些块有时ida能识别出来,被称为chunk,有些不能识别,此时就得自己手动设置。
如果是边界识别错误,那就alt+p,找到正确的末尾;
如果是后者,那就通过append_func_tail来将目标区域添加到本函数中,另外,得先undefine目标区域。

我可能先undefine了,所以没有爆红

sub_401CF9(const void *a1, size_t a2, __int64 a3)

问gpt是哈希md5加密,还有根据算法特征码

                                                // 五个一样的函数,不一样的参数v6 = __readfsqword(0x28u);                    // 访问 CPU 中的 FS 寄存器(在 x86 架构中用于存储线程局部存储器段描述符的基地址),并读取偏移地址为 0x28 的字节数据sub_401CF9(&aAbcdefghijklmn, 64LL, v2);       // base64表经过md5-->v2sub_401CF9(&unk_603100, 20LL, &v3);sub_401CF9(&unk_6030C0, 53LL, &v4);sub_401CF9(&dword_4025C0, 256LL, &v5);sub_401CF9(v2, 64LL, a1);                     // v2也经过md5-->a1,即base表经过两次md5return __readfsqword(0x28u) ^ v6;

 

也用到了刚刚那个数组,所以应该就是AES的加密实现

所以应该就是base表两次md5加密得到unk_603170作为AES密钥,我们的输入是明文,加密后和byte比较。

所以就是先得到unk(可以动调也可以md5网站),然后再aes解密就行了

 

aes好像还有CBC模式与ECB模式,额。。。

总的来说,re题不太需要搞清楚每一步都在干什么,每个语句都是什么意思,搞清楚整体逻辑,就行了。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0513student的Maven项目

0513student的Maven项目包-CSDN博客 数据库字段 主页需求 点击休学按钮, 实现对 ‘’是否休学‘’ ‘’休学操作‘’ 的相应修改; 还有对数据库中相应学生休学状态修改。

家电无缝连接的奥秘—通过酷开系统实现智能家居互联互通

智能家居是消费升级与技术升级的共同产物,是时代发展的必然结果,日渐深入人心也是大势所趋。酷开科技智慧AI,让智慧家居成为生活中的一部分,以酷开系统为中心,实现家庭内智能家居的连接,并可通过酷开系统进…

从零开始详解OpenCV车道线检测

前言 车道线检测是智能驾驶和智能交通系统中的重要组成部分,对于提高道路安全、交通效率和驾驶舒适性具有重要意义。在本篇文章中将介绍使用OpenCV进行车道线的检测 详解 导入包 import cv2 import matplotlib.pyplot as plt import numpy as np读入图像并灰度化…

中学生政史地杂志中学生政史地杂志社中学生政史地编辑部2024年第3期目录

每月时政 时政要闻(2024年2月) 李伟; 3-12 热点聚焦 关注2024年全国两会 汤健云; 13-15 积极应对老龄化,发展银发经济 王吉兴; 16-18《中学生政史地》投稿:cn7kantougao163.com “一带一路”助力柬埔寨经济发展 李…

aop获取方法运行时间

Slf4j Component Aspect//aop类 public class TimeAspect {/*Around 环绕通知 用ProceedingJoinPoint Before 前置通知 用JoinPoint(是ProceedingJoinPoint的父类型),用它可以获得方法执行的相关信息,如目标类名,方法…

WordPress 管理员密码重置方法汇总

最近明月碰到一个 WordPress 站长求助咨询,说是自己 WordPress 站点的管理员密码被恶意篡改了,对 WordPress 了解的都知道这一般都是恶意代码造成的,问题大多出在使用了所谓的破解版、去授权版的插件或者主题被植入了恶意代码、后门木马。明月…

Android Studio Please select Android SDK

解决方案: 1、打开 SDK Manager 2、选择编辑(Edit) 3、 一直Next,直到完成,解决!

大数据在IT行业的应用与发展趋势及IT行业的现状与未来

大数据在IT行业中的应用、发展趋势及IT行业的现状与未来 一、引言 随着科技的飞速发展,大数据已经成为IT行业的重要驱动力。从数据收集、存储、处理到分析,大数据技术为各行各业带来了深远的影响。本文将详细探讨大数据在IT行业中的应用、发展趋势&#…

R语言数据分析案例-股票题目分析

Value at Risk(VaR)是一种统计技术,用于量化投资组合在正常市场条件下可能遭受的最大潜在损失。它是风险管理和金融领域中一个非常重要的概念。VaR通常以货币单位表示,用于估计在给定的置信水平和特定时间范围内,投资组…

嵌入式开发场景下怎么防止源代码泄密

在当今数字化时代,嵌入式系统在各行各业中扮演着至关重要的角色,从智能家居到工业自动化,都离不开这些嵌入式设备的支持。然而,随之而来的是对嵌入式代码安全的日益关注。在嵌入式开发场景下,代码的保护至关重要&#…

《建筑抗震设计规程》DB62/T 3055-2020下载

本规程适用于抗震设防分类为乙类、丙类,抗震设防烈度为6度(0.05g)、7度(0.10g、0.15g)、8度(020g、030g)、9度(0.40g)的多高层钢筋混凝土结构及钢-混凝土混合结构、中等跨度钢屋盖结构、门式刚架钢结构、多低层砖砌体结构房屋建筑的抗震设计。 关于甘肃省地方标准《…

Alist + RaiDrive-Nas挂载云盘(Quark)

Alist RaiDrive-Nas挂载云盘(Quark) Alist download Alist document RaiDriver download — https://www.raidrive.com/ nssm download nssm document nssm specification 配置 Alist 下载适合的Alist版本后,启动服务; 需使用命令符。 在完成解…