首页
社区
课程
招聘
[旧帖] [求助]HOOK ZwReadFile和ZwWritefile 0.00雪花
发表于: 2011-2-16 15:19 1172

[旧帖] [求助]HOOK ZwReadFile和ZwWritefile 0.00雪花

2011-2-16 15:19
1172
诸位大侠请帮帮小弟

现在正在做毕业设计,是关于透明加密方面的。想做得简单一点,直接HOOK SSDT ZwReadFile和ZwWritefile。 hook两个函数都成功了,也成功截获了要读写的数据,加密解密也没有问题。看似都没问题了,但是有一个致命的Bug,一复制指定后缀的文件就马上蓝屏,想了很多办法,还是没解决只好求救了,请大侠能帮帮我这个初学者。。。临表涕零,不胜感激。。。

NTSTATUS MyZwWriteFile(
IN HANDLE FileHandle,
IN HANDLE Event OPTIONAL,
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
IN PVOID ApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN PVOID Buffer,
IN ULONG Length,
IN PLARGE_INTEGER ByteOffset OPTIONAL,
IN PULONG Key OPTIONAL
)
{
// PVOID Buffer2;
CHAR GetFullName[500];
ULONG i;
NTSTATUS status;
unsigned char *p,*buf;

ZWWRITEFILE OldZwWriteFile = (ZWWRITEFILE)OldServiceAddressTable[SERVICE_ID(ZwWriteFile)];

RtlZeroMemory(GetFullName, 500);
status = GetFullNameFromFileHandle(FileHandle,GetFullName);

if (status == STATUS_SUCCESS)
{
buf=ExAllocatePool(NonPagedPool,Length);

memcpy(buf,Buffer,Length);

DbgPrint("strlen(Buffer) : %d",strlen(Buffer));
DbgPrint("Length : %d",Length);

for (i = 0; i < Length; i++)
{
// DbgPrint("%d",buf[i]);
buf[i]^=37; //测试用的加密变换。。见笑了
}

memcpy(Buffer,buf,Length); //此处在做文件保存时没有问题,但是复制文件时就会蓝屏这是什么原因呢?
}
return OldZwWriteFile( //将数据交给原函数写入文件
FileHandle,
Event ,
ApcRoutine ,
ApcContext ,
IoStatusBlock,
Buffer,
Length,
ByteOffset ,
Key
);
}

[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
TrueCrypt拿来改下 就可以天天DOTA了
2011-2-16 18:02
0
雪    币: 34
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
ls的方法好,不过还得烟酒到位,这样叫老师陪你dota都行
2011-2-16 19:09
0
游客
登录 | 注册 方可回帖
返回
//