[NSSRound#4 SWPU]hide_and_seek-用gdb调试

news2024/9/20 0:28:56

看反汇编

    ; __unwind {
.text:0000000000001514 F3 0F 1E FA                   endbr64
.text:0000000000001518 55                            push    rbp
.text:0000000000001519 48 89 E5                      mov     rbp, rsp
.text:000000000000151C 53                            push    rbx
.text:000000000000151D 48 83 EC 68                   sub     rsp, 68h
.text:0000000000001521 89 7D 9C                      mov     [rbp+var_64], edi
.text:0000000000001524 48 89 75 90                   mov     [rbp+var_70], rsi
.text:0000000000001528 64 48 8B 04 25 28 00 00 00    mov     rax, fs:28h
.text:0000000000001531 48 89 45 E8                   mov     [rbp+var_18], rax
.text:0000000000001535 31 C0                         xor     eax, eax
.text:0000000000001537 48 8D 3D CD 0A 00 00          lea     rdi, name                       ; "_"
.text:000000000000153E E8 AD FB FF FF                call    _getenv
.text:000000000000153E
.text:0000000000001543 48 89 45 A8                   mov     [rbp+var_58], rax
.text:0000000000001547 48 8B 45 90                   mov     rax, [rbp+var_70]
.text:000000000000154B 48 8B 00                      mov     rax, [rax]
.text:000000000000154E 48 89 45 B0                   mov     [rbp+ptr], rax
.text:0000000000001552 48 8B 45 B0                   mov     rax, [rbp+ptr]
.text:0000000000001556 48 3B 45 A8                   cmp     rax, [rbp+var_58]
.text:000000000000155A 75 0A                         jnz     short loc_1566
.text:000000000000155A
.text:000000000000155C BF FF FF FF FF                mov     edi, 0FFFFFFFFh                 ; status
.text:0000000000001561 E8 2A FC FF FF                call    _exit
.text:0000000000001561
.text:0000000000001566                               ; ---------------------------------------------------------------------------
.text:0000000000001566
.text:0000000000001566                               loc_1566:                               ; CODE XREF: main+46↑j
.text:0000000000001566 BF 08 00 00 00                mov     edi, 8                          ; size
.text:000000000000156B E8 F0 FB FF FF                call    _malloc
.text:000000000000156B
.text:0000000000001570 48 89 45 B8                   mov     [rbp+dest], rax
.text:0000000000001574 48 8B 45 B0                   mov     rax, [rbp+ptr]
.text:0000000000001578 48 89 C7                      mov     rdi, rax
.text:000000000000157B E8 B4 FD FF FF                call    sub_1334
.text:000000000000157B
.text:0000000000001580 48 89 C1                      mov     rcx, rax
.text:0000000000001583 48 8B 45 B8                   mov     rax, [rbp+dest]
.text:0000000000001587 BA 08 00 00 00                mov     edx, 8                          ; n
.text:000000000000158C 48 89 CE                      mov     rsi, rcx                        ; src
.text:000000000000158F 48 89 C7                      mov     rdi, rax                        ; dest
.text:0000000000001592 E8 79 FB FF FF                call    _strncpy
.text:0000000000001592
.text:0000000000001597 48 B8 51 17 53 43 54 46 7B 77 mov     rax, 777B465443531751h
.text:00000000000015A1 48 BA 75 64 33 5F 30 6E 40 2C mov     rdx, 2C406E305F336475h
.text:00000000000015AB 48 89 45 D0                   mov     qword ptr [rbp+src], rax
.text:00000000000015AF 48 89 55 D8                   mov     qword ptr [rbp+var_28], rdx
.text:00000000000015B3 C7 45 E0 33 34 70 7D          mov     dword ptr [rbp+var_28+8], 7D703433h
.text:00000000000015BA C6 45 E4 00                   mov     [rbp+var_28+0Ch], 0
.text:00000000000015BE B8 14 00 00 00                mov     eax, 14h
.text:00000000000015C3 48 98                         cdqe
.text:00000000000015C5 48 89 C7                      mov     rdi, rax                        ; size
.text:00000000000015C8 E8 93 FB FF FF                call    _malloc
.text:00000000000015C8
.text:00000000000015CD 48 89 45 C0                   mov     [rbp+var_40], rax
.text:00000000000015D1 B8 14 00 00 00                mov     eax, 14h
.text:00000000000015D6 48 63 D0                      movsxd  rdx, eax                        ; n
.text:00000000000015D9 48 8D 4D D0                   lea     rcx, [rbp+src]
.text:00000000000015DD 48 8B 45 C0                   mov     rax, [rbp+var_40]
.text:00000000000015E1 48 89 CE                      mov     rsi, rcx                        ; src
.text:00000000000015E4 48 89 C7                      mov     rdi, rax                        ; dest
.text:00000000000015E7 E8 24 FB FF FF                call    _strncpy
.text:00000000000015E7
.text:00000000000015EC 48 8B 45 C0                   mov     rax, [rbp+var_40]
.text:00000000000015F0 48 89 C7                      mov     rdi, rax
.text:00000000000015F3 E8 C1 FD FF FF                call    sub_13B9
.text:00000000000015F3
.text:00000000000015F8 B8 14 00 00 00                mov     eax, 14h
.text:00000000000015FD 48 98                         cdqe
.text:00000000000015FF 48 89 C7                      mov     rdi, rax                        ; size
.text:0000000000001602 E8 59 FB FF FF                call    _malloc
.text:0000000000001602
.text:0000000000001607 48 89 45 C8                   mov     [rbp+var_38], rax
.text:000000000000160B B8 14 00 00 00                mov     eax, 14h
.text:0000000000001610 48 63 D8                      movsxd  rbx, eax
.text:0000000000001613 48 8B 55 B8                   mov     rdx, [rbp+dest]
.text:0000000000001617 48 8D 45 D0                   lea     rax, [rbp+src]
.text:000000000000161B 48 89 D6                      mov     rsi, rdx
.text:000000000000161E 48 89 C7                      mov     rdi, rax
.text:0000000000001621 E8 63 FC FF FF                call    sub_1289
.text:0000000000001621
.text:0000000000001626 48 89 C1                      mov     rcx, rax
.text:0000000000001629 48 8B 45 C8                   mov     rax, [rbp+var_38]
.text:000000000000162D 48 89 DA                      mov     rdx, rbx                        ; n
.text:0000000000001630 48 89 CE                      mov     rsi, rcx                        ; src
.text:0000000000001633 48 89 C7                      mov     rdi, rax                        ; dest
.text:0000000000001636 E8 D5 FA FF FF                call    _strncpy
.text:0000000000001636
.text:000000000000163B 48 8B 55 B8                   mov     rdx, [rbp+dest]
.text:000000000000163F 48 8B 45 C8                   mov     rax, [rbp+var_38]
.text:0000000000001643 48 89 D6                      mov     rsi, rdx
.text:0000000000001646 48 89 C7                      mov     rdi, rax
.text:0000000000001649 E8 3B FC FF FF                call    sub_1289
.text:0000000000001649
.text:000000000000164E 48 89 45 C8                   mov     [rbp+var_38], rax
.text:0000000000001652 48 8B 45 C8                   mov     rax, [rbp+var_38]
.text:0000000000001656 48 89 C7                      mov     rdi, rax
.text:0000000000001659 E8 4D FE FF FF                call    sub_14AB
.text:0000000000001659
.text:000000000000165E 48 8B 45 C0                   mov     rax, [rbp+var_40]
.text:0000000000001662 48 89 C7                      mov     rdi, rax                        ; ptr
.text:0000000000001665 E8 96 FA FF FF                call    _free
.text:0000000000001665
.text:000000000000166A 48 8B 45 C8                   mov     rax, [rbp+var_38]
.text:000000000000166E 48 89 C7                      mov     rdi, rax                        ; ptr
.text:0000000000001671 E8 8A FA FF FF                call    _free
.text:0000000000001671
.text:0000000000001676 48 8B 45 B0                   mov     rax, [rbp+ptr]
.text:000000000000167A 48 89 C7                      mov     rdi, rax                        ; ptr
.text:000000000000167D E8 7E FA FF FF                call    _free
.text:000000000000167D
.text:0000000000001682 B8 00 00 00 00                mov     eax, 0
.text:0000000000001687 48 8B 5D E8                   mov     rbx, [rbp+var_18]
.text:000000000000168B 64 48 33 1C 25 28 00 00 00    xor     rbx, fs:28h
.text:0000000000001694 74 05                         jz      short loc_169B
.text:0000000000001694
.text:0000000000001696 E8 B5 FA FF FF                call    ___stack_chk_fail

发现74 0A                         jz     short loc_1566时就exit 退出函数了,所以不让退出,直接跳过,用pwn中的set更改rip的值,再看反编译的程序发现有三个free应该结果输出。

gdb pwn1

用gdb调试

start

开始运行

i b

查看断点

b *$rebase(0x153e)

设置断点。为什么会有$rebase 是应为程序在这里面是随机生成的地址(设置到exit之前即可)

b *$rebase(0x1665)

设置到最后一个free之前

c

跳转到第一个断点处(ni是一样的道理只是ni是单步执行比较慢)

ni

直到ni到但exit处停止(当连续ni时,第二次及以后可以直接enter执行)

set $rip=$rebase(0x1566)

set  是修改命令 把寄存器的地址改成0x1566,跳过exit函数。

p $rip

查看修改后的地址

c

跳转到下一个断点

ni

ni到最后一个free(为什么要运行但最后一个是因为malloc动态内存分配,开起来后面的堆)

heap

查看堆

tel 0x555555559290

从第二个开始(一般第一个不是)

enter 继续查看发现带有flag的字样,复制地址

x/s 0x5555555594e0

详细的查看此地址的内容

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

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

相关文章

python tkinter

基本使用 基于tkinter创建 GUI基本四步:窗口->组件->布局->事件 1.创建窗口对象 from tkinter import *root Tk() # 创建窗口root.mainloop() # 进入事件循环 2.创建组件 按钮文本等组件 btn Button(root) # 创建Button组件,使组件在…

re题(25)BUUFCTF-[GUET-CTF2019]re

BUUCTF在线评测 (buuoj.cn) 查下壳,是upx壳 脱一下 查看字符串,定位到主函数,也可以用ctrlE的方式找到主函数 明显,sub_4009AE是对flag加密的关键函数 进入sub_4009AE看一下 看到这儿有一堆大数和方程,我们知道要用z…

Transformer模型详细步骤

Transformer模型是nlp任务中不能绕开的学习任务,我将从数据开始,每一步骤都列举出来,然后对应重点的代码进行讲解 ------------------------------------------------------------------------------------------------------------- Trans…

Skytower

一、安装配置靶机 下载地址: SkyTower: 1 ~ VulnHub 下载之后解压发现是VirtualBox格式的 我们下载一个VirtualBox,这是官网 Downloads – Oracle VirtualBox 安装到默认路径就 打开后点击注册 选择解压后的vbox文件 然后点击左上角管理 点击导出虚拟电脑&…

PCIe进阶之TL:Request Handling Rules

1 Handling of Received TLPs 本节介绍接收到的 TLP 在数据链路层经过完整性验证之后,这些 TLP 在事务处理层时的处理方式。这些规则如下图所示: 接收侧会忽略保留字段。如果 Fmt 字段显示存在至少一个 TLP Prefix : (1)通过检查后续 DWORD 的第一个字节中的 Fmt 字段,…

两个人群填充参考(CHN100K和NARD)

分别是中国人群和东北亚人群的填充参考,测试了下,中国人群的参考注册还是相对友好的,没有像有些网站一样严格限制。东北亚的没有测试,两个数据库的特点都是包含了少数民族,研究朝鲜或蒙古族或其他民族的同学&#xff0…

Java 枚举 新特性

Java 枚举(enum)自JDK 1.5引入以来,随着版本的升级不断增强。本文将回顾枚举的演进,尤其是结合switch语句的应用,展示枚举如何在现代Java中变得更加灵活。 1. JDK 1.5:Java 枚举的诞生 在JDK 1.5之前&…

Dbt基本概念与快速入门

在过去的几年里,数据科学界已经慢慢地接受了以数据为中心的范式。我们不仅关注日益复杂的机器学习模型,还要更多地关注数据质量。这使得数据工程、分析工程领域技术和工具成为热点。dbt(数据构建工具)是一个显著改善数据工程师生活的工具。它的目的是向数…

【漏洞复现】金某云星空ERP GetImportOutData .net反序列化漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

Chinese Spelling Correction as Rephrasing Language Model(AAAI2024)

Chinese Spelling Correction as Rephrasing Language Model(AAAI2024) 一.概述 目前最先进的方法将CSC(Chinese Spelling Correction)作为序列标注任务,并在句子对上微调基于bert的方法。然而,我们注意到在将一个字符标注为另一个字符的过…

springboot+mybatis+mysql仿百度网盘系统2.0

springbootmybatismysql仿百度网盘系统2.0 一、系统介绍二、功能展示1.用户登陆2.主页3.全部文件4.文件上传5.文件分享6.文件分类 三、其它1.其他系统实现 一、系统介绍 系统主要功能: 普通用户:用户登陆、主页、全部文件、上传文件、文件分类、文件分部…

初始爬虫6

数据提取 数据提取总结 响应分类 结构化 json数据(高频出现) json模块 jsonpath模块 xml数据(低频出现) re模块 …

AJAX 入门 day3

目录 1.XMLHttpRequest 1.1 XMLHttpRequest认识 1.2 用ajax发送请求 1.3 案例 1.4 XMLHttpRequest - 查询参数 1.5 XMLHttpRequest - 数据提交 2.Promise 2.1 Promise认识 2.2 Promise - 三种状态 2.3 案例 3.封装简易版 axios 3.1 封装_简易axios_获取省份列表 3…

TS - tsconfig.json 和 tsconfig.node.json 的关系,如何在TS 中使用 JS 不报错

目录 1,前言2,二者关系2.1,使用 3,遇到的问题3.1,TS 中使用 JS 1,前言 通过 Vite 创建的 Vue3 TS 项目,根目录下会有 tsconfig.json 和 tsconfig.node.json 文件,并且存在引用关系…

【云原生监控】Prometheus之PushGateway

Prometheus之PushGateway 文章目录 Prometheus之PushGateway介绍作用资源列表基础环境一、部署PushGateway1.1、下载软件包1.2、解压软件包1.3、编辑配置systemctl启动文件1.4、创建日志目录1.5、加载并启动1.6、监控端口1.7、访问PushGateway 二、 配置Prometheus抓取PushGate…

超声波测距

基本原理:超声波测距是通过发射超声波到物体表面再反射回来,通过测量声波传播的时间来计算距离的方法。 公式解释: ( L C \times T ) ( L ):距离(从发射头到接收头的总距离)( C ):声波的传播速…

汉王手写签批控件如何在谷歌、火狐、Edge等浏览器使用

背景 近日,有网友咨询汉王手写签批控件是否可以通过allWebPlugin中间件技术加载到谷歌、火狐、Edge等浏览器?为此,笔者详细了解了一下汉王手写签批控件,它是一个标准的ActiveX控件,曾经主要在IE浏览器使用,…

Spring为什么要用三级缓存解决循环依赖?

Spring为什么要用三级缓存解决循环依赖? 1. Spring是如何创建一个bean对象2. Spring三级缓存2.1 一级缓存:单例池,经历过完整bean生命,单例Bean对象2.2 二级缓存:提前暴露的Bean2.3 三级缓存:打破循环 3. S…

【CMake】使用CMake在Visual Studio 构建多cpp文件项目

首先,我们在 C m a k e Cmake Cmake文件下写入以下代码: #需求的最低cmake程序版本 cmake_minimum_required(VERSION 3.12)#本工程的名字 project(OpenGL)#支持的C版本 set(CMAKE_CXX_STANDARD 20)#本工程主程序文件及输出程序名称,生成exe …

TriangleIcon 鸿蒙ArkTS自定义View 实现带颜色的上下箭头

TriangleIcon 鸿蒙ArkTS自定义View 实现带颜色的上下箭头 最近将公司项目中VUE实现的的一个数据看板模块进行了纯血鸿蒙的实现,里面有个效果就是 数据指标上升 一个绿色箭头朝上,数据指标下降一个红色箭头向下 具体的效果可以查看上图, 其中V…