ARM架构kprobe应用及实现分析(7.0 自动显示参数的值)
来源:互联网 发布:js获取当前页面内容 编辑:程序博客网 时间:2024/04/30 13:51
通过前面的介绍
知道参数在寄存器及堆栈的位置,我们就有可能显示参数的值
jprobe也可以显示参数的值,但是其有缺点:不能探测函数时加上偏移量
具体上下文请参考: ARM架构kprobe应用及实现分析(3.0 被探测函数说明)
导出参数的函数:
static int dump_arm_parameter(struct pt_regs *regs){ int i=0; unsigned int * sp = regs->uregs[13]; printk(" func paras maybe : (0x%08x,0x%08x,0x%08x,0x%08x,0x%08x,0x%08x) \n",\ regs->uregs[0],\ regs->uregs[1],\ regs->uregs[2],\ regs->uregs[3],\ *sp,\ *(sp+1)\ ); return 0;}
使用情形:
static int handler_pre(struct kprobe *p, struct pt_regs *regs){ printk("shitshit kprobes name is %s pt_regs size is %d \n",p->symbol_name,sizeof(regs->uregs)); dump_arm_regs(regs->uregs); dump_arm_stack((unsigned int *)regs->uregs[13],5); dump_arm_parameter(regs);return 0;}
kernel log 输出如下:
func paras maybe : (0x00000011,0x00000022,0x00000033,0xc077c670,0x00000044,0x00000055)
与我们实际传入的一致
good luck
- ARM架构kprobe应用及实现分析(7.0 自动显示参数的值)
- ARM架构kprobe应用及实现分析(5.0 打印寄存器的值)
- ARM架构kprobe应用及实现分析(6.0 导出堆栈的值)
- ARM架构kprobe应用及实现分析(8.0 register_kprobe实现)
- ARM架构kprobe应用及实现分析(1.0 简单示例)
- ARM架构kprobe应用及实现分析(11 原理)
- ARM架构kprobe应用及实现分析(10 trap中断注册及回调)
- ARM架构kprobe应用及实现分析(2.0 register_kprobe error 38)
- ARM架构kprobe应用及实现分析(3.0 被探测函数说明)
- ARM架构kprobe应用及实现分析(9.0 arch_prepare_kprobe平台相关注册)
- Kprobes源码分析----kprobe的注册
- Kprobes源码分析----kprobe的处理
- ARM及ARM架构的背景
- ARM架构显示寄存器的详细信息
- Hbase的应用场景、原理及架构分析
- Hbase的应用场景、原理及架构分析
- linux内核kprobe分析
- ARM虚拟地址原理分析及实现
- sql流程控制方面的
- HDU 2199 Can you solve this equation? (二分 水题)
- Win32多线程之设计多线程程序需要注意的问题
- Map/Reduce 算法面试问题列表
- memcached源码分析之内存管理 -- slab allocator(1)
- ARM架构kprobe应用及实现分析(7.0 自动显示参数的值)
- LINUX下搭建FTP服务器
- Android开发 静默安装,避免了更新安装的时候跳出的对话框,后台安装
- JAVA多线程:什么时候使用哪种实现方式
- android静默安装探讨
- CreateThread, AfxBeginThread,_beginthread, _beginthreadex的区别
- 在android中静默安装应用
- Hibernate_根据配置文件反向生成表格
- xml学习笔记二--约束