|
[原创]QQ电脑管家中的TsFltMgr Hook框架分析
3个nop是不明白的, jmp需要5个字节,本来下面6个字节的指令改成一个nop + 一个jmp是足够的。 为什么要把前面两个也nop掉呢, 假如,前面360已经hook了, 那么加上两个nop后会发现连续13个指令被修改。 很多AntiRootkit软件(如xuetr)检测内联钩子时都是对比连续指令的。 这样检测结果表面上看只会发现是360的钩子。 |
|
[讨论]蛋疼的微软
DbgView->选项->强制回车别选。。。。 |
|
[讨论]蛋疼的微软
[QUOTE=游戏蛀虫;1025713]情况1 是平常的 KdPrint(("11111")); 情况2 是今天想打印二进制 KdPrint(("%02x",szchar[i])):[/QUOTE] 你用DbgView么,把强制回车去掉就好了。。。 |
|
[求助]怎样才能保护自己的ring3hook不被别人轻易恢复
跟用Ring0还是Ring3是不搭噶的 你hook了-->修改了内存-->XT等读取了内存进行对比,发现了hook-->写内存恢复了(Ring0&Ring3都可以的) 你用线程不停重写hook-->od等设置内存写断点找到写内存处-->处理掉你的线程。。。 你再XXX-->别人也YYY 木有办法是hook了恢复不了滴。。。 |
|
|
|
[求助]Win7下IDT hook求助
pMdlForIDT = MmCreateMdl(NULL, &pIdtEntry[ulIndex], sizeof(IDTENTRY)); MmBuildMdlForNonPagedPool(pMdlForIDT); pMdlForIDT->MdlFlags = pMdlForIDT->MdlFlags | MDL_MAPPED_TO_SYSTEM_VA; pTempIdt = MmGetSystemAddressForMdlSafe(pMdlForIDT, NormalPagePriority); 在调用MmGetSystemAddressForMdlSafe前先MmProbeAndLockPages成IoWrite |
|
[解决]Exe程序在设置全局键盘钩子的时候,如何传递变量给DLL。
SECTION 大写 |
|
|
|
[求助]MJ_QUERY_INFORMATION为何始终用的是SystemBuffer
1,DO_BUFFERED_IO (1)Read irp->AssociatedIrp.SystemBuffer = ExAllocatePoolWithQuota... irp->UserBuffer = Buffer //保存地址用于复制SystemBuffer给Ring3 (2)Write irp->AssociatedIrp.SystemBuffer = ExAllocatePoolWithQuota... RtlCopyMemory( rp->AssociatedIrp.SystemBuffer, Buffer, Length) 2,DO_DIRECTOR_IO (1)Read/Write IoAllocateMdl( Buffer, Length, FALSE, TRUE, irp ); 3,Neither (1)Read/Write irp->UserBuffer = Buffer //////////////////////////////////////////////////////// DeviceIoControl METHOD_BUFFERED irp->AssociatedIrp.SystemBuffer = ExAllocatePoolWithQuota(poolType,MAX( InputBufferLength,OutputBufferLength)) RtlCopyMemory( rp->AssociatedIrp.SystemBuffer, InputBuffer, InputBufferLength) irp->UserBuffer = OutputBuffer; METHOD_IO/OUT_DIRECTORY irp->AssociatedIrp.SystemBuffer = ExAllocatePoolWithQuota(poolType, InputBufferLength ); RtlCopyMemory( irp->AssociatedIrp.SystemBuffer,InputBuffer, InputBufferLength ); IoAllocateMdl( OutputBuffer,OutputBufferLength,FALSE,TRUE,irp ); METHOD_NEITHER irp->UserBuffer = OutputBuffer; irpSp->Parameters.DeviceIoControl.Type3InputBuffer = InputBuffer; QueryInformationFile irp->UserBuffer = FileInformation; irp->AssociatedIrp.SystemBuffer = ExAllocatePoolWithQuota.. irpSp->Parameters.QueryFile.Length = Length; irpSp->Parameters.QueryFile.FileInformationClass = FileInformationClass; 设置irp->Flags |= IRP_BUFFERED_IO...! SetInformationFile irp->AssociatedIrp.SystemBuffer = ExAllocatePoolWithQuota.. rpSp->Parameters.SetFile.Length = Length; irpSp->Parameters.SetFile.FileInformationClass = FileInformationClass; 设置irp->Flags |= IRP_BUFFERED_IO...! /////////////////////////////////////////////////////////////////// 1,当需要从Ring3传送数据到Ring0时,(BUFFERED/DIRECT)都通过SystemBuffer缓冲数据。 2,当需要从Ring0保存数据都Ring3时,(BUFFERED)都需要保存Ring3地址:irp-> UserBuffer = Ring3Buffer。 3,Query/SetInformationFile 都是BUFFERED_IO |
|
[讨论]崩溃。。。EPROCESS+EC问题!!!
ba w4 EPROCESS+0xEC |
|
[求助]恢复inline的一个问题!
重定位没有? |
|
[求助]NtWriteVirtualMemory 在SSDT 中出现,但 ntoskrnl.exe 并没导出 应该怎么实现ssdthook
兼容性是完全没问题的。 在Ring0找ntdll查询SSDT序号没有在Ring3实现简单,能不用驱动的就尽量别用驱动。 事实上就那几个系统,根据版本硬编码一下也可以的。 |
|
|
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值