分享一个有意思的gdb插件

最近在一个技术分享上听说了一个有意思的gdb插件:peta(https://github.com/longld/peda),使用它可方便地对C/C++代码进行逆向工程

peda的输出分为三个框,一个显示寄存器状态,一个显示当前汇编指令,一个显示stack状态

安装方法很简单,

git clone https://github.com/longld/peda.git ~/pedaecho "source ~/peda/peda.py" >> ~/.gdbinitecho "DONE! debug your program with gdb and enjoy"

接下来写个小程序试用下:

#include <iostream>int main() {int i = 10;i = i++;std::cout << i << std::endl;return 0;}

执行i = i++之后,i的值是多少呢?是10还是11?根据语言标准这其实是未定义行为,也就是返回什么值,主要取决于具体的编译器实现。接下来我们在X86 GCC编译看看结果如何?

g++ -g -O0 1.cpp./a.out10

可以看到i的结果为10。为什么会这样呢?我们逆向二进制a.out一探究竟

gdb ./a.out

核心代码如下,i从内存load到寄存器之后,先执行自增,然后先将自增结果11 save到内存,再将i++返回值10 save到内存,结果值11被10覆盖,最终i的值为10。

0x00000000004007ea <+8>:  mov    DWORD PTR [rbp-0x4],0xa   ; i = 10   0x00000000004007f1 <+15>:mov    eax,DWORD PTR [rbp-0x4]   ; eax = i(10)=> 0x00000000004007f4 <+18>:lea    edx,[rax+0x1]             ; edx = 11   0x00000000004007f7 <+21>:mov    DWORD PTR [rbp-0x4],edx   ; i = edx(11)   0x00000000004007fa <+24>:mov    DWORD PTR [rbp-0x4],eax   ; i = eax(10)
(0)

相关推荐

  • 深入了解GOT,PLT和动态链接

    之前几篇介绍exploit的文章, 有提到return-to-plt的技术. 当时只简单介绍了 GOT和PLT表的基本作用和他们之间的关系, 所以今天就来详细分析下其具体的工作过程. 本文所用的依然是 ...

  • 分享一个有意思的小工具

    分享一个有意思的小工具 - 正则表达式可视化分析器 Regulex 每次看到那些又臭又长的正则表达式[what],估计很多同学都需要认真看上好一会儿才能明白什么意思,有了这个神器可读性就会提高很多,它 ...

  • 今天,跟大家分享一个很有意思的方子,名字...

    今天,跟大家分享一个很有意思的方子,名字叫<大黄牡丹汤>. 这个方是出自于张仲景的<金匮要略>,这个方是干什么用的呢,是治疗肠痈的. 肠痈这个病,类似于现代的急性阑尾炎,因为古 ...

  • 今天给大家分享一个治疗肝肾两虚的方子:熟...

    今天给大家分享一个治疗肝肾两虚的方子:熟地黄.肉苁蓉.菟丝子.巴戟天.枸杞子.车前子.白菊花. 主治:肝肾两虚.视物昏暗.眼前黑花.迎风流泪.

  • 今天给大家分享一个治疗呃逆(打嗝)的方子...

    今天给大家分享一个治疗呃逆(打嗝)的方子. 组方:制附子.干姜.白术.白芍.茯苓.人参.甘草. #打嗝##中医#

  • 分享一个胃脘痛的治疗方药 ...

    分享一个胃脘痛的治疗方药 由于胃溃疡引起的胃脘痛,用活血化瘀浓缩液治疗,效果甚好,介绍如下: [临床表现]胃脘刺痛,或饭前发作,或伴吞酸.吐酸.食少.消瘦,或有大便色褐.舌有瘀斑或正常,脉弦. [治法 ...

  • 【分享一个缓解滑膜炎的热敷小方子】滑膜炎...

    [分享一个缓解滑膜炎的热敷小方子] 滑膜炎在中医学中属"痹症",是经络不通.气血运行不畅.寒气流入关节所致 可以通过改善骨关节血液循环障碍,能有效缓解滑膜炎带来的不适症状 有关节炎 ...

  • 今天给大家分享一个治疗外感风热的方子,适...

    今天给大家分享一个治疗外感风热的方子,适合热汗不止.口鼻干燥.微渴思饮.咳嗽少痰等症状. 组方:金银花.连翘.荆芥穗.薄荷.淡豆豉.苦桔梗.牛蒡子.竹叶.甘草.鲜苇根. 作汤,煎数沸,日服四饮. #中 ...

  • 【水草造景】分享一个插种式水上叶水草盆景

    大家好,我是净植画社舒大先生,有幸在[rlyl的自然世界]平台给大家分享一下我制作的插种水上叶盆景.因为从草缸的水草修剪下来扔掉很可惜,于是我花了半年时间尝试培养水上叶,并把水上叶修剪出来进行插种.期 ...

  • 炎炎夏日即将来临,今天我给大家分享一个非...

    炎炎夏日即将来临,今天我给大家分享一个非常适合夏季常备的方子,"驱风散热饮" 组方:羌活.防风.薄荷.连翘.牛蒡子.大黄.栀子.赤芍.当归.川芎.甘草. 水煎服.分早晚服.可防治风 ...