|
[原创]R3 下常用Hook技术
方案确实可行,但还是会修改一字节,过不了crc32检测,把还不如直接硬件断点 |
|
Windows10 x64 ShadowSSDT遍历函数名
Interupt是个好人,这种方式应该可以直接兼容WIN11 |
|
R5G6B5 怎样转 A1R5G5B5
我已经搞定了,A1R5G5B5能透明 |
|
[求助] 二进制位移问题
结贴,我自己搞定了 |
|
R5G6B5 怎样转 A1R5G5B5
mb_foyotena 没有透明通道,你转出来的也不是透明的啊,自己ps成透明的先我在想,在解码图片的时候,就把他转换过来,比如在内存中的565颜色值是 48400,那么二进制值 10111 101000 10000 其中 10111 红色 101000 绿色 10000 蓝色,如何转成 A1R5G5B5 的格式?也就是 |
|
|
|
好久没来看雪了,最近遇到个问题想求助各位大神
看来只能这样了,我就想着有没有简单点的办法 |
|
[求助]windbg寻址过程的问题
读物理内存? |
|
[求助]内核重载相关问题
64位下意义不大 |
|
[求助]驱动写入虚拟内存蓝屏
把KeUnstackDetachProcess放到__except里面,不然出现异常就不会再执行KeUnstackDetachProcess,就会蓝屏
KeStackAttachProcess 和
KeUnstackDetachProcess 是成对使用的,使用了
KeStackAttachProcess 就必须用
KeUnstackDetachProcess ,不然肯定蓝屏 你使用了
__try就要考虑到出现异常后的事情。 if (!NT_SUCCESS(PsLookupProcessByProcessId(PID, &Process))) { DPRINT("[MuQ]AttachFail \n"); break; } DPRINT("Tring to attach the process \n"); KeStackAttachProcess(Process, &pKs); if(MmIsAddressValid(rStruct->TargetAddress)) { DPRINT("Allocating MDL \n"); Mysleep(1500); pMdl = IoAllocateMdl(rStruct->TargetAddress, rStruct->WriteSize, FALSE, FALSE, NULL); if(pMdl) { DPRINT("MmProbeAndLockPages \n"); Mysleep(1500); MmProbeAndLockPages(pMdl, KernelMode, IoReadAccess); DPRINT("Mapping MDL \n"); PVOID Mapping = MmMapLockedPagesSpecifyCache(pMdl, KernelMode, MmNonCached, NULL, FALSE, NormalPagePriority); if(MmIsAddressValid(Mapping)) { DPRINT(" MDL Map Success: %X \n", Mapping); Mysleep(1500); MmProtectMdlSystemAddress(pMdl, PAGE_READWRITE); DPRINT("Trying to Copy Memory \n"); Mysleep(1500); __try { memcpy(Mapping,rStruct->WriteBuffer,rStruct->WriteSize); } __except(EXCEPTION_EXECUTE_HANDLER) {
KeUnstackDetachProcess(&pKs);
break; } } else { DPRINT("Address Not Valid 1\n"); } MmUnmapLockedPages(Mapping, pMdl); IoFreeMdl(pMdl); } else { DPRINT("MDL Allocate Failed \n"); } } else { DPRINT("Address Not Valid 0\n"); } KeUnstackDetachProcess(&pKs); ObDereferenceObject(Process); break; }
最后于 2018-12-14 18:23
被老坛酸菜TM编辑
,原因:
|
|
[讨论]win10教育版禁止加载驱动程序
我遇到过,我上次是把驱动重新编译后就能加载了 |
|
64位驱动保护进程和窗口
VT HOOK NtReadVirtualMemory 、MyNtUserGetForegroundWindow、等API,并判断是否游戏进程调用 |
|
[求助] MMapDriver方式加载驱动导致 __try __expect无效
StriveXjun 方法一:动态找 RtlInsertInvertedFunctionTable 调用,插入当前驱动模块基址和大小,WIN7 没问题,WIN10 PG蓝屏 方法二:动态找 MiProcessLoader ...RtlInsertInvertedFunctionTableWin7 pfnRtlInsertInvertedFunctionTable = NULL; do { if (!MmIsAddressValid((PVOID)pAddress)) break; pAddress = (PUCHAR)GetUndocumentFunctionAddressEx(NULL, pAddress, code, 5, 0x200, 0x90, 4, FALSE); if (!MmIsAddressValid(pAddress)) break; PsTable = GetLeaPoint(pAddress); if (!MmIsAddressValid(PsTable)) break; pfnRtlInsertInvertedFunctionTable = (RtlInsertInvertedFunctionTableWin7)GetCallAddress(pAddress + 7); if (!MmIsAddressValid((PVOID)pfnRtlInsertInvertedFunctionTable)) break; status = pfnRtlInsertInvertedFunctionTable(PsTable, pDriverInfo->ImageBase, pDriverInfo->ImageSize); } while (FALSE); 似乎没有作用 |
|
[求助] MMapDriver方式加载驱动导致 __try __expect无效
EvilTobe 6楼说的对,x86异常靠栈,x64靠表 参考RtlInsertInvertedFunctionTable谢 |
|
[求助] MMapDriver方式加载驱动导致 __try __expect无效
StriveXjun 方法一:动态找 RtlInsertInvertedFunctionTable 调用,插入当前驱动模块基址和大小,WIN7 没问题,WIN10 PG蓝屏 方法二:动态找 MiProcessLoader ...非常感谢,唉 |