草庐IT

hook_event_proc

全部标签

linux - 如何在二进制执行期间 Hook 所有 linux 系统调用

我正在尝试修改linux系统调用的默认行为。目前,我正试图在它们实际被调用之前Hook并添加一个简单的打印语句。我知道GCC链接器的标准“wrap”选项以及它如何用于Hook包装器LinktoGCCLinkeroptions.这非常适用于open()、fstat()、fwrite()等(我实际上是在挂接libc包装器)。更新:限制是并非所有系统调用都与这种方法Hook。为了说明这一点,让我们采用一个简单的静态编译二进制文件。当我们尝试添加包装器时,它们会受到我们在main()之后引入的调用的影响(请参阅下面显示的strace输出)>strace./sampleexecve("./sam

ruby-on-rails - git post-receive hook 没有运行 bundle install

我在运行接收后Hook时遇到问题,如下所示:#!/bin/shunset$(gitrev-parse--local-env-vars)cd~/commoditygitpulloriginmasterbundleinstallbundleexecrakeassets:precompilethinrestart我正在从本地推送到远程,但出现此错误:Countingobjects:5,done.Deltacompressionusingupto4threads.Compressingobjects:100%(3/3),done.Writingobjects:100%(3/3),319byte

linux - 如何从 proc 文件中读取大数据?

我正在尝试编写一个内核模块,将一些数据写入proc文件。我正在尝试写类似5000个字符的内容,但是当我说$>cat/proc/myentry时,我只能读取1000个字符。intprocfile_read(char*buffer,char**buffer_location,off_toffset,intbuffer_length,int*eof,void*data){intret;staticcharmy_buffer[4096];if(offset>0){ret=0;}else{ret=sprintf(my_buffer,LARGESTRINGHERE);}*buffer_locati

c - 如何使用 netfilter Hook 在内核空间回显数据包?

我想在内核空间回显一个数据包。我在这台机器上用端口6000运行一个回显服务器。现在客户端在另一台机器上运行,将数据发送到回显服务器。现在,我要做的是从内核空间回显数据包。我不想用数据包打扰服务器,它会从内核空间静静地回显。我在下面展示我的代码:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#defineIP_HDR_LEN20#defineUDP_

stdout 的 Linux proc/pid/fd 是 11?

使用重定向到文件的标准输出执行脚本。所以/proc/$$/fd/1应该指向那个文件(因为stdoutfileno是1)。但是,该文件的实际fd是11。请解释原因。这是session:$cathello.sh#!/bin/sh-els-l/proc/$$/fd>&2$./hello.sh>/tmp/1total0lrwx------1ngausers64May2822:050->/dev/pts/0lrwx------1ngausers64May2822:051->/dev/pts/0lr-x------1ngausers64May2822:0510->/home/me/hello.sh

linux - 有谁知道在哪里定义硬件、修订版和序列号。/proc/cpuinfo 的字段?

我想确保我的/proc/cpuinfo是准确的。目前输出Hardware:am335xevmRevision:0000Serial:0000000000000000我可以在代码的哪个位置更改它以提供实际值? 最佳答案 这取决于Linux版本和处理器架构。由于这是TIARM,您可以从:arch/arm/kernel/setup.c开始.寻找staticintc_show()。Revision和Serial值设置为ATAG_REVISIONandATAG_SERIAL,所以一个合适的bootloader可以将它们传递给Linux。通常,

linux - 当满足某些条件时 Hook 到 linux 身份验证以运行脚本或程序

使用ecryptfs或encfs(可能更多)实际的解密密码保存在一个由密码解密的文件中。正因为如此,如果偏执(或试图给人留下深刻印象)您可以在几毫秒内有效地将所有加密数据粉碎为美国国防部标准(通常是整个主目录)。我想设置我的计算机(或者至少是我的vbox系统),以便在输入特定密码或连续输入错误密码一定次数后粉碎包装的密码。这很容易,但我不知道如何进入linux身份验证系统,以允许我检查不正确的密码和/或在文件上运行粉碎程序。TL;DR:有人知道如何在错误登录使用特定密码时让linux粉碎文件吗? 最佳答案 一般来说,用于HookLi

linux - 第二次从 Proc-FS 文件读取时使用 lseek() 是否安全

对/proc/stat文件使用lseek(fd,0)然后read(fd,buf)是否安全下次重新打开它以获取此文件的更新内容?打开此文件后mmap()调用的真正作用是什么(见下文)?我遇到的问题是top报告CPU使用率太低(软件中断为10%与100%)。strace工具指示top不会重新打开此文件,而是会重新开始并再次读取它。不知何故,下次从该文件中读取的内容与我单独为/proc/stat文件运行cat时获得的内容不匹配。此外,如果我同时在循环中运行top和cat/proc/stat,则top开始报告正确的CPU使用率。我发现的另一个区别是top在打开/proc/stat文件后立即使用

linux - 如何 Hook 特定共享 ELF 库的函数?

LD_PRELOAD为整个过程Hook了一些函数,但我只需要通过名称为一个动态链接库Hook特定函数。 最佳答案 参见文章RedirectingfunctionsinsharedELFlibraries.附上ELFhooking的代码。 关于linux-如何Hook特定共享ELF库的函数?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3045763/

linux - Haskell:从/proc 读取。严格和懒惰的问题。过程统计

我在从/proc读取文件时有非常奇怪的行为如果我用prelude的readFile懒惰地读取/proc/pid/stat-它可以工作但不是我想要的方式。使用Data.ByteString.readFile切换到严格读取会给我一个空字符串。我这里需要严格的阅读才能在短时间内比较两次阅读的结果。所以使用System.IO.readFile读取/proc/pid/stat根本行不通。它在0.5秒的间隔内给了我相同的结果。我认为这是由于懒惰和半关闭handle或其他原因......打开和关闭文件句柄明确有效。h但是如果我们有字节串严格阅读,为什么还要这样做。对吧?这就是我卡住的地方。impor