实验吧
逆向工程
debug
-
下载文件,然后用idaq打开,
图片.png
尝试在linux下打开发现么没有返回值,
在idaq里面去查看shift+F12 查看字符串,发现有个printing flag
这里想着如何可以进去,

图片.png
可以看到其实位置在0x804849b
-
设置断点,查看
一般设置在main 但是main没有定义
[图片上传失败...(image-12bd86-1566818035404)]
这里查了下发现这几个可以代替
程序启动的过程应该是这样的:
_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.所以我们设置在libc_start_main 也可以达到相同的效果
-
获取flag
图片.png
设置入口

图片.png
运行,之后在设置断点 , 先 r 在 set $eip=0x804849b

图片.png
成功拿到flag

