|
[原创]对过去6年的人和事,真心说声对不起
再送一个代码,留在那可惜了 vc 6 使用的 wdm / wdf 1.1 驱动工程向导源码 下载: WdfWizard.zip 当然最好使用我打包好的 VC6_ddk2k_wdf1.1 的安装包 |
|
[原创]对过去6年的人和事,真心说声对不起
将近段逆向出来的完整 win7 tpm.sys 驱动代码放出来大家学习 做了修正了,2k/xp /2003 /vista 的兼容处理 经过完整 xp / win7 测试. win2k 的驱动使用这个vc6 直接编译 http://pan.baidu.com/s/1nt1OgIX 离别虽然不舍,但还是得继续吧 下载 : tpm.sys.zip 麻烦版主将此帐号注销,谢谢! |
|
[原创]对过去6年的人和事,真心说声对不起
不管怎样,我得承认是我有错在先! |
|
[推荐]天气热了,不要随便下河。今天死人一个,很惨
螃蟹怎么吃人?你一捏就死了! |
|
[原创]对过去6年的人和事,真心说声对不起
实力不见有,总不少别有有心的人倒是真的! |
|
[求助]如何在驱动层防止源代码拷贝
方案1 : windows nt 系列一直存在一个注册表键值可以实现 注册表路径: HKLM\System\CurrentControlSet\Control\StorageDevicePolicies 键名: WriteProtect 类型 : DWORD 值: 0x00000001 所有USB存储设备只读 值: 0x0 可读写 方案2: Storage Lower Filter Driver 用于过滤磁盘的扇区读写,机器狗时代的拦截产物 |
|
[求助]临时会员转正
진자 추가요 |
|
[分享]从 fs_rec.sys 聊聊 windows 如何加载文件系统
BOOLEAN FsRecReadBlock(PDEVICE_OBJECT DeviceObject,PLARGE_INTEGER StartingOffset,ULONG LengthToRead,ULONG SectorSize,OUT PUCHAR* BlockData,OUT PBOOLEAN BlockReaded) { NTSTATUS Status; IO_STATUS_BLOCK IoStatusBlock; KEVENT Event; PIRP Irp; ULONG SectorAlignLength = 0; PAGED_CODE(); if(BlockReaded) BlockReaded[0] = FALSE; KeInitializeEvent(&Event,SynchronizationEvent,FALSE); if ( LengthToRead > SectorSize ) SectorAlignLength = SectorSize * (LengthToRead + SectorSize - 1) / SectorSize; else SectorAlignLength = SectorSize; if(!BlockData) { BlockData[0] = ExAllocatePoolWithTag(PagedPool,(SectorAlignLength + PAGE_SIZE - 1) & 0xFFFFF000,POOL_TAG); } if(BlockData[0]) { Irp = IoBuildSynchronousFsdRequest(IRP_MJ_READ, DeviceObject, BlockData[0], SectorAlignLength, StartingOffset, &Event, &IoStatusBlock); if(Irp) { (IoGetNextIrpStackLocation(Irp))->Flags |= IRP_PAGING_IO; Status = IoCallDriver(DeviceObject,Irp); if(Status == STATUS_PENDING) { KeWaitForSingleObject(&Event,Executive,KernelMode,FALSE,NULL); Status = IoStatusBlock.Status; } if(!NT_SUCCESS(Status)) { if(BlockReaded) BlockReaded[0] = TRUE; return FALSE; } return TRUE; } } return FALSE; } BOOLEAN FsRecGetDeviceSectorSize(PDEVICE_OBJECT DeviceObject,PULONG SectorSize,OUT NTSTATUS* OutStatus) { NTSTATUS Status; KEVENT Event; IO_STATUS_BLOCK IoStatus; PIRP Irp; LARGE_INTEGER DiskLength; PIO_STACK_LOCATION IrpSp; ULONG IoCtlCode; DISK_GEOMETRY DiskGeometry; PAGED_CODE(); KeInitializeEvent(&Event,SynchronizationEvent,FALSE); Irp = IoBuildDeviceIoControlRequest(IOCTL_DISK_GET_LENGTH_INFO, DeviceObject, NULL, 0, (PVOID)&DiskLength, sizeof(LARGE_INTEGER), FALSE, &Event, &IoStatus); if(Irp) { (IoGetNextIrpStackLocation(Irp))->Flags |= IRP_PAGING_IO; // 系统自动释放 Status = IoCallDriver(DeviceObject, Irp); if(Status == STATUS_PENDING) { KeWaitForSingleObject(&Event,Executive,KernelMode,FALSE,NULL); Status = IoStatus.Status; } if(DeviceObject->DeviceType == FILE_DEVICE_CD_ROM) { IoCtlCode = IOCTL_CDROM_GET_DRIVE_GEOMETRY; } else if(DeviceObject->DeviceType == FILE_DEVICE_DISK) { IoCtlCode = IOCTL_DISK_GET_DRIVE_GEOMETRY; } else { if(OutStatus) OutStatus[0] = Status; return FALSE; } KeInitializeEvent(&Event, SynchronizationEvent, FALSE); Irp = IoBuildDeviceIoControlRequest(IoCtlCode, DeviceObject, NULL, 0, &DiskGeometry, sizeof(DISK_GEOMETRY), FALSE, &Event, &IoStatus); if(Irp) { (IoGetNextIrpStackLocation(Irp))->Flags |= IRP_PAGING_IO; // 系统自动释放 Status = IoCallDriver(DeviceObject, Irp); if(Status == STATUS_PENDING) { KeWaitForSingleObject(&Event,Executive,KernelMode,FALSE,NULL); Status = IoStatus.Status; } if(OutStatus) OutStatus[0] = Status; if(NT_SUCCESS(Status) && DiskGeometry.BytesPerSector) { SectorSize[0] = DiskGeometry.BytesPerSector; return TRUE; } } else { if(OutStatus) OutStatus[0] = STATUS_INSUFFICIENT_RESOURCES; return FALSE; } return FALSE; } if(OutStatus) OutStatus[0] = STATUS_INSUFFICIENT_RESOURCES; // 0xC000009A; return FALSE; } 少发了2个函数 |
|
[分享]从 fs_rec.sys 聊聊 windows 如何加载文件系统
有人在找防止 USB 盘放复制的 方案1 : windows nt 系列一直存在一个注册表键值可以实现 注册表路径: HKLM\System\CurrentControlSet\Control\StorageDevicePolicies 键名: WriteProtect 类型 : DWORD 值: 0x00000001 所有USB存储设备只读 值: 0x0 可读写 方案2: Storage Lower Filter Driver 用于过滤磁盘的扇区读写,机器狗时代的拦截产物 |
|
[分享]从 fs_rec.sys 聊聊 windows 如何加载文件系统
这对 扩展 windows 默认支持的文件系统有一定作用 |
|
|
|
[求助]有没有人知道 在USB 过滤驱动中,如何获取过滤到的BULK数据中的MDL数据?
看看 usbstor.sys 中的 IoAllocateIrp 后的流程应该可以 07年的时候写过,我是通过 usbstor.sys 找到的 |
|
USB音频驱动开发疑惑
USB 的通信统一使用 URB 数据包解决 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值