- 博客(5)
- 资源 (29)
- 收藏
- 关注
原创 SSDT Hook实现内核级的进程保护
SSDT Hook效果图加载驱动并成功Hook NtTerminateProcess函数:当对 指定的进程进行保护后,尝试使用“任务管理器”结束进程的时候,会弹出“拒绝访问”的窗口,说明,我们的目的已经达到:SSDT简介SSDT 的全称是 System Services Descriptor Table,系统服务描述符表。这个表
2013-06-29 17:02:28 8298 4
原创 Ring3转入Ring0跟踪
通过反汇编跟踪一个API函数从Ring3层到Ring0层的具体执行过程,有助于我们加深对相关内核Hook技术的理解。我们可以使用OD打开notepad.exe程序,对CreateFileW下断后,可以发现,有这样一行代码:CALL DWORD PTR DS:[>; ntdll.ZwCreateFile也就是说,CreateFileW(Win32API)实际上是调用了ntdll中的NtC
2013-06-26 16:50:52 3052
原创 NT式驱动加载器
引言设备驱动程序的动态加载主要是由服务控制管理程序(Service Control Manager,SCM)系统组件完成,SCM组件可以提供许多服务,如,启动、停止和控制服务。编写加载驱动程序,主要是操作SCM组件。一般,操作SCM组件的相关API函数有如下几个:SC_HANDLE WINAPI OpenSCManager( __in_opt LPCTSTR lpM
2013-06-25 16:14:45 3066
原创 通过修改CR0寄存器绕过SSDT驱动保护
为了安全起见,Windows XP及其以后的系统将一些重要的内存页设置为只读属性,这样就算有权力访问该表也不能随意对其修改,例如SSDT、IDT等。但这种方法很容易被绕过,我们只要将这些部分修改为可写属性就可以了,不过当我们的事情做完后记得把它们恢复为只读属性,不然会造成一些很难预料到的后果。cr0是系统内的控制寄存器之一。控制寄存器是一些特殊的寄存器,它们可以控制CPU的一些重要特性。
2013-06-18 13:50:52 1576
原创 JMP地址公式推导
以上有个问题:为什么同样的汇编指令JMP 12345678却对应不同的机器码呢?首先,机器码E9表明这是一个近跳转(Near Jmp)这里需要补充下相关知识:JMP分3种:①短跳转(Short Jmp,只能跳转到256字节的范围内),对应机器码:EB②近跳转(Near Jmp,可跳至同一段范围内的地址),对应机器码:E9③远跳转(Far Jmp,可跳至任意地址),对应机器码
2013-06-18 10:13:23 2208
ADO操作数据库(MySql/Access/Oracle/MSSql)强大封装类
2013-08-29
Python网络编程基础-英文版
2012-04-20
改进后的zencart批量上传插件可以支持上传产品细节图
2012-03-29
zencart二次开发之自动查找产品细节图
2012-03-29
深入浅出之Smarty模板引擎工作机制
2011-12-10
Ajax实时验证用户名邮箱等是否已经存在
2011-11-30
ThinkPHP2.0完全开发手册
2011-11-30
XMLDOM对象方法手册.chm
2011-11-29
标准的Ajax交互流程图
2011-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人