|
|
[求助]求个ring0 直接恢复ssdt的代码
你棵把ring 3获取函数地址直接在ring 0里写 |
|
|
[求助]_KPROCESS
lkd> dt _KPROCESS +0x000 Header : _DISPATCHER_HEADER +0x010 ProfileListHead : _LIST_ENTRY +0x018 DirectoryTableBase : [2] Uint4B +0x020 LdtDescriptor : _KGDTENTRY +0x028 Int21Descriptor : _KIDTENTRY +0x030 IopmOffset : Uint2B +0x032 Iopl : UChar +0x033 Unused : UChar +0x034 ActiveProcessors : Uint4B +0x038 KernelTime : Uint4B +0x03c UserTime : Uint4B +0x040 ReadyListHead : _LIST_ENTRY +0x048 SwapListEntry : _SINGLE_LIST_ENTRY +0x04c VdmTrapcHandler : Ptr32 Void +0x050 ThreadListHead : _LIST_ENTRY +0x058 ProcessLock : Uint4B +0x05c Affinity : Uint4B +0x060 StackCount : Uint2B +0x062 BasePriority : Char +0x063 ThreadQuantum : Char +0x064 AutoAlignment : UChar +0x065 State : UChar +0x066 ThreadSeed : UChar +0x067 DisableBoost : UChar +0x068 PowerState : UChar +0x069 DisableQuantum : UChar +0x06a IdealNode : UChar +0x06b Flags : _KEXECUTE_OPTIONS +0x06b ExecuteOptions : UChar 你也可以在DDK中搜索 |
|
|
[原创]简单inline hook ObReferenceObjectByHandle保护进程和屏蔽文件执行
sysnap为什么不能用Process=PsGetCurrentProcess();代替呢 |
|
|
|
|
|
[原创]简单inline hook ObReferenceObjectByHandle保护进程和屏蔽文件执行
突然见发现为什么ObReferenceObjectByHandle(Handle,DesiredAccess,ObjectType,AccessMode,&Process,NULL); 不能用Process=PsGetCurrentProcess();代替呢 |
|
|
|
|
|
|
|
|
[原创]Delphi研究之驱动开发篇(六)--利用Section与用户模式程序通讯
这都能让你写出来,学习 |
|
|
[求助]求一个简单的与驱动通信的C代码。
仔细看看专题里有 |
|
|
|
|
|
|
|
|
|
|
|
[原创]inline hook未导出函数PspTerminateProcess
Sysnap你好又来麻烦你了 你的文章非常好,跟那你学的文章已经基本学明白了。 在这篇文章里我有个小问题,想请教下 在Unload中 _asm { CLI MOV eax, CR0 AND eax, NOT 10000H MOV CR0, eax pushad mov edi, PspTerminateProcess mov eax, dword ptr Code[0] mov [edi], eax mov al, byte ptr Code[4] mov [edi+4], al popad MOV eax, CR0 OR eax, 10000H MOV CR0, eax STI } 你是怎么把数组Code[1],Code[2],Code[3]送给PspTerminateProcess的,我就看懂了 你把code[0],code[4]送给了eax和edi+4呀。 虽然可以用RtlCopyMemory (PspTerminateProcess,Code,5);代替 由于我的汇编上不了桌,只好来请教. 另附,程序测试成功,我在用冰刃Advanced scan是扫描出来,但不一会就蓝屏了. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[原创]导出表钩子------EAT HOOK
Sysnap正如你所说的 BaseAddress= GetModlueBaseAdress("ntoskrnl.exe");确实可以得到基址, ULONG g_OriginalPsGetCurrentProcessId;是保存原函数的的地址 MOV CR0, EAX } DbgPrint("PsGetCurrentProcessId is:%x\n",(PUCHAR)hMod + pAddressOfFunctions[index]); pAddressOfFunctions[index] = ( PCHAR )MyPsGetCurrentProcessId - BaseAddress; DbgPrint("g_OriginalPsGetCurrentProcessId is:%x\n",g_OriginalPsGetCurrentProcessId); g_OriginalPsGetCurrentProcessId= (ULONG)hMod + pAddressOfFunctions[index] ; _asm { MOV EAX, CR0 g_OriginalPsGetCurrentProcessId= (ULONG)hMod + pAddressOfFunctions[index] ;是不是应该放在pAddressOfFunctions[index] = ( PCHAR )MyPsGetCurrentProcessId - BaseAddress;前面啊,不然g_OriginalPsGetCurrentProcessId得到的是( PCHAR )MyPsGetCurrentProcessId - BaseAddress; Byw Sysnap你有没有什么QQ的啊~~给个号呗,研究下问题 |
|
|
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
勋章
兑换勋章
证书
证书查询 >
能力值

