什么是Linux的i686 current_task?

问题描述 投票:0回答:1

我是在国际开发协会专业分析linux的模块。但我不知道在源current_task。该模块是PROC程序并运行您设置的虚拟地址linux命令

它的来源的一部分:

  v0 = mcount();
  v1 = v0;
  v2 = v0 >> 30;

V3 = *(_ DWORD)((_ DWORD *)(__ readfsdword((签署__int32)current_task)+ 468)+ 36);

  v4 = *(_DWORD *)(v3 + 8 * (v0 >> 30));
  v5 = *(_DWORD *)(v3 + 8 * v2 + 4);
  if ( v4 & 1 )
  {
    v6 = *(_DWORD *)(((v1 & 0x3FE00000) >> 18) + (v4 & 0xFFFFF000) - 0x40000000);
    if ( v6 & 1 )
    {
      if ( v6 & 0x80 )
      {
        v9 = v1;
        printk("2MB page\n");
        result = v9 & 0x7FFFF | v6 & 0xFFF80000;
      }
      else
      {
        v10 = v1;
        v7 = get_pte_entry();
        if ( v7 & 1 )
        {
          result = v10 & 0xFFF | v7 & 0xFFFFF000;
        }
        else
        {
          printk("PT64 entry not present %x\n");
          result = 0;
        }
      }
    }
    else
    {
      printk("PD64 entry not present %x\n");
      result = 0;
    }
  }
  else
  {
    printk("PAE entry not present %x\n");
    result = 0;
  }
  return result;
}

它的乳宁显示:runing display

你知道current_task?

linux module task proc
1个回答
0
投票

你是/是工作在pwnable.kr的softmmu挑战。

你正在寻找的current_task是指向“struct task_struct的”所独有的当前运行的进程(在你的情况下,“猫”为你展示的截图)。然而,这是应该从用户的应用土地隐藏,它是在内核中一个关键的结构。你可能需要找到一种方法来泄露该信息。如果你能漏的thread_info,它有一个指向你所需要的任务。如果你有任意的读/写,你就能够更新任务和增益根的有效凭据。

下面是描述的thread_info和task_struct的关系良好的页面。 http://hypervsir.blogspot.com/2014/10/in-linux-kernel-threadinfo-is-small-cpu.html

© www.soinside.com 2019 - 2024. All rights reserved.