LKM && hack sys_execve

kratochvil jiri kratochvil na dbsystem.com
Čtvrtek Březen 6 10:17:38 CET 2003


Potreboval bych logovat vsechny spustene/spoustejici se aplikace. Mysle
jsem ze jednoduce zahakuju sys_execve. Ale nejak mi to nechce fungovat.
Mam dotaz na zkusene kernel harcovniky kde muze byt problem?

Kdyz provolam puvodni exec tak to krashne na bad IP - a podle vypisu je
v nem vzdycky hodnota 23?

<hacked_exec>
extern void* sys_call_table[];

struct pt_regs;

int (*orig_execve) (const char *, const char *[], const char *[], struct pt_regs *regs);

int hacked_execve(const char *filename, const char *argv[], const char *envp[],struct pt_regs *regs)
  {
  printk("Hacked execve called\n");
  return (*orig_execve)(filename, argv, envp, regs);
  }

static int __init hexec_init(void)
  {
  orig_execve = sys_call_table[SYS_execve];
  sys_call_table[SYS_execve] = hacked_execve;

  printk("exec hack loaded :))\n");
  return 0;
  }

static void __exit hexec_cleanup(void)
  {
  printk("exec hack goodbye :))\n");
  sys_call_table[SYS_execve] = orig_execve;
  }

module_init(hexec_init);
module_exit(hexec_cleanup);

</hacked_exec>


Další informace o konferenci Linux