2019-03-18 实验吧-Debug WriteUp

分析过程

1、首先,将文件放入IDA,发现是elf类型文件


2019-03-18 实验吧-Debug WriteUp_第1张图片
图1

2、字符串定位,View -> OpenSubviews->Strings(快捷键:Shift+F12),发现flag字样。


2019-03-18 实验吧-Debug WriteUp_第2张图片
图2

3、双击 Printing flag,发现XREF交叉引用,继续双击XREF,向前追踪,发现0x0804849b为该函数起始地址。


2019-03-18 实验吧-Debug WriteUp_第3张图片
图3


2019-03-18 实验吧-Debug WriteUp_第4张图片
图四

4、在linux下运行程序,发现无任何显示,可设置断点 b __libc_start_main;按 r 运行;

程序启动的过程应该是这样的:

_start -> __libc_start_main -> main. 具体一点就是:

_start -> __libc_start_main -> __libc_csu_init -> main. 再具体一点就是:

_start -> __libc_start_main -> __libc_csu_init -> _init -> main -> _fini.

官方点的解释:__libc_start_main sets up the environment and then calls the main() function when the binary is run.

5、停在断点处后,设置eip为前面发现的函数地址:set $eip=0x0804849b,继续运行,发现flag。

2019-03-18 实验吧-Debug WriteUp_第5张图片

你可能感兴趣的:(2019-03-18 实验吧-Debug WriteUp)