使用kprobes,截获execve系统调用,更谨慎的hook syscallTable的写法
2012-08-29 13:51
513 查看
关于截获execve等系统调用,很久以来存在一个问题:新函数不能直接调旧函数,
否则导致stack不平衡,出错。
曾经有高人用一串的汇编代码去平衡堆栈, 但对于偶们这些汇编菜鸟来说, 连阅读都很困难。
而且, 好像gcc4.x下不支持 它使用的一种寻址方式了。
这次使用kprobes来直接找do_execve,直接照搬sys_execve的实现代码。
至于LICENSE的问题,谁用谁负责,我只是从技术角度上说可以这样做。(我的代码是GPL的)
只截获了open和execve作为示例,其它的syscall都是一样的道理。
README:
源代码:
否则导致stack不平衡,出错。
曾经有高人用一串的汇编代码去平衡堆栈, 但对于偶们这些汇编菜鸟来说, 连阅读都很困难。
而且, 好像gcc4.x下不支持 它使用的一种寻址方式了。
这次使用kprobes来直接找do_execve,直接照搬sys_execve的实现代码。
至于LICENSE的问题,谁用谁负责,我只是从技术角度上说可以这样做。(我的代码是GPL的)
只截获了open和execve作为示例,其它的syscall都是一样的道理。
README:
Can work at i386, linux 2.6.22. We only intercepted 1) sys_open, and 2) sys_execve, for an illustrating purpose. New Feautres: -> Check and verify the WP bit of CR0. -> Intercept execve with the help of kprobes. Likewise, fork/vfork/clone can be intercepted in the same way. |
|
相关文章推荐
- 使用kprobes,截获execve系统调用,更谨慎的hook syscallTable的写法
- 使用kprobes,截获execve系统调用,更谨慎的hook syscallTable的写法
- Linux中应用程序如何使用系统调用syscall
- 使用内核模块hook内核系统调用(just for fun)
- Linux中应用程序如何使用系统调用syscall
- 截获系统调用(sys_call_table/VFS)
- Linux内核监控模块-3-系统调用的截获
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
- linux平台学x86汇编(十七):在汇编中使用linux系统调用
- Android调用系统摄像头--使用MediaRecorder--1--预览(preview)功能
- 使用 Linux 系统调用的内核命令【转】
- React-Native在APP调用浏览器或其他系统应用(Linking的使用)
- Ftrace使用指南及跟踪系统调用
- 使用 Linux 系统调用的内核命令
- iOS --- 使用openURL调用iOS系统应用
- 不用syscall table的方法来截获系统调用的方法的分析
- 使用JAVA远程调用导致程序自动down掉,jdk1.5的debug模式系统漏洞
- 在系统方法中调用navigationController的标准写法
- 使用intent调用Android系统自带应用
- Syscall系统调用分析