|
[求助]读隐藏进程中的模块绕过IceSword的检测的疑惑
看你的文字看了那么久就是理解不了你想问什么..晕..俺的理解能力有问题 还是给几个说明性的文字你自己看看吧 VAD: 是windows用来描述进程地址空间的底2G中哪些已经被保留,哪些还没有.. 比如我们一个线程访问0x51000000这个用户态地址..如果这个地址是首次被访问到..那系统会遍历VAD..尝试找个描述这个地址的VAD..然后MM管理器会为0x51000000创建一个页表项,如果找到了VAD...就把VAD中相关的信息填到这个页表项中...如果0x51000000没有对应的VAD描述..说明这个地址还没被保留..产生访问错误..否则就是缺页中断.. 我想VAD既然是所有进程共享的文件...你先VAD这句理解有问题吧...首不等于DLL....只是一般情况下那些DLL是可以共享的... |
|
[讨论]菜鸟也谈关于进程保护
路过.... |
|
[求助]学习驱动编写怎么入门
话说驱动比一般的应用程序还简单。。关键是你把编译环境弄好。。接着就可以抄代码了。。很快就上手的 。。。 |
|
[求助][讨论]小弟一事不明,关于Win32,ddk
驱动只是一层纱...没什么神秘的..只是可能入了门...接下来去的东西就看个人的造化了...当然只是SSDT INLINE HOOK倒也不难 玩病毒的话....MFC基本不会用到..那个是用来搞正经的..比如界面啊之类... SDK简单就是API编程 DDK简单就是内核API编程... 个人肤浅理解....楼下的继续啊 |
|
[分享][下载]让所有ssdt(shadow) hook(inline)失效
[QUOTE=NaX;564838]804de972 64ff0538060000 inc dword ptr fs:[638h] 804de979 8bf2 mov esi,edx 804de97b 8b5f0c mov ebx,dword ptr [edi...[/QUOTE] 应该是早的....以前记得在驱网看过,...不过没代码 |
|
[半原创]贴点内核态中创建用户态进程的代码
嘿嘿....好东西自己顶不用不好意思..... |
|
[求助]一个在驱动中递归创建目录的函数
递归的话只是说明存在溢出的风险...不一定说就一定会溢出... |
|
[求助]一个在驱动中递归创建目录的函数
严重同意...否则等着栈溢出吧 |
|
[原创]Windows CE 必备开发工具总结(献给想进入Windows CE底层研发的朋友们)
WIN CE明年才打算学....先顶一下 |
|
[转帖]一个简单反Rootkit工具
很遗憾的....该工具由于在处理上有些问题....导致了一些很XX的bug....不过一般情况下是没问题的..呵呵....最近考试不更新了.. |
|
[求助]这段代码有什么问题吗?
上面写错了..把 ! 去掉.. |
|
[求助]这段代码有什么问题吗?
while(1) { start++; if (!MmIsAddressValid(start)) if (*(PCHAR)start == 0xe8) { KdPrint(("Found : %08X\n", start)); break; } } 还有....不要一直while...如果恶意干扰..你岂不是陷入死循环 |
|
[求助]这段代码有什么问题吗?
The ProbeForRead routine checks that a user-mode buffer actually resides in the user portion of the address space, and is correctly aligned. 哎...用MmIsAddressValid吧.... |
|
[原创]奇虎360第1题 hook WRITE_PORT_UCHAR
嗯....读写扇区走到IN/OUT指令...下面的就是在ox1f0-0x1f7下断点了.. |
|
[求助]关于ShaDow SSDT UnHook 有没有驱动层获取原始地址的例呢?
汗...你不懂我的意思..有这个地址就可以计算读磁盘文件获取原始地址了.... |
|
[求助]关于ShaDow SSDT UnHook 有没有驱动层获取原始地址的例呢?
原理是一样的...只是多个找KeServiceDescriptorTableShadow 摘了段yas kit 驱动的代码 /*-----------------------------------------------------------*/ //目前XP和2K3都可以,但不排除其他版本也是这样 //NumberOfservice :用于返回服务数目 //返回值: ShadowTableBaseAddress /*------------------------------------------------------------*/ ULONG GetShadowTableBaseAddress(IN OUT ULONG* NumberOfservice) { /* lkd> u nt!KeAddSystemServiceTable+0x18: 805a10a2 7551 jne nt!KeAddSystemServiceTable+0x6b (805a10f5) 805a10a4 8d88a0c65580 lea ecx,nt!KeServiceDescriptorTableShadow (8055c6a0)[eax] ---->>> */ BYTE* FunctionAddress; BYTE* CurrentAddress; ULONG tempAddr,TableShadowAddress = 0; FunctionAddress=(BYTE*)KeAddSystemServiceTable; for(CurrentAddress=FunctionAddress;CurrentAddress<FunctionAddress+0x100; CurrentAddress++) { if(MmIsAddressValid((BYTE*)CurrentAddress)) if(*(BYTE*)CurrentAddress==0x8d&&*(BYTE*)(CurrentAddress+1)==0x88) { tempAddr = *(ULONG*)(CurrentAddress+2); TableShadowAddress = ((ULONG*)tempAddr)[4]; *NumberOfservice = ((ULONG*)tempAddr)[6]; break; } } return TableShadowAddress; } |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值