注册账号 登录
小春网 返回首页

崖上のオッサン的个人空间 https://www.incnjp.com/?192660 [收藏] [复制] [分享] [RSS]

日志

straceを使ってみる~

已有 566 次阅读2013-4-27 11:32 |系统分类:学习

[test.c]
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
fp = fopen("/etc/shadow", "r");
if (fp == NULL) {
printf("Error!\n");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
 このプログラムを実行すると
$ ./test
Error!

$ strace test
execve("./test", ["test"], [/* 44 vars */]) = 0
brk(0) = 0x486b000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaaaaaab000
uname({sys="Linux", node="cglsv1.cgl", ...}) = 0
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/usr/local/X11R7/lib/tls/x86_64/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
・・・
open("/lib64/libc.so.6", O_RDONLY) = 3 ———①
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\331"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1687632, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaaaaad7000
mmap(0x359de00000, 3461272, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x359de00000
mprotect(0x359df44000, 2097152, PROT_NONE) = 0
mmap(0x359e144000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x144000) =
0x359e144000
mmap(0x359e149000, 16536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) =
0x359e149000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaaaaad8000
arch_prctl(ARCH_SET_FS, 0x2aaaaaad8210) = 0
mprotect(0x359e144000, 16384, PROT_READ) = 0
mprotect(0x359dc19000, 4096, PROT_READ) = 0
munmap(0x2aaaaaaac000, 173557) = 0
brk(0) = 0x486b000
brk(0x488c000) = 0x488c000
open("/etc/shadow", O_RDONLY) = -1 EACCES (Permission denied) ——②
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaaaaaac000
write(1, "Error!\n", 7) = 7 ———③
exit_group(1) = ?
Process 18399 detached

③が画面にエラーメッセージを出力するシステムコール
②でopen() システムコールが失敗している
/etc/shadow をオープンしようとしてPermission denied となっているのが原因かー


悲剧

无聊

震惊

支持

不解

超赞

愤怒

高兴

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册账号

小春网
常务客服微信
微信订阅号
手机客户端
扫一扫,查看更方便! 返回顶部