http://blog.sina.com.cn/teawater[订阅]
个人资料
跟我直接联系
UBUNTU
Ubuntu: For Desktops, Servers, Netbooks and in the cloud
爱心接力棒
祈福地图
阳光操场
联络方式
GTALK

teawater@gmail.com

MSN

teawater@hotmail.com

QQ`

411104

链接
我的BLOG

备用的BLOG

MSN BLOG

备用的BLOG

SHOW
评论
读取中...
好友
读取中...
分类
    内容读取中…
访客
读取中...
博文
用GDB修改可执行文件的代码和变量
teawater@gmail.com

直接修改可执行文件中的代码和变量好像也没有什么比较好的工具,今天leviathan问我用“set write on”相关的问题,我才发现GDB就是可以很方便完成这个工作的工具,下面我向大家介绍一下使用方法。
另,在GDB文档中介绍这个方法也能修改CORE文件的内容,但即使我读了这块的代码,还是对修改CORE文件毫无思路也没成功过,所以本文就不介绍对CORE文件的修改了。

在一般情况下GDB是以只读方式打开可执行文件的,如果需要改变可执行文件,需要在读入文件以前,用GDB启动参数“--write”或者命令“set write on”用可读写方式打开可执行文件。如果文件已经打开了可执行文件,就需要使用exec-file重新以读写方式打开可执行文件,注意如果你还没打开可执行文件,就一定要使用file命令读入,因为exec-file不会重新读入符号信息。

还有要注意的是,因为修改只能修改section的内容,所以能修改的变量只能是非0的全局变量,内容是O的变量会被放入bss。

下面举例修改变量内容:
cat 1.c
#include <stdio.h>
int a = 1;
int
ma
刚刚1.6.2编译安装使用OK了 建议使用没有kscope的K粉丝 自己下载kscope 1.6.2编译

configure之前把KATE以及KDE的开发包都装上 可以根据config.log中提示信息查询需要安装的包 安装

其中 configure的时候建议 增加 --without-arts
因为arts哪里都找不到

到编译的最后一步 libtool 会失败 报找不到 kateinterfaces 不用担心 直接到相应目录 在命令行中粘贴上 去掉其中的 -lkateinterfaces
换成 /usr/lib/libkatepartinterfaces.la
这行libtool就会通过 接着 make install 一切OK

新买的本装的UBUNTU 9.0.4 amd64 找KSCOPE发现没有 强制找了个老版本的KSCOPE装上又一堆KATE的库找不到 候麻烦的最终放弃

巧合在 http://zhubangbing.blog.163.com/blog/static/52609270200941915459486/
介绍 在 https://launchpad.net/~nizamov-shawkat/+archive/ppa/ 有人编译好的
KSCOPE 1.9.4 for 9.0.4 于是下一个装上

发现1.9.4 跟1.6相比变化真是非常大 左边的当前文件项目表 找不到了 右边的 文件列表也没影了
唯一的优点是搜索结果被加强了 以前只能保留前一个搜索结果 现在好像所有都能保存 而且增加了可以在当前搜索结果中上下切换的热键
KATE被完全从KSCOPE中摘除掉了 所以KATE的各种强悍功能不复存在

我还曾经试图自己编译1.9.4 发现其使用的config是qmake 而且依赖写的不怎么样 qmake 完再make还是失败 也不告诉你需要装什么

总体来说 1.9.4算是一个实验性但是很不成熟的版本