|
在tdi层截获socket操作
注意处理下event |
|
[原创]借贵宝地,360安全卫士诚聘病毒分析/windows c++开发(持续招聘中...)
支持....可惜没毕业..技术也还不行... |
|
[求助]内核层InlineHook的附加问题:如何确保某页面一定在物理内存中?
如果在启动过程中HOOK比较安全一点.....现在不敢用inline hook...虽然测试的时候没问题..但理论上还是有问题的...还是等大牛帮你吧 |
|
[讨论]内核中加载驱动
试试EngLoadImage EngFindImageProcAddress 看看.. |
|
[原创]劫持内核句柄
1主要是System进程有一些句柄是固定的...还有其他进程一些也是固定的,比如什么同步用的XX... 2我们自己打开一个对象的句柄,不关闭它,把对像重定向到另外一个对象,这样我们对该句柄的操作都是操作了另外一个对象,,, |
|
[原创]劫持内核句柄
呵呵...再想想有很多东西,,,,....实际上可以做XXX重定向... |
|
[原创]劫持内核句柄
俺那个内核调试器很久没弄了....面对Syser和Windbg强大的功能// 目前实现了一个内核调试器应有的功能...显视,键盘,鼠标驱动....还有一些简单的命令....感觉没弄下去的必要.... |
|
[原创]劫持内核句柄
事实上不仅可以内核态的句柄重定向...用户态的也可以....这样我们可以读写内存了...当然还有很多事情可以做... |
|
[求助]其实这样理解虚拟地址和物理地址更简单
下保护模式的内容..这些都是基础的东西... .. NT中....物理地址 可以分为: RAM的地址和硬件寄存器的地址... 页框号 = 物理地址>> PAGE_SHIFT 如果 页框号 > MmHighestPossiblePhysicalPage 将表明这个地址是硬件寄存器的.. 否则会以PageFrameIndex为INDEX检测MiPfnBitMap 的位设..如果位设为1..则表示该物理地址是RAM的物理地址,,,, 帖上一段.....硬件REG做为物理地址的... //IO APIC使用重定向机制,我们不可以直接操作它的寄存器的,我们应该通过映射来完成 //IOREGSEL and IOWIN registers 位于IO APIC's base address的0x00和0x10偏移处. //IO APIC's base address在NT中被映射到物理地址 0XFEC00000 //所以 IOREGSEL and IOWIN registers 的物理地址分别是 0XFEC00000,0XFEC00010 //访问他们的话只要用MmMapIoSpace()就可以了.. //如果系统不支持APIC...vector = 0x30+IRQ; Sysnap 2009.5.22 BOOLEAN IsIoapicEnable() { BOOLEAN bis = FALSE; __asm { mov eax,1 cpuid and edx, 0x00000200 cmp edx,0 jne __A mov bis,0 __A: mov ecx,0x1b rdmsr and eax,0x00000800 cmp eax,0 jne __B mov bis,0 jmp __C __B: mov bis,1 __C: } return bis; } DWORD IRQtoVector(DWORD dwIRQ) { PULONG lpIoapicMapBase = NULL; DWORD dwVector = -1; PHYSICAL_ADDRESS IoapicBase; // i/o apic mapped pointer if( IsIoapicEnable() == FALSE) { dwVector = 0x30+dwIRQ; return dwVector; } IoapicBase = RtlConvertLongToLargeInteger(0xFEC00000); lpIoapicMapBase = (PULONG)MmMapIoSpace(IoapicBase, 0xFF, MmNonCached); if(lpIoapicMapBase == NULL || dwIRQ >23) { // return -1; } // 把0x10 + 2 * dwIRQ 写到 IOREGSEL 寄存器 lpIoapicMapBase[0] = 0x10 + 2 * dwIRQ; // 0x10 + 2 * IRQ, Keyboard's irq is 1 // 接着可以读 IOWIN 寄存器 dwVector = lpIoapicMapBase[4] & 0xFF; MmUnmapIoSpace(lpIoapicMapBase, 0xff); return dwVector; } DbgPrint("--0x%x",IRQtoVector(12)); |
|
[原创]逆向Sysnap的注册表保护驱动[附源码]
good ....俺那个驱动花了一天.抄了点代码...BUG多多就放上来了.... |
|
[求助]十万火急,为什么我的程序堆栈大小只有3000H?不是默认是1M吗?
晕..自动扩展的...当不够时WINDOWS会调整大小...当然你编译的时候还可以自己设置大小...但一般不会用到那么大吧..除非你递归或者不合理的局部变量等等... |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值