分析版本1内核,回答下列问题:
系统运行时,执行的前 3 个系统调用的编号和名字分别是什么?
为了完成本关任务,你需要:跟踪系统调用的发生。
环境准备
本关卡使用版本 1 内核进行分析,版本 1 内核文件存放在/data/workspace/myshixun/exp1
文件夹中。
使用 gdb 调试内核,跟踪到 main 函数入口的方法与之前实训一样。
cp /data/workspace/myshixun/ ~/os
cd ~/os/linux-0.11-lab
tar -zxvf ../1.tgz
rm -rf cur
ln -s 1 cur
cd 1/linux
make
cd ../..
./rungdb新建一个终端terminal
cd ~/os/linux-0.11-lab
./mygdb
跟踪系统调用的发生
系统调用的总控函数是 system_call ,只要在这里设断点,即可捕获系统调用的发生,如下图所示:
此时,系统调用号存放在寄存器 eax 中
重复上述操作
b system_call
c
disas
display $eax
disas
b *0x7780
c
x/3i $eip
si
再次重复
b system_call
c
disas
display $eax
disas
b *0x7780
c
x/3i $eip
si
根据相关知识,回答问题:(将答案填写在/data/workspace/myshixun/第一关.txt
中)
系统运行时,执行的前 3 个系统调用的编号和名字分别是什么?
本文发布于:2024-01-28 16:54:04,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064320498879.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |