2019-03-18 实验吧-Debug WriteUp

分析过程

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


图1

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


图2

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


图3


图四

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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容