目前流行和成熟的kernel inline hook技术就是修改内核函数的opcode,通过写入jmp或push ret等指令跳转到新的内核函数中,从而达到修改或过滤的功能。这些技术的共同点就是都会覆盖原有的指令,这样很容易在函数中通过查找jmp,push ret等指令来查出来,因此这种inline hook方式不够隐蔽。本文将使用一种高级inline hook技术来实现更隐蔽的inlinehook技术。 二、更改offset实现跳转 如何不给函数添加或覆盖新指令,就能跳转到我们新的内核函数中去呢?我们知道实现一个系统调用的函数中不可能把所有功能都在这个函数中全部实现,它必定要调用它的下层函数。如果这个下层函数也可以得到我们想要的过滤信息等内容的话,就可以把下层函数在上层函数中的offset替换成我们新的函数的offset,这样上层函数调用下层函数时,就会跳到我们新的函数中,在新的函数中做过滤和劫持内容的工作。原理是这样的,具体来分析它该怎么实现, 我们去看看sys_read的具体实现: linux-2.6.18/fs/read_write.ca *** linkage ssize_t sys_read(unsigned int fd, char __user * buf, size_t count){ struct file *file; ssize_t ret = -EBADF; int fput_needed; file = fget_light(fd, &fput_needed); if (file) { loff_t pos = file_pos_read(file); ret = vfs_read(file, buf, count, &pos); file_pos_write(file, pos); fput_light(file, fput_needed); } return ret;}EXPORT_SYMBOL_GPL(sys_read); 我们看到sys_read最终是要调用下层函数vfs_read来完成读取数据的操作,所以我们不需要给sys_read添加或覆盖指令, 而是要更改vfs_read在sys_read代码中的offset就可以跳转到我们新的new_vfs_read中去。如何修改vfs_read的offset呢?先反汇编下sys_read看看: [root@xsec linux-2.6.18]# gdb -q vmlinuxUsing host libthread_db library "/lib/libthread_db.so.1".(gdb) disass sys_readDump of assembler code for function sys_read:0xc106dc5a : push %ebp0xc106dc5b : mov %esp,%ebp0xc106dc5d : push %esi0xc106dc5e : mov $0xfffffff7,%esi0xc106dc63 : push %ebx0xc106dc64 : sub $0xc,%esp0xc106dc67 : mov 0x8(%ebp),%eax0xc106dc6a : lea 0xfffffff4(%ebp),%edx0xc106dc6d : call 0xc106e16c 0xc106dc72 : test %eax,%eax0xc106dc74 : mov %eax,%ebx0xc106dc76 : je 0xc106dcb1 0xc106dc78 : mov 0x24(%ebx),%edx0xc106dc7b : mov 0x20(%eax),%eax0xc106dc7e : mov 0x10(%ebp),%ecx0xc106dc81 : mov %edx,0xfffffff0(%ebp)0xc106dc84 : mov 0xc(%ebp),%edx0xc106dc87 : mov %eax,0xffffffec(%ebp)0xc106dc8a :
深度技术WinXP系统用户反映,经常一些没用的程序在运行时会自动在任务栏显示图标,不管是在使用的程序还是已经卸载的,只要在通知区域呆过就会一直呆下去。面对这样的情况,我们该怎么办呢?下面就来看看...
常言道,“一切为了更好地小宝宝”,只要现代人更重视本身,但这并不妨碍每个人好好爱自己的小孩子,并要想尽很大 刻苦思考他们的规定,在这其中营养搭配第一个。 不管小孩子有多调皮,不容置疑的是,他们的消化系...
怎么看老婆微信和别人聊天记录(怎么查老婆的微信聊天记录)近期网上疯传在微信搜索栏中输入“:recover”就可以恢复删除的微信聊天记录,可是,输入之后recover为啥恢复不了的问题又出现了。如何恢复...
一、网络赌博输了怎么找黑客 1、拦截验证码黑客网站但在本文中,我们将重点放在软件黑客的技术和态度以及发明黑客这个词的共享文化传统上。网络赌博输了犯法?不幸的是,许多记者和作家倾向于错误地利用黑客作为黑...
西雅图风暴队简介,西雅图风暴队阵容。 虎扑9月13日讯 NBA官方今天在推特上传了一张祝贺西雅图风暴队获得2018年WNBA总冠军的照片(见新闻配图)。 “冠军!祝贺西雅图风暴...
据Mobile World Live报道,华为轮值董事长胡厚崑呼吁有关政府给出禁止中国设备的证据,从而证明所谓的安全威胁,并打开沟通渠道,这样公司才能采取行动。但是华为发现,许多国家并没有这么做。...