首页
社区
课程
招聘
[求助]ASM问题
发表于: 2013-1-6 13:40 3405

[求助]ASM问题

2013-1-6 13:40
3405
ULONG CreateMapFileAndReturnBaseAddress(IN PUNICODE_STRING pDriverName)
{

  NTSTATUS ntstatus;
  HANDLE hFile = NULL;
//  HANDLE hSection = NULL ;
  OBJECT_ATTRIBUTES  object_attributes;
  IO_STATUS_BLOCK io_status = {0};
  PVOID baseaddress = NULL;
  SIZE_T size = 0;
  //模块基址
  PVOID ModuleAddress = NULL;
   
  InitializeObjectAttributes(
    &object_attributes,
    pDriverName,
    OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
    NULL,
    NULL);
  //打开文件
  ntstatus = ZwCreateFile(
    &hFile,
    FILE_EXECUTE | SYNCHRONIZE,
    &object_attributes,
    &io_status,
    NULL,
    FILE_ATTRIBUTE_NORMAL,
    FILE_SHARE_READ,
    FILE_OPEN,
    FILE_NON_DIRECTORY_FILE |
    FILE_RANDOM_ACCESS |
    FILE_SYNCHRONOUS_IO_NONALERT,
    NULL,
    0);
  if( !NT_SUCCESS( ntstatus ))
  {
    KdPrint(("[GetFunctionAddress] error0\n"));
    KdPrint(("[GetFunctionAddress] ntstatus = 0x%x\n", ntstatus));
    return 0;
  }
  //创建区段
  InitializeObjectAttributes(
    &object_attributes,
    NULL,
    OBJ_CASE_INSENSITIVE|OBJ_KERNEL_HANDLE,
    NULL,
        NULL);
  
  ntstatus = ZwCreateSection(
    &hSection,
    SECTION_ALL_ACCESS,
    &object_attributes,
    0,
    PAGE_EXECUTE,
    SEC_IMAGE,
    hFile);
  if( !NT_SUCCESS( ntstatus ))
  {
    KdPrint(("[GetFunctionAddress] error1\n"));
    KdPrint(("[GetFunctionAddress] ntstatus = 0x%x\n", ntstatus));
    return 0;
  }
  //映射区段到进程虚拟空间
  ntstatus = ZwMapViewOfSection(
    hSection,
    NtCurrentProcess(),  //ntddk.h定义的宏用来获取当前进程句柄
    &baseaddress,
    0,
    1000,
    0,
    &size,
    (SECTION_INHERIT)1,
    MEM_TOP_DOWN,
    PAGE_READWRITE);
  if( !NT_SUCCESS( ntstatus ))
  {
   
    return 0;
  }
  //得到模块基址

  ZwClose(hFile);

  DbgPrint("baseadress:%x\n",baseaddress);

  return baseaddress;
}   
想转化为asm
.code

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 579
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
编译完用IDA打开,就是ASM了。
2013-1-6 14:06
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
好聪明~~~~~~~~~~~~~~~
2013-1-6 17:24
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
一段模块文件映射的代码而已,LZ想表达什么?
2013-1-6 17:40
0
游客
登录 | 注册 方可回帖
返回
//