Linux Hook技术实践

本文介绍了Linux Hook技术,通过hook可以替换原本的库函数执行,用于恶意代码注入、功能扩展或行为调整。文章详细讲解了如何在Linux下实现hook,包括重写函数并打包成库,利用dlsym获取原始函数地址,以及使用LD_PRELOAD环境变量优先加载自定义库。示例中展示了如何hook select函数,从而改变程序的行为。
摘要由CSDN通过智能技术生成

LInux Hook技术实践

什么是hook

简单的说就是别人本来是执行libA.so里面的函数的,结果现在被偷偷换成了执行你的libB.so里面的代码,是一种替换。

为什么hook

  1. 恶意代码注入
  2. 调用常用库函数时打log
  3. 改变常用库函数的行为,个性化

怎么hook

这个东西在win里面有现成的api,但是在linux里面却要主动修改ELF文件,或者修改动态库链接路径。我看网上写的好多挺麻烦的,而且还要调用各种修改ELF的API。。。。所以这里提供一种简单的方法来hook

下面直接demo吧

/*myselect.c*/
#define _GNU_SOURCE
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/select.h>
#include <sys/time.h>
typedef 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值