- 2024-11-21Linux下 GDB调试器的使用
文章目录1.可执行程序的Debug版和Release版区别一、编译选项与目的二、性能与体积三、功能与特性四、查看可执行文件2.GDB相关命令GDB常用命令1.可执行程序的Debug版和Release版区别一、编译选项与目的Debug版:编译选项:通常使用包含调试信息的编译选项,如/MDd
- 2024-11-18gcc/g++ 使用技巧
使用技巧常用选项MakeFileGDB调试多进程调试多线程调试常用选项1.基本编译选项-o<output_file>指定输出文件名(可执行文件或目标文件)。g++-omy_programmain.cpp→生成名为my_program的可执行文件-c只编译源代码为目标文件(不链接)。g++-cmain.cpp
- 2024-11-16[Linux]gdb基本使用
gdb基本使用前提gcc/g++编译出的程序默认是realease版本,要使用gdb调试,首先要在编译的时候加上-g选项。使用readelf-S[程序名]查看可执行文件的节区信息。使用gdb[程序名]:开始调试。q:退出调试。list/l[行号]:从给定的位置显示程序的源代码,每次十行。break/b
- 2024-11-14【linux漏洞】环境搭建
第一步:设置环境1.1安装所需工具在开始之前,确保你的Linux机器上安装了以下工具:GCC(GNU编译器集合):用于编译我们的易受攻击程序。GDB(GNU调试器):用于调试程序和检查内存。Python:用于制作payload。pwntools(可选):一个帮助开发漏洞利用的Python库(后期有用)。你可
- 2024-11-14第23天Linux下常用工具(二)
目录第四章GDB调试工具4.1gdb的作用4.2调试代码的流程4.3gdb的安装4.4gdb的使用第五章makefile工程管理工具5.1makefile的作用5.2makefile的运行5.3make的安装5.4makefile的编写方法5.5makefile的语法5.6makefile使用示例第四章GDB调试工具4.1gdb的作用代
- 2024-11-13GDB 学习笔记
GDB学习笔记在使用gdb进行调试时,编译时需要加上-g参数,以确保生成包含调试信息的可执行文件。常用命令程序控制run(r)[arg1arg2...]从头开始运行程序直到结束或遇到断点,后面可以添加命令行参数。continue(c)从当前位置开始继续执行,直到下一个断点或程序结束。nex
- 2024-11-09pdb和gdb的双剑合璧,在python中调试c代码
左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。公众号:一点sir,关注领取python编程资料问题背景正常情况下,调试python代码用pdb,调试c代码用gdb,而有些python模块是用c语言来实现的,在python中调用了这个c语言实现的模块,而入口又在python这边,那么单独使用pdb或者gdb
- 2024-11-08Linux下含有中文日志输出到终端显示不出来
问题描述:今天遇到一个中文日志输出到终端显示不出来的问题。用户要升级操作系统,由redhat7.9升级到redhat8.6,x86_64的环境。升级完后,交易服务端程序启动过程中,预期是会在终端输出一些标准输出或标准错误的日志信息,用于提示服务端程序启动过程中的状态,日志信息中包含中文字
- 2024-11-07GDB交叉编译
GDB交叉编译1.环境编译环境:Ubuntu20.04目标平台:RK35662.下载gdb源码,我选择使用10.1版本https://ftp.gnu.org/gnu/gdb/?spm=a2c6h.12873639.article-detail.7.96081599YGoRcW3.解压$tar-xvfgdb-10.1.tar.gz4.configure配置--prefix指定编译输出路径CC指定
- 2024-11-06gdb使用
调试查看目标文件信息查看目标文件段信息readelf-Stest|grepdebug查看文件信息,是否有调试信息等filetest移除调试信息striptestgdb调试1.可执行文件gcc-gtest.c-otestgdbtest(gdb)setargs(gdb)run2.调试已运行程序先查看进程号ps-ef|greppname
- 2024-11-05gdb的使用
目录一:debug和release版本二gdb调试2.1展开代码 2.2运行程序r2.3断点 2.4调试 2.5显示变量2.6跳转到某行2.7从一个断点到另一个断点 2.8函数级别运行2.9退出调试器2.10显示全部的临时变量2.11其他命令 2.12条件断点 三:cgdb可视化代码的调试一:deb
- 2024-10-25GDB 奇技淫巧
GDB奇技淫巧本文面向读者为使用NOILinux的OIer,因此只介绍OIer可能会使用到的功能,对于工程上的功能不会讲述。今天是\(\text{CSP-S2024Day0}\),不知道有没有人因为平时依赖vscode,担心考场上没有合适的调试器呢。笔者就是这样一个Joker,但是没有关系,NOILinux没有v
- 2024-10-25Linux下使用valgrind分析C++程序的内存泄漏
目录一.前言二.下载安装三.使用valgrind分析内存泄漏一.前言这篇文章介绍一下Linux系统中如何使用valgrind分析C++程序的内存泄漏。二.下载安装下载地址:官网。或者直接使用命令aptinstallvalgrind安装。三.使用valgrind分析内存泄漏先看代码//main.cpp#inc
- 2024-10-25gdb进程调试 (gdb attach)
GDB(GNUDebugger)是一个功能强大的调试工具,可以用于调试各种编程语言。这里主要介绍Linux下gdbattach的使用(调试已在运行的进程)。首先,在shell中调用aptlist--installed|grepgdb检查是否安装GDB。(GDB安装这里就先略过)正常安装后应该会显示类似上述内容。然后就可以使
- 2024-10-22利用Ida+gdb调试Share Object文件
不知道出题方怎么将.so文件转换成了可执行程序(之后再议),可以直接运行,但当ida远程调试时,会被提示dynamiclinklibrary无法执行.虽然没有.so后缀,但用die可以检测出文件为DYN类型可以发现die检测出了他是DYN文件从文件结构分析,发现0200表示EXEC,0300表示DYN,顺便提
- 2024-10-21[20241021]使用gdb查看修改内存地址以及相关值.txt
[20241021]使用gdb查看修改内存地址以及相关值.txt--//执行oradebugpoke报错,感觉oracle已经禁止这类hack操作。1.环境:SYS@book>@ver2==============================PORT_STRING :x86_64/Linux2.4.xxVERSION
- 2024-10-20基于x86_64汇编语言简单教程5: 寻址模式与gdb调试
目录寻址模式gdb调试示例文件打断点办法1:给函数名称和行号打上断点办法2:在地址上打断点打印变量layout命令打印十六进制(特殊)countformatsize再次介绍mov寻址模式我们无非就是频繁的跟数据自己打交道,那么问题来了,我们可以如何找到这些数据呢?这就是我们这篇教
- 2024-10-17vecode写c++遇到窗口一闪而过+中文乱码咋办
本人没使用系统cmd窗口,而是使用了vscode内置终端,目的是为了之后输出中文的时候不乱码(vscode是utf-8,cmd是gbk,干脆全部使用vscode,不使用系统cmd作为输出窗口)附上配置文件:launch.json{//使用IntelliSense了解相关属性。//悬停以查看现有属性的描述。//欲了解
- 2024-10-15GDB
gdb小南梁功能强大的程序调试器补充说明gdb命令 包含在GNU的gcc开发套件中,是功能强大的程序调试器。GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。语法gdb(选项)(参数)选项-cd:设置工作目录;-q:安静模式,不打印介绍信息
- 2024-10-15GCC 编译器 与 GDB 调试器的基本操作
一、GCC编译器1.什么是GCCGCC是GNUCompilerCollection(GNU编译器套装)的简称,目前GCC可以支持C,C++,ADA,JAVA,Fortran,PASCAL等多种高级语言。支持主流的CPU平台,完成从源程序向特定CPU硬件平台上自标代码的转换。2.GCC编译流程2.1方法一:四步完成编译1)预处理对
- 2024-10-13Linux下C++程序瘦身
目录一.前言二.如何瘦身三.如何读取调试信息文件四.其他一.前言我们知道,C++程序如果带着调试信息的话会比较大,所以一般发布版本都会去掉调试信息,但是我们又希望如果程序崩溃了可以使用core转储文件进行调试,如果不带调试信息就不能方便的进行调试,那要怎么办呢,这篇文章
- 2024-10-11gdb多线程多进程调试命令
多线程infothreads查看当前所有运行线程的列表thread线程编号 切换到特定线程进行调试setscheduler-lockingon只运行当前线程,停止其他线程进行调试多进程infoinferions显示所有正在调试的进程inferion进程编号 切换到特定进程运行,同时挂起其他进程detach-on-fo
- 2024-10-1120222316 2024-2025-1 《网络与系统攻防技术》实验一实验报告
一、实验内容缓冲区溢出定义:缓冲区溢出是一种程序错误,在这种情况下,数据被写入到内存中的缓冲区时超过了该缓冲区所能容纳的最大容量。当超过缓冲区的边界时,额外的数据会溢出到相邻的内存位置中,覆盖掉其他数据或指令,导致程序行为异常或系统安全漏洞。缓冲区溢出的原因:编程
- 2024-10-1120222418 2024-2025-1 《网络与系统攻防技术》实验一实验报告
1.实验内容本周课程内容为缓冲区溢出和shellcode:2.实验过程(1)直接修改程序机器指令,改变程序执行流程①首先根据网上教程安装好kali虚拟机,更改主机名为heshan;下载目标文件pwn1,将pwn1文件放入共享文件夹并在VMware中设置共享以便使用,并将其重命名为pwn20222418。②然后运行可
- 2024-10-1120222302 2024-2025-1 《网络与系统攻防技术》实验一实验报告
1.实验内容本周学习内容1.熟练掌握了栈和堆的概念。2.掌握了Linux的基本操作,如shell命令和编译器gcc、调试器gdb的使用。3.掌握了缓冲区溢出的原理。实验任务本次实验的对象是一个名为pwn1的linux可执行文件。该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何