吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 895|回复: 1
收起左侧

[求助] 小白提问 - 关于EAC逆向问题

[复制链接]
MaximeLionel 发表于 2022-11-4 16:00
请教各位大神,我在用IDA逆向某内核软件的时候,发现下面的函数,很容易看得出下面的信息:

  • 函数功能:获得当前进程IMAGE的内存基地址
  • 实现逻辑:

  • 通过IoGetCurrentProcess获得EPROCESS结构的指针;
  • 与0xFFFFFFFFFFFFF000ui64做与操作获得当前虚拟页面的地址;
  • 使用while循环,通过逐页(减去页大小0x1000)与特征码0x5A4D进行比对,寻找该进程的image基址。

[C++] 纯文本查看 复制代码
__int64 get_currentproc_img_start_va()
{
  _WORD *img_start_va; // rbx
  char v1; // al
  __int64 current_img_start_va2; // rcx

  img_start_va = (_WORD *)((unsigned __int64)IoGetCurrentProcess & 0xFFFFFFFFFFFFF000ui64);
  if ( !Current_Process_Img_Start_va )
  {
    while ( *img_start_va != 0x5A4D )
    {
      img_start_va -= 2048;
      if ( !(unsigned __int8)MmIsAddressValid(img_start_va) )
        return Current_Process_Img_Start_va;
    }
    v1 = get_img_nt_hdr_va((unsigned __int64)img_start_va, 0x1000ui64, 0i64, 0i64);
    current_img_start_va2 = Current_Process_Img_Start_va;
    if ( v1 )
      current_img_start_va2 = (__int64)img_start_va;
    Current_Process_Img_Start_va = current_img_start_va2;
  }
  return Current_Process_Img_Start_va;
}


我的问题是:
我尝试测试这个函数的时候,根本无法找到目标基地址,用Windbg研究了下,发现while ( *img_start_va != 0x5A4D )无法实现,经常在某个页面的时候MmIsAddressValid就返回0了。
所以请教各位大佬,这个是什么原因导致的呢?是否可以规避?有什么其他方法可以获得所在内核进程的基地址吗?

非常感谢!欢迎讨论!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| MaximeLionel 发表于 2022-11-5 10:29
我好像找到原因了:
Once we have an address somewhere in the kernel, we can scan backwards one page (0x1000 bytes) at a time until we get to the PE header of the kernel image. This trick relies on two major assumptions:
    1. PE images are page aligned
    2. The memory space between the leaked address and the base of the kernel is contiguously mapped
We will see later that #2 isn't true on newer versions of Windows.
在新版本的windows系统中,也就是说PE文件加载到内存后并不是连续分布的。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-23 07:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表