随笔分类 -  Windows Driver Dev

摘要:MmGetSystemAddressForMdlSafe和MmGetSystemAddressForMdl其实都是宏,都直接或间接的调用了MmMapLockedPagesSpecifyCache内核函数。MmMapLockedPagesSpecifyCache的声明如下:NTKERNELAPI PVOIDMmMapLockedPagesSpecifyCache( IN PMDLMemoryDescriptorList, IN KPROCESSOR_MODEAccessMode, IN MEMORY_CACHING_TYPECacheType, IN PVOIDBaseAddress, 阅读全文
posted @ 2010-12-20 15:19 Fan Zhang 阅读(1472) 评论(0) 推荐(0)
摘要:对于应用程序使用SetProcessAffinityMask/SetThreadAffinityMask。对于内核程序使用KeSetSystemAffinityThread。如果想在多核CPU下做hook IDT就要用这个函数了,有时间写个例子。 阅读全文
posted @ 2010-11-29 13:26 Fan Zhang 阅读(482) 评论(0) 推荐(0)
摘要:代码如下:PHYSICAL_ADDRESSMmGetPhysicalAddress ( IN PVOID BaseAddress ){ PMMPTE PointerPte; PHYSICAL_ADDRESS PhysicalAddress;//判断是否在[0x80000000,0xA0000000)中,如果是,这段内存被映射到物理内存中[0,20000000),这段内存采用4MB大小的分页。 if... 阅读全文
posted @ 2010-11-16 16:26 Fan Zhang 阅读(1770) 评论(0) 推荐(0)
摘要:PDE:Page Directory EntryPTE:Page Table Entry(记录着虚拟地址的真实物理地址) 用KernelDebug举例说明:kd> !pte 80572000 VA 80572000PDE at C0300804 PTE at C02015C8contains 0003D163 contains 00572121pfn 3d -G-DA--KWEV pfn ... 阅读全文
posted @ 2010-11-16 15:40 Fan Zhang 阅读(1430) 评论(0) 推荐(0)
摘要:pjf(jfpan20000@sina.com)  有来信询问进程结束的有关问题,下面就这个问题简单讨论一下(下面的讨论基于2000,其他NT系统也类似)。  首先看看一个应用程序想要强制结束另一个进程所要做的事:首先获得目标的进程ID,接着利用OpenProcess获取进程句柄(确保足够权限),最后将句柄传给TerminateProcess了结那个进程。  1、OpenProcess通过本机系统... 阅读全文
posted @ 2010-11-05 17:44 Fan Zhang 阅读(287) 评论(0) 推荐(0)
摘要:操作系统本身并不知道有没有键盘,他的win32子系统csrss.exe会在不停的在一个函数win32k!RawInputThread里寻找\Device\KeyboardClass0或\Device\KeyboardClass1(数字依次累加)。 那么KeyboardClass0、KeyboardClass1等又是怎么来的呢? kbdclass是个upper filter驱动,只要有keybo... 阅读全文
posted @ 2010-11-03 14:27 Fan Zhang 阅读(519) 评论(0) 推荐(0)
摘要:查找所有设备,从中间找到KeyboardClass0或者kbdclass创建的设备 !object \device 查找设备对象的IRP !irpfind 0 0 device 80e03e38 查看IRP具体信息 !irp 80d839b8 查找发送IRP的线程 !thread 80df54b8 显示Cid 01d0.0210 得知进程ID=01d0,线程ID=0210 !process 01d... 阅读全文
posted @ 2010-11-02 20:56 Fan Zhang 阅读(1203) 评论(0) 推荐(0)
摘要:声明 使用 阅读全文
posted @ 2010-10-29 15:31 Fan Zhang 阅读(1195) 评论(1) 推荐(0)
摘要:先罗嗦两句。我前几天刚开始学破解。论坛里优秀的文章很多,给了我很大的帮助。可我在用OD时,却不会用命令行在函数上下断点。虽然OD命令行支持模糊查找,可还是感觉不太方便,所以就自己把OD支持的命令整理了一下,发上来,喜欢对大家的学习有所帮助。 ?/CALC 表达式           计算给定表达式.... 阅读全文
posted @ 2010-10-09 18:10 Fan Zhang 阅读(244) 评论(0) 推荐(0)
摘要:强制加载符号表 .reload /f gdi32.dll 阅读全文
posted @ 2010-10-09 14:49 Fan Zhang 阅读(450) 评论(0) 推荐(0)
摘要:替换系统驱动.kdfiles 阅读全文
posted @ 2010-09-10 19:26 Fan Zhang 阅读(300) 评论(0) 推荐(0)
摘要:对于没有符号表的驱动程序,先用PE文件找出函数的RVA。 bu XXXX+RVA 阅读全文
posted @ 2010-08-25 22:12 Fan Zhang 阅读(383) 评论(0) 推荐(0)
摘要:DriverEntry.obj : error LNK2019: unresolved external symbol __RTC_CheckEsp referenced in function _DriverEntry@8 如果出现这种错误,点击DriverEntry.cpp的C++(编译器)选项,将“将Basic Runtime Checks”改成Default 阅读全文
posted @ 2010-08-13 11:21 Fan Zhang 阅读(1869) 评论(0) 推荐(0)
摘要:函数原型如下: NTSTATUS IoOpenDeviceRegistryKey( IN PDEVICE_OBJECT DeviceObject, IN ULONG DevInstKeyType, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DevInstRegKey ); 其中DevInstKeyType为PLUGPLAY_REGKEY_DRIVER时... 阅读全文
posted @ 2010-08-10 15:15 Fan Zhang 阅读(911) 评论(0) 推荐(0)
摘要:今天才知道居然还有个PsGetProcessImageFileName函数 以前都是读取EPROCESS的偏移0x174 阅读全文
posted @ 2010-07-27 16:15 Fan Zhang 阅读(2699) 评论(0) 推荐(0)
摘要:今天写驱动编译的时候遇到一个问题,link一个比较老的lib时,报错: error LNK2026: module unsafe for SAFESEH image 解决办法: 在Source文件中加入一行 NO_SAFESEH=TRUE 编译时候执行 build -cZg 阅读全文
posted @ 2010-07-19 16:47 Fan Zhang 阅读(270) 评论(0) 推荐(0)
摘要:不支持dt命令 使用!kdex2x86.strct FILE_OBJECT 80854548 或者使用!ETHREAD 参考资料: http://www.osronline.com/article.cfm?id=64 如果Windbg的命令!strct不管用了,可以将C:\WinDDK\7600.16385.1\Debuggers\w2kfre\kdex2x86.dll拷贝到Windbg的... 阅读全文
posted @ 2010-06-29 16:27 Fan Zhang 阅读(192) 评论(0) 推荐(0)
摘要:#include <windows.h>#include <stdio.h>typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;VOID WINAPIKeInitializeSpinLock( IN PKSPIN_LOCK SpinLock ){ *SpinLock = 0;}__declspec( naked ) V... 阅读全文
posted @ 2010-06-24 13:29 Fan Zhang 阅读(408) 评论(0) 推荐(0)
摘要:dt nt!* dt hal!* 阅读全文
posted @ 2010-06-23 21:16 Fan Zhang 阅读(155) 评论(0) 推荐(0)
摘要:#include <stdio.h>#include <windows.h>#include <winioctl.h>int main(void){ //LPCTSTR lpszDevice = "\\\\.\\PhysicalDrive0"; LPCTSTR lpszDevice = "\\\\.\\C:"; HANDL... 阅读全文
posted @ 2010-06-04 20:14 Fan Zhang 阅读(202) 评论(0) 推荐(0)