我正在分析ida pro上的linux moudule。但我不知道源代碼中的current_task。這moudule是PROC程序並運行在您設置什麼是linux i686上的current_task?
它的來源的一部分虛擬地址linux命令:
v0 = mcount();
v1 = v0;
v2 = v0 >> 30;
V3 = *(_ DWORD )((_DWORD *)(__ readfsdword ((signed __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?
查看'./ arch/x86/kernel/cpu/common.c' –