linux-Linux下 如何从终端直接操纵内存堆栈

问题描述

Linux下 如何从终端直接操纵内存堆栈

我只知道在linux下用terminal可以ls或者cd等等;
或者用SecureCRT远程连接一个linux终端;
如果一段代码中写了:

string a[10]={0};
 sleep(100);

如何在程序运行时通过终端操纵这个a的值?
就是说我想在进程跑起来的时候,通过终端直接操纵内存值。
如果可以,如何获取到内存中的特定位置和值?想过去,那位置应该是一个地址,值也是抽象的二进制代码?
如果不可以,那么如何构想一个程序,动态地获取特定内存块的值?
不知道有没有说清楚。。。

解决方案

可以使用bochs的控制台去调试。

解决方案二:

终端好像没法直接支持,你的需求看上去更像调试,然后运行时断点,修改变量。所以可以用gdb

时间: 2024-09-26 04:48:13

linux-Linux下 如何从终端直接操纵内存堆栈的相关文章

gdb-手上没有源码,只有可执行程序,如何通过终端直接读写内存堆栈?

问题描述 手上没有源码,只有可执行程序,如何通过终端直接读写内存堆栈? 上图说gdb不加-g参数可以看到内存地址,我试验的结果却不是这样的: ~/Desktop/hello$ gcc hello.c -o hello~/Desktop/hello$ lshello hello.c:~/Desktop/hello$ gdb helloGNU gdb (GDB) 7.1-ubuntuCopyright (C) 2010 Free Software Foundation Inc.License GPL

Linux(Ubuntu)下设置golang环境变量

1).源代码安装go语言 Go的工具链采用C语言编写,要构建它,你需要安装一个C编译器,本例采用gcc工具; 进入linux 终端,输入命令行 sudo apt-get install build-essential Go使用Mercurial进行版本管理,首先你必须安装了Mercurial,对于 Ubuntu/Debian 系统先安装easy_install; sudo apt-get install mercurial 出现Processing triggers for python-sup

Linux环境下发现并阻止系统攻击

攻击 一. 当在一台PC机上安装了Linux系统,你就拥有了一个强大的.高级的.多任务的网络操作系统.但时候该系统功能有些过于强大了些.某些发布版本缺省启动很多服务(如:rlogind, inetd, httpd, innd, fingerd,timed, rhsd,等等).作为系统管理员需要熟悉了解这些服务.若机器连接了Internet,就更需要关自己系统的安全. 大多数攻击者并不是一个革新者,他们往往利用最新的公布的系统工具技术等突破一个所周知的或 一个新的刚刚发现的安全漏洞.但作为一个管理

深入解析Linux系统下的进程切换

  Linux内核下进程切换 Linux切换并没有使用X86CPU的切换方法,Linux切换的实质就是cr3切换(内存空间切换,在switch_mm函数中)+ 寄存器切换(包括EIP,ESP等,均在switch_to函数中).这里我们讲述下switch_to主流程: 1. 在switch_mm函数中将new_task->pgd设置到cr3寄存器中,实现页表切换,由于每个进程3-4G的页表映射机制完全一样(从内核页表中直接复制过来的),故这里虽然切换了pgd,但是并无影响,只是在任务回到用户空 间

Linux系统下使用Flacon导入CD音频文件中的歌曲

Linux系统下使用Flacon导入CD音频文件中的歌曲  Flacon 是一款 Qt 工具,用于从音频 CD 中提取个人曲目,基于在CUE文件中提供的信息提取如 WavPack. APE. FLAC. WAV 或 True Audio. 该应用程序提供了输出格式具体设置:你可以设置除 ReplayGain 以外的输出质量,压缩等,无论是每个专辑或音轨. Flacon 另外一个有用的功能就是标记导出的音轨文件,基于在CUE文件或手动提供的信息. 最新版本 Flacon 1.2.0 最近已经发布,

在Linux系统下用DD命令制作ISO镜像U盘启动盘

  我的当前的系统是Linux(版本Xubuntu),之前是通过软通牒(UltraISO)在Windows系统下制作了这个Linux系统的U盘启动盘,然而在Linux系统下通过系统本身集成的DD命令,来实现在Linux系统下制作Linux系统的ISO系统U盘启动盘,一行简单的代码就可以搞定.可以顺利给没有系统或需要重装系统的电脑,通过这个制作的U盘来安装ISO镜像系统. 需要的工具:Linux系统.U盘.ISO镜像文件. 首先在Linux系统中打开终端,使用DD命令,格式如下: sudo dd

代码-linux的xterm开启的终端里使用原始套接字发送数据包出错,求助

问题描述 linux的xterm开启的终端里使用原始套接字发送数据包出错,求助 xterm下原始套接字可以接收数据包,但是发送数据包时出错,怎么解决? 错误是[error 101]network is unreachable. 代码如下: proto = socket.getprotobyname('tcp') # only tcp sock = socket.socket( socket.AF_INET, socket.SOCK_RAW, proto ) packet_base = sock.

《Java程序员面试秘笈》—— 面试题3 Linux操作系统下如何安装Java SE开发环境

面试题3 Linux操作系统下如何安装Java SE开发环境 考点:由于大部分的计算机用户都使用Windows作为操作系统,而Java语言是具有跨平台优势的,不同企业有不同的开发环境,本试题考察求职者是否有在Linux下开发Java的经验.Linux环境下的Java安装是一个基础问题. 出现频率: [面试题解析]该问题有两个关键点,一个是Linux版本Java SDK的文件类型,另外一个是Linux环境变量的配置. 参考答案: Oracle发布的Linux操作系统Java包有JDK和JRE两种版

Linux环境下进程中断的原因

问题描述 Linux环境下进程中断的原因 linux环境下,哪些原因可能造成某进程中断?或者说,代码中哪些不合理的地方可能会引起进程的中断? 解决方案 内存溢出等,程序无法处理的异常都会造成程序进程中断 解决方案二: 中断是一种是一种机制: 看下面的一段汇编代码: .section .data string:.ascii "hello" .section .text .globl _start _start: movl $4,%eax#sys_call_num movl $2,%ebx