Linux2.6用户态API HooK手动操作

本文介绍了在Linux2.6中使用Ptrace动态注入进程,以手动方式hook /bin/bash的chdir函数。通过objdump查看ELF结构,利用gdb设置断点,控制进程运行。详细步骤包括获取.got和.got.plt地址,修改PLT条目,以及在gdb中恢复和继续执行。

Linux2.6用户态API HooK入门

1. 概述

API Hook,传说中的API钩子,是指神不知鬼不觉地替换掉标准系统API的方法,Hook技术在Windows下面已经发展得登峰造极了(windows平台上常见的hook方式有导入导出表、vehseh、inline等等)。

1.1.      编写目的

本文编写目的是学习Linux下如何使用Ptrace动态注入进程入门,本文采用手动gdb的方式和修改运行指令,进行hook,控制进程的运行。本文以hook /bin/bash的chdir函数调用为切入点。包含objdump使用、gdb修改运行指令和进程文件ELF解析。

2.手工过程

1.       

2.       

2.1.      环境

[root@10 ~]# uname -a

Linux 10.12.198.932.6.32.57-tlinux_xenU-1.1.rc11-default #1 SMP Tue Jul 30 09:53:44 CST 2013x86_64 x86_64 x86_64 GNU/Linux

2.2.      ELF简介

ELF(ExecutableLinkable Format)是Linux下的可执行格式,与windows下的PE(Portable Executable)格式一样,都是COFF(Common File Format)文件格式的变种。在Linux下除了可执行文件,编译过程中产生的目标文件(.o文件),动态链接文件(.so文件),静态链接库文件(.a文件),核心转储文件(Core Dump File)都按照ELF格式存储。“.got”(Global Offset Table)和“.plt”(Procedure Linkage Table)

2.3.      Hook步骤

a.获得/bin/bash的.got和.got.plt地址

objdump -h/bin/bash查看bash的elf结构:

/bin/bash:     file format elf64-x86-64

 

Sections:

Idx Name          Size      VMA               LMA               File off  Algn

  0 .interp       0000001c 0000000000400200 0000000000400200  00000200  2**0

          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值