技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 1526|回复: 0
收起左侧

对QQPCHW.sys的分析

[复制链接]

273

主题

451

帖子

4870

积分

用户组: 真·技术宅

UID
2
精华
61
威望
148 点
宅币
3687 个
贡献
131 次
宅之契约
0 份
在线时间
623 小时
注册时间
2014-1-25
发表于 2015-9-2 16:49:17 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
QQPCHW.sys
IoCtlCode:
0x222024
        初始化线程id表
        buffer= 用Rabbit算法加密过得线程id表   sizeof=传入缓冲区大小
       
0x222004
        读取PCI数据                结构体成员含义参见HalGetBusDataByOffset参数
        buffer=                sizeof=0x18
        +00        ULONG BusNumber                <==>   ULONG ret
        +04        BYTE data1
        +08        BYTE data2   data2低3位和data1低5位组成SlotNumber
        +0C        PVOID Offset
        +10        ULONG Length
        +14        PVOID Buffer       

0x222008
        设置PCI数据   结构体成员含义参见HalSetBusDataByOffset参数
        buffer=                sizeof=0x18
        +00        ULONG BusNumber                <==>   ULONG ret
        +04        BYTE data1
        +08        BYTE data2   data2低3位和data1低5位组成SlotNumber
        +0C        PVOID Offset
        +10        ULONG Length
        +14        PVOID Buffer
       
0x22200C
        读取msr寄存器
        buffer=                sizeof=9
        +00        DWORD msrindex  存储读取序号 <==>  LONGLONG 读取到的数据
       
0x222010
        写入msr寄存器
        buffer=                sizeof=0xC
        +0        DWORD msrindex
        +4        LONGLONG value  要写入的值

0x222014
        读取端口
        buffer=         sizeof=9                        READ_PORT_UCHAR/USHORT/ULONG
        +0        BYTE readsize 0:UCHAR/1:USHORT/2:ULONG                <==>        DWORD ret
        +5        PVOID Port
       
        写入端口
        buffer=                sizeof=8                        WRITE_PORT_UCHAR
        +0        PVOID Port        端口号
        +4        UCHAR Value 数据                <==>         DWORD TAG=0x87654321  写入成功标志
       
0x222018
        读取端口
        buffer=                sizeof=8                        READ_PORT_UCHAR
        +0 PUCHAR* Port 端口号                <==>    UCHAR取出的数据
        +4 =>DWORD TAG=0x87654321  写入成功标志
       
0x22201C
        写入端口
        buffer=                sizeof=8                        WRITE_PORT_UCHAR
        +0        PVOID Port        端口号
        +4        UCHAR Value 数据                <==>         DWORD TAG=0x87654321  写入成功标志

0x222020
        写入端口
        buffer=         sizeof=9                        READ_PORT_UCHAR/USHORT/ULONG
        +0        BYTE writesize 0:UCHAR/1:USHORT/2:ULONG                <==>        DWORD ret
        +5        PVOID Port
       
0x222028
        改写PCI conf1设备空间的一个数据??实在找不到资料了!不知道在干啥
            WRITE_PORT_ULONG((PULONG)0xCF8, 0x8000F8F0);
    v13 = READ_PORT_ULONG((PULONG)0xCFC);
    Buffer = v13;
    if ( v13 == -1
      || (Buffer = (v13 & 0xFFFFC000) + 0x3418,
          PhysicalAddress.LowPart = Buffer,
          (v14 = (ULONG *)MmMapIoSpace((PHYSICAL_ADDRESS)Buffer, 4u, 0)) == 0)
      || (READ_REGISTER_BUFFER_ULONG(v14, &Buffer, 1u),
          Buffer &= 0xFFFFFFF7,
          MmUnmapIoSpace(v14, 4u),
          (v15 = (ULONG *)MmMapIoSpace((PHYSICAL_ADDRESS)*(unsigned int *)&PhysicalAddress, 4u, 0)) == 0) )
    {
      v2 = 0xC0000001;
      goto LABEL_4;
    }
    WRITE_REGISTER_BUFFER_ULONG(v15, &Buffer, 1u);
    MmUnmapIoSpace(v15, 4u);

0x222040
        创建物理地址内存映射 \\Device\\PhysicalMemory
        buffer=
        +00 HANDLE hSection
        +04
        +08        PVOID BaseAddress  内存映射地址

0x222044
        取消物理地址内存映射
        buffer=
        +00 HANDLE hSection
        +04        PHYSICAL_ADDRESS BusAddress 物理地址
        +0C        PVOID BaseAddress 对齐内存映射地址
回复

使用道具 举报

本版积分规则

QQ|申请友链||Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图  

GMT+8, 2020-7-13 11:42 , Processed in 0.087607 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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