首页
社区
课程
招聘
[求助]今天逆向了个过XX驱动保护的辅助驱动文件但是不知道客户端如何调用 大家帮忙看下
发表于: 2011-1-6 14:18 6332

[求助]今天逆向了个过XX驱动保护的辅助驱动文件但是不知道客户端如何调用 大家帮忙看下

2011-1-6 14:18
6332

signed int __stdcall DeviceControlIRP(int a1, PIRP Irp)
{
  int subFileAttributes; // eax@1
  PIRP v3; // ebx@1
  void *v4; // edi@1
  PIO_SECURITY_CONTEXT pIO_SECURITY_CONTEXT; // esi@1
  PIO_STACK_LOCATION pStack; // eax@1
  int v7; // eax@2
  int v8; // eax@3
  signed int v10; // [sp+Ch] [bp-4h]@1
  struct _IO_SECURITY_CONTEXT *pIO_SECURITY_CONTEXT_v11; // [sp+1Ch] [bp+Ch]@1

  v3 = Irp;
  pStack = (PIO_STACK_LOCATION)Irp->Tail.Overlay.CurrentStackLocation;
  pIO_SECURITY_CONTEXT = pStack->Parameters.Create.SecurityContext;
  subFileAttributes = *(_DWORD *)&pStack->Parameters.Create.FileAttributes - 0x222000;
  v4 = Irp->AssociatedIrp.MasterIrp;
  v10 = 0xC0000010u;
  pIO_SECURITY_CONTEXT_v11 = pIO_SECURITY_CONTEXT;
  if ( !subFileAttributes )
    goto LABEL_11;
  v7 = subFileAttributes - 4;
  if ( !v7 )
  {
    *((_DWORD *)v4 + 521) = dispatch_io_device(*(_DWORD *)v4, v4);
    goto LABEL_11;
  }
  v8 = v7 - 4;
  if ( !v8 )
  {
LABEL_11:
    v10 = 0;
    v3->IoStatus.Information = (ULONG)pIO_SECURITY_CONTEXT;
    goto IofCompleteRequesT;
  }
  if ( v8 == 4 )
  {
    if ( (unsigned int)pIO_SECURITY_CONTEXT < 0x18 )
      goto LABEL_6;
    memcpy(v4, "Hello World from Driver", 0x18u);
    pIO_SECURITY_CONTEXT = pIO_SECURITY_CONTEXT_v11;
    v3->IoStatus.Information = 24;
    goto LABEL_11;
  }
  v10 = 0xC000000Du;
LABEL_6:
  v3->IoStatus.Information = 0;
IofCompleteRequesT:
  v3->IoStatus.Status = v10;
  IofCompleteRequest(v3, 0);
  return v10;
}

其实我就想知道用的是什么通信方式 EXE与SYS
符号连接名我已经知道了

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 258
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
BOOL DeviceIoControl(
  HANDLE hDevice,              // handle to device of interest
  DWORD dwIoControlCode,       // control code of operation to perform
  LPVOID lpInBuffer,           // pointer to buffer to supply input data
  DWORD nInBufferSize,         // size, in bytes, of input buffer
  LPVOID lpOutBuffer,          // pointer to buffer to receive output data
  DWORD nOutBufferSize,        // size, in bytes, of output buffer
  LPDWORD lpBytesReturned,     // pointer to variable to receive byte count
  LPOVERLAPPED lpOverlapped    // pointer to structure for asynchronous operation
);
2011-1-6 15:48
0
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你说的是废话 这个谁不知道
关键是调用方式
2011-1-6 19:07
0
雪    币: 1157
活跃值: (847)
能力值: ( LV8,RANK:150 )
在线值:
发帖
回帖
粉丝
4
v4 = Irp->AssociatedIrp.MasterIrp;

memcpy(v4, "Hello World from Driver", 0x18u);
   

这两句还不能说明问题?? Buffer 还是 Direct自己说吧
2011-1-6 22:59
0
雪    币: 230
活跃值: (260)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
80高手连个通讯都搞不定!围观不给力啊!
2011-1-7 01:15
0
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这都什么态度啊?

真怀疑你是否真了解DeviceIoControl

F5一下也叫逆向了个驱动文件
2011-1-7 03:15
0
雪    币: 1157
活跃值: (847)
能力值: ( LV8,RANK:150 )
在线值:
发帖
回帖
粉丝
7
停止 喷人.....
2011-1-7 09:09
0
雪    币: 251
活跃值: (77)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
膜拜楼主。。学习。收藏了。。谢谢。标记一下。。
2011-1-7 21:13
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
膜拜啊 膜拜.
2011-1-19 21:16
0
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
10
晕 F5 也叫逆向
2011-1-20 11:18
0
雪    币: 6092
活跃值: (654)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
11
找个驱动熟悉下(R0-R3都有的)就可以 ,硬件编码定义。
2011-1-20 11:44
0
雪    币: 42
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不是说什么呢,就你着态度会的也不告诉你,什么玩意
2011-1-20 11:48
0
游客
登录 | 注册 方可回帖
返回
//