system-calls

系统挂钩来查找加密文件
system-calls

系统挂钩来查找加密文件

如何设置系统钩子,以便每当/path/to/file请求的内容时,系统都会执行以下操作 首先检查是否/path/to/file存在。如果存在,则正常操作。 如果不存在,则查找/path/to/file.gpg。如果后者也不存在,则正常操作。 如果后者存在,则调用gpg并提示用户解密,如果解密成功,则将其内容返回给原始请求。 例子 rclone~/.config/rclone/rclone.conf每次调用时都会查找。我希望只存储其加密版本~/.config/rclone/rclone.conf.gpg。但我不想破解 rclone 以使其遵循上述描述。我...

Admin

什么原因可能导致各种应用程序中出现“中断系统调用”错误?
system-calls

什么原因可能导致各种应用程序中出现“中断系统调用”错误?

我在 MacBook Pro(Intel,2020,MacOS 11.1)上遇到了一些非常奇怪的问题。各种命令都失败了,但不一致。运行相同的命令两次会导致不同的结果。 针对我的本地 Postgres 服务器(在 Postgres.app 中运行)的查询经常失败(但并非总是如此),并出现如下所示的错误postgresql.log: DETAIL: Could not open file "pg_clog/0000": Interrupted system call. ERROR: checkpoint request failed HINT: Consu...

Admin

如何挂钩 bash 命令或系统调用以保留扩展文件属性?
system-calls

如何挂钩 bash 命令或系统调用以保留扩展文件属性?

我编写了一个基于扩展文件属性的备份系统。许多编辑程序(如 vim)会从它们编辑的文件中删除这些属性。我的想法是挂接任何引用文件的 bash 命令,以便将属性保存到变量或临时文件中。然后,后命令挂接会重新加载这些属性。我发现,可以使用 trap 在每个 bash 命令之前和之后运行任意命令,即添加: trap date DEBUG 在 .bashrc 中,将在任何 bash 命令之前运行 date 命令。但是,我无法将其限制为处理文件的 bash 命令并获取文件名。我希望能够编写如下代码: trap 'getfattr -d {} > /tmp/...

Admin

什么可以触发 SIGPWR 信号,从而中断“sendmsg”系统调用?
system-calls

什么可以触发 SIGPWR 信号,从而中断“sendmsg”系统调用?

