找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 6743|回复: 3

[求助] 版主,这个形参与实参是什么关系?

[复制链接]

90

主题

473

回帖

2

精华

钻石会员

积分
3261
发表于 2011-3-26 17:26:45 | 显示全部楼层 |阅读模式
这个函数调用:

stats = MyEnumKernelModule("\\??\\c:\\windows\\system32\\123.sys",&ModuleAddress,&ModuleSize);

实参是:\\??\\c:\\windows\\system32\\123.sys

我主要关心这个实参

但是在被调用函数里,这个参数好像没啥用,下面是被调用的函数:



NTSTATUS MyEnumKernelModule(IN CHAR* str,OUT ULONG *moduleadd,OUT ULONG *modulesie)
{
  NTSTATUS status = STATUS_SUCCESS;
  ULONG   n       = 0;
  ULONG   i       = 0;
  PSYSTEM_MODULE_INFORMATION_ENTRY   module = NULL;
  PVOID   pbuftmp = NULL;
  ANSI_STRING    ModuleName1,ModuleName2;
  

  //利用11号功能枚举内核模块
  status = ZwQuerySystemInformation(11, &n, 0, &n);

  //申请内存
  pbuftmp = ExAllocatePool(NonPagedPool, n);

  //再次执行,将枚举结果放到指定的内存区域
  status = ZwQuerySystemInformation(11, pbuftmp, n, NULL);

  module = (PSYSTEM_MODULE_INFORMATION_ENTRY)((PULONG )pbuftmp + 1 );

  //初始化字符串
  RtlInitAnsiString(&ModuleName1,str);
  //
  n       = *((PULONG)pbuftmp );
  for ( i = 0; i < n; i++ )
  {
    RtlInitAnsiString(&ModuleName2,&module[i].ImageName);
    //DbgPrint("%d\t0x%08X 0x%08X %s\n",module[i].LoadOrderIndex,module[i].Base,module[i].Size,module[i].ImageName);

    if (RtlCompareString(&ModuleName1,&ModuleName2,TRUE) == 0)
    {
      DbgPrint("MyEnumKernelModule:%s:%0X \n",ModuleName2.Buffer,module[i].Base);
      *moduleadd  = module[i].Base;
      *modulesie  = module[i].Size;
      tlgstst = TRUE;
      break;
    }
  }
  ExFreePool(pbuftmp);
  
  return status;
}

90

主题

473

回帖

2

精华

钻石会员

积分
3261
 楼主| 发表于 2011-3-26 17:28:42 | 显示全部楼层
\\??\\c:\\windows\\system32\\123.sys和那个str是不是同一个东西?

为什么传进来后,就没用了呢?
下面函数体根本没有对它操作?

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2011-3-27 18:31:10 | 显示全部楼层
RtlInitAnsiString(&ModuleName1,str);
//
这一句就已经把str的内容填充到了ModuleName1中了.

我是搜索了一下RtlInitAnsiString的作用...
我就是嗷嗷叫的老马了......

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2011-3-27 18:31:46 | 显示全部楼层
我就是嗷嗷叫的老马了......

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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