驱动如何调用起用户态下的程序呢?

an_bachelor 2020-11-17 02:13:48
大家好,假设有内核态模块他想调用一个普通的可执行文件
那如何才能做到呢 直接调用肯定不行的对吧?
windows下好像是不能直接 有不同的内存地址空间。

有牛人教我说,可以直接把可执行代码加载到内存,然后类似jmp xxx这样直接跳转到那个内存地址去执行。。
请教这个方法可行吗?
...全文
409 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
an_bachelor 2020-11-17
  • 打赏
  • 举报
回复
引用 2 楼 mouse_zhu 的回复:

  struct subprocess_info *sub_info;
  char *argv[] = { "/usr/bin/ls", "/tmp/", NULL };
  static char *envp[] = {
        "HOME=/",
        "TERM=linux",
        "PATH=/sbin:/bin:/usr/sbin:/usr/bin", NULL };

  sub_info = call_usermodehelper_setup( argv[0], argv, envp, GFP_ATOMIC );
  call_usermodehelper_exec( sub_info, UMH_WAIT_PROC );
高手 一阵见血 学习了
mouse_zhu 2020-11-17
  • 打赏
  • 举报
回复

  struct subprocess_info *sub_info;
  char *argv[] = { "/usr/bin/ls", "/tmp/", NULL };
  static char *envp[] = {
        "HOME=/",
        "TERM=linux",
        "PATH=/sbin:/bin:/usr/sbin:/usr/bin", NULL };

  sub_info = call_usermodehelper_setup( argv[0], argv, envp, GFP_ATOMIC );
  call_usermodehelper_exec( sub_info, UMH_WAIT_PROC );
mouse_zhu 2020-11-17
  • 打赏
  • 举报
回复
call_usermodehelper_setup 学习一下

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