在 RHEL 6 主机上,我有一个 Cassandra 服务器,用于监听 localhost 上的 TCP 连接。同时,我有一个客户端应用程序向其发送请求。客户端 (C# Mono) 使用sendmsg发送序列化的字节。 我总是看到sendmsg返回,但并未发送所有请求的字节。我曾经strace尝试调试此问题 sudo strace -p<pid> -s 100 -f -tt &> tmp.out 并锯(过滤后的样品用于线头47605) [pid 47605] 16:32:13.388307 sendmsg(8, {msg...

Admin

解释
system-calls

解释

解释 有两种类型的地址空间:虚拟地址空间和物理地址空间。在物理模型上(通常由内核使用)内存是有限制的,每个地址都与物理地址相对应。 虚拟的供进程使用。没有限制(除了由于指针大小而导致的)。要获得更多内存,程序只需请求它(忽略可以请求的金额)。每个地址都映射到不同的物理地址。 这就是进程在从 RAM 中读取的内容方面受到限制的方式。 问题 原因是系统调用使用 ring0,但同时(至少在 Linux 上)进程状态更新为可中断,表明系统调用使用虚拟地址空间。 据我所知,CPU 环与特权指令有关,与地址空间无关(因为它与 MMU 相关)。 因此如果越界读取(由于漏洞...

Admin

为什么 Linux 64 位系统调用表不同
system-calls

为什么 Linux 64 位系统调用表不同

我刚刚在网上查看了 Linux 系统调用号码,我发现无论是 32 位还是 64 位 Linux 版本,号码都不同。 为什么 Linux 要改变系统调用的顺序?这不会使 32 位和 64 位 Linux 程序之间的兼容性更难实现吗? 更多信息: 以下是我找到系统呼叫号码的网站:32 位 Linux,64 位 Linux。 我还在这两个文件中找到了 Linux 系统中的系统调用编号:/usr/include/asm/unistd_32.h和/usr/include/asm/unistd_64.h。 编辑:我编写了一个32位汇编Hello World程...

Admin

睡眠系统调用如何工作?
system-calls

睡眠系统调用如何工作?

一个进程可能会要求操作系统将其暂停 0.5 秒,但是它如何工作呢? 由于其他程序同时运行,CPU 不会简单地停止运行那 0.5 秒,那么我们如何暂停运行应用程序一段时间呢? ...

Admin

结合 chmod 和 chgrp 的 Shell 命令
system-calls

结合 chmod 和 chgrp 的 Shell 命令

是否有一个组合变体chmod,可以chgrp在一个系统调用中为每个文件设置用户和组权限?这对于提高 NFS 等慢速数据层的性能很有用。 ...

Admin

添加系统调用时出错
system-calls

添加系统调用时出错

我使用的是 Ubuntu 12.04(64 位),并安装了内核版本 linux-2.6.37.3。我的设备是 ASUS x201ev 上网本(64 位)。我提供了我使用的程序的链接。我还编辑了 unistd_64.h 文件并正确编号了新调用。 但是我的 make 过程卡住了。它说找不到块(没有目录)或在目录中找不到 /built-in.o 文件。错误是 make1:*** [vmlinux.o] 错误 1 如何解决这个问题?请帮忙! 在 Linux 内核 2.6.29 中添加系统调用 ...

Admin

为什么每次移动鼠标时都会调用“csrss.exe”?
system-calls

为什么每次移动鼠标时都会调用“csrss.exe”?

在我的 Windows XP SP3 启动并且所有 CPU 活动 Dimm 之后,我观察了当我在桌面上的空白处以圆圈移动鼠标时发生的情况:首先exporer.exe调用,然后csrss.exe。 在里面维基百科文章它csrss.exe说的是类似 当用户模式进程调用涉及控制台窗口、进程/线程创建或并行支持的函数时,Win32 库(kernel32.dll、user32.dll、gdi32.dll)不会发出系统调用,而是向 CSRSS 进程发送进程间调用,该进程会在不影响内核的情况下完成大部分实际工作。[1] 窗口管理器和 GDI 服务由内核模式驱动程...

Admin

使键盘弹出开关工作
system-calls

使键盘弹出开关工作

我使用的是 Linux。我的键盘开关无法弹出 CDROM,尽管屏幕上会显示弹出按钮。我需要让它工作。我知道使用系统调用弹出 CDROM 很简单 ioctl(cdromfd,CDROMEJECT,0) 但我不知道如何将包含上述系统调用的可执行文件与按下弹出键的事件联系起来?还是我应该依赖内核级别?如果是,那怎么办? ...

Admin

为什么现代 Unix 系统中没有为 mkdir 设置 setuid 权限位?
system-calls

为什么现代 Unix 系统中没有为 mkdir 设置 setuid 权限位?

巴赫声明如下: 建立目录是一个典型setuid程序。只有具有有效 UID root 的进程才能创建文件夹。(第 7.6 节,第 229 页) 我在 Ubuntu 12.04 上检查了它的权限,setuid 位没有设置。 -rwxr-xr-x 1 root root 42624 Oct 2 08:55 mkdir ^?? 然后我检查了其他应该有此项设置的程序,例如ping和,su并且它们已经设置了它。 -rwsr-xr-x 1 root root 34740 Nov 8 2011 ping ^---there it i...

Admin

Linux 相当于 Mac OS X 的 fs_usage
system-calls

Linux 相当于 Mac OS X 的 fs_usage

Linux 中是否有与 Mac OS X 命令 fs_usage 等效的命令?根据手册页它执行以下操作:“实时报告与文件系统活动相关的系统调用和页面错误”。 我认为一个选择是使用 strace 并过滤数据,但是 fs_usage 命令允许同时“跟踪”系统上运行的所有进程。 以下是示例输出: 03:44:25 stat64 erences/ByHost/org.mozilla.firefox.69AC0B48-F675-5045-B873-A28B119C33E7.plist 0.000029 firefox ...

Admin

中断描述符表和系统调用表?
system-calls

中断描述符表和系统调用表?

有人能帮我找出这两者之间的关系吗?在某处读到过 “IDT 首次由 BIOS 例程初始化,但 Linux 在取得控制权时会再执行一次初始化。” 那么对于中断挂钩攻击者是否必须再次更改内容? 当发生系统调用时,控制权是否从一般意义上从IDT转移到系统调用表? ...

Admin

为什么 strace/truss 有时会‘修复’卡住的进程?
system-calls

为什么 strace/truss 有时会‘修复’卡住的进程?

有时,你会遇到一个卡住的进程,它已经卡住了一段时间,当你用 strace/truss 戳它看看发生了什么事情时,它就会神奇地解开并继续运行!所以,仅仅从“观察”这些程序对卡住程序的运行有一些影响……这里发生了什么?strace(我猜是通过 ptrace(2)?)是否发送了信号,导致程序停止阻塞,或者类似情况? 我已经多次看到这种情况了——最近一次是在 Linux RHEL 4 上(以及一个 Perl 脚本,它弄乱了进程并执行了一些网络 IO),但在其他一些情况下也出现过这种情况。不幸的是,我无法重现这种情况,因为它有时会发生……在危机时刻。但我的好奇心依然...

Admin