- 博客(11)
- 资源 (40)
- 收藏
- 关注
原创 驱动程序安装之设备协安装器
年前想把一个功能驱动和过滤驱动传到wu上,但是因为过滤驱动和第三方厂商驱动的hardwareid一样,直接传到wu上后用户一旦更新会有问题。一个同事提到一个解决方案:把过滤驱动的hardwareid改成一个无关紧要的id,然后为功能驱动的inf文件附加一个coinstaller,把他们一起传到wu上。当用户更新功能驱动时,通过coinstaller运行某个程序加载过滤驱动。 这样说可能还
2017-01-29 22:23:02 1738
原创 windbg下看系统非分页内存
这篇文章实在是闲的无聊才写的,因为快过年了...文章基于xpsp3 先看看和非分页内存相关的全局变量,也好有个大局观:kd> x nt!MmNonPaged*805517d8 nt!MmNonPagedPoolEnd = 8055af84 nt!MmNonPagedPoolEnd0 = 8055af80 nt!MmNonPa
2017-01-22 14:20:49 2546 1
转载 Windows下利用WinDBG、OllyDBG进行源码级调试
一般应用程序编译后会创建exe/dll/sys(可执行文件)、pdb(程序数据库)、map(编译信息)等文件,而源码调试需要可执行文件、程序数据库文件、还有源代码文件。(由于符号信息已经写入到程序数据库文件里,如果提到符号文件,一般都是指程序数据库文件) 我们知道,pdb文件里记录着调试程序所需的所有信息,调试器进行源码调试时,是先通过pdb文件找到对应符号的源文件所在位置,并定
2017-01-19 23:26:23 3840
原创 <Oday安全 11.6利用加载模块之外的地址绕过SafeSEH>一节注记---jmp [ebp+N] (下)
接上回,还剩几条跳转的指令还没分析到,这些指令将在本篇中完成。 先来看看call/jmp [ebp-0x4]这条指令。这是在当前函数_except_handler4栈的局部变量,因此需要查看反汇编代码:0:000> uf ntdll!ExecuteHandler2ntdll!ExecuteHandler2:7c923282 55 push ebp
2017-01-12 23:41:28 1185
原创 <Oday安全 11.6利用加载模块之外的地址绕过SafeSEH>一节注记---jmp [ebp+N] (上)
看到这一章我又抓狂了:作者提及从进程空间类型为Map的映射文件中寻找如下指令地址:call/jmp dword ptr[esp+0x8]call/jmp dword ptr[esp+0x14]call/jmp dword ptr[esp+0x1c]call/jmp dword ptr[esp+0x2c]call/jmp dword ptr[esp+0x44]call/jmp dwor
2017-01-10 22:23:48 1002
转载 MmGetSystemRoutineAddress实现
MmGetSystemRoutineAddress这个函数也是比较有用的,是得到系统导出函数的地址,不过网上都是写了一堆汇编代码在哪里,根本没有可读性,还不如用IDA看呢。下面的函数是摘自ReactOS项目的代码:PVOID NTAPI MmGetSystemRoutineAddress(IN PUNICODE_STRING SystemRoutineName)
2017-01-06 16:21:07 1542 1
转载 windows 内核文档化API/导出但未文档化API/未导出API
导出函数:顾名思义,出现在导出表(EAT)里面的函数,可以给外部调用的函数,验证是否为导出函数的方法,熟悉逆向的朋友可以使用LordPE之类的工具查看,当然也可以使用GetProcAddress或者MmGetSystemRoutineAddress之类的函数来获取地址,如果成功的话就是导出函数。非导出函数:这种函数是供自己调用使用的,不想提供给别人使用,当然也有方法可以获取函数地址,可以根据函
2017-01-06 16:15:33 1959
原创 用windbg为无效页面建立页面映射
前几天和同事扯淡,说调试驱动时访问无效内存会蓝屏,好麻烦,应该让windbg自动建立一个有效的页面,这样就不用蓝屏重启了。虽然说这是扯淡,但仔细想想貌似也不是不可能实现。 首先回顾一下OS解决内存缺页时简单步骤:1.搜索物理页面;2.修改虚拟地址对应的pte表的值;3.重新执行访存失败的指令。基于这样的思路,我也试了一下在windbg中手工建立内存映射(环境:win7 x32)1.在
2017-01-05 17:00:48 860
原创 多进程(线程)访问设备的一些疑惑
同事在看设备驱动同步时,问了我一个事:如果驱动程序创建了一个设备,在应用层是否允许多个进程同时打开这个设备;如果允许,这种方式应用层和驱动的通信方式是否会相互影响?我不是很确定,写了个测试代码并把结果记录下来。1.我们在DriverEntry/AddDevice中调用IoCreateDevice创建设备对象。这是IoCreateDevice的接口,倒数第二个参数用于设置设备是否支持独占式访问。
2017-01-05 14:26:47 3248
Windows 10 x64 hal.zip
2020-04-20
Anti-DBG.zip
2017-09-23
Anti-DbgV2.zip
2017-09-23
checked build acpi.sys
2016-10-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人