首页
社区
课程
招聘
[求助][求助]64位内核 遇到 32位结构体
发表于: 2015-3-19 15:29 3867

[求助][求助]64位内核 遇到 32位结构体

2015-3-19 15:29
3867
32位程序中.结构体为
typedef struct _NSI_PARAMS_ENTRY
{
  DWORD             dw_unkown0;
  DWORD             dw_unkown1;
  LPVOID              lp_moduleid;
  DWORD            dw_unkown2;
  DWORD            dw_unkown3;
  DWORD            dw_unkown4;
  NSI_TCP_INFO_ENTRY*     ptcp_entry;
  DWORD            dw_tcp_entry_size;
  DWORD            dw_unkown5;
  DWORD            dw_unkown6;
  NSI_STATUS_ENTRY*        pstatus_entry;
  DWORD            dw_status_entry_size;
  NSI_PROCESS_ENTRY*     pprocess_entry;
  DWORD            dw_process_entry_size;
  DWORD            dw_tcp_numbers;           // + 0x38
}NSI_PARAMS_ENTRY,*PNSI_PARAMS_ENTRY;


但是由 32位程序 传入 64 内核中。 

类似的操作是不对的  eg : 
NtDeviceIoControlFile(.......,....,PVOID OutBuffer)
{

  PNSI_PARAMS_ENTRY pNsi = (PNSI_PARAMS_ENTRY)OutBuffer;

  pNsi->dw_tcp_numbers;      //这样获取的内容是不对的

  *(DWORD*)((DWORD)OutBuffer  + 0x38);  //这样确实可以的

}


  请问这是为什么 ? 是否涉及结构体对齐 ? 该怎么操作  . 谢谢

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 8188
活跃值: (2857)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
2
typedef struct _NSI_PARAMS_ENTRY32
{
  DWORD             dw_unkown0;
  DWORD             dw_unkown1;
  DWORD              lp_moduleid;
  DWORD            dw_unkown2;
  DWORD            dw_unkown3;
  DWORD            dw_unkown4;
   DWORD     ptcp_entry;
  DWORD            dw_tcp_entry_size;
  DWORD            dw_unkown5;
  DWORD            dw_unkown6;
   DWORD         pstatus_entry;
  DWORD            dw_status_entry_size;
   DWORD      pprocess_entry;
  DWORD            dw_process_entry_size;
  DWORD            dw_tcp_numbers;           // + 0x38
}NSI_PARAMS_ENTRY32,*PNSI_PARAMS_ENTRY32;

把所有指针强制转成DWORD即可。因为x64的指针宽度是QWORD


NtDeviceIoControlFile(.......,....,PVOID OutBuffer)
{

PNSI_PARAMS_ENTRY32 pNsi = (PNSI_PARAMS_ENTRY32)OutBuffer;

pNsi->dw_tcp_numbers; //这样获取的内容是不对的



}
2015-3-19 15:58
0
雪    币: 99
活跃值: (110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
原来如此 。谢谢了 !!
2015-3-19 16:10
0
游客
登录 | 注册 方可回帖
返回
//