随笔分类 -  Note 内核

摘要:[代码] 阅读全文
posted @ 2010-05-07 14:55 甜甜嘟嘟 阅读(471) 评论(0) 推荐(0)
摘要:1. stub函数 __declspec(naked) __stdcallNtReadFile(){ __asm { push ebp mov ebp, esp mov eax,152 // 系统调用号 lea edx, 8[ebp] // lea edx, [ebp +8] ,这样edx 便指向了用户空间堆栈第一个参数的地址 int 0x2E //系统自陷指令。。进入内核。。。 popebp /... 阅读全文
posted @ 2009-07-04 20:02 甜甜嘟嘟 阅读(478) 评论(0) 推荐(0)
摘要:The Registry i)view the regitrywith the tool- Register.exeii) change the registry should use user interface if app poll the registry looking for the changes , they should use the registry's RegNotifyC... 阅读全文
posted @ 2009-07-01 23:28 甜甜嘟嘟 阅读(216) 评论(0) 推荐(0)
摘要:windows核心态的代码包括 NtosKrnl.exe 和Hal.dllNtosKrnel.exe中包括了 上层的执行体 。。和下层的内核。。。 Hal.dll就是 硬件相关的的了 。。。------------------------------------------------------核心态执行体 | 内核 | HAL.dll==============================... 阅读全文
posted @ 2009-06-25 23:12 甜甜嘟嘟 阅读(194) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2009-05-19 17:32 甜甜嘟嘟 阅读(201) 评论(0) 推荐(0)
摘要:多线程和多处理器的关系:1. 单核cpu: DPC/Dispatch级别的中断导致线程切换2. 多核cpu:1)某个cpu的中断导致线程的切换2)多个cpu可以同时使得多个线程运行在单核cpu上,只需要关闭中断就可以保证原子操作。。。。。原子操作完成后打开中断即可。但是在多核cpu上,关闭中断不能保证其他的cpu不进行资源的操作,但是多个cpu共享一条总线,所以只要锁住总线便能保证原子操作。自旋锁... 阅读全文
posted @ 2009-05-19 17:28 甜甜嘟嘟 阅读(722) 评论(0) 推荐(0)
摘要:与此相关,Windows为CPU的运行状态定义了许多“IRQ级别”,即IRQL。在任一时间中,CPU总是运行于其中的某一个级别,这个级别就表明了什么事情可以做、什么事情不可以做。下面是这些级别的定义:#define PASSIVE_LEVEL 0#define LOW_LEVEL 0#define APC_LEVEL 1#define DISPATCH_LEVEL ... 阅读全文
posted @ 2009-05-16 22:32 甜甜嘟嘟 阅读(6440) 评论(0) 推荐(0)
摘要:下午抽空看了PspTerminateProcess NTerminateProcess的实现。。。也更加理解了进程是个容器。。。线程是执行体的概念。。。。note下流程:在内部的调用流程 :psPTerninateProcess 1. 通过Eprocess得到 Ethread的列表 。。2. 通过循环依次结束每个线程。。。调用PspTerminateThreadByPointer 。。。3. 在P... 阅读全文
posted @ 2009-05-15 23:57 甜甜嘟嘟 阅读(292) 评论(0) 推荐(0)
摘要:一次又一次BSOD,。。。。。。从哪来的 hookKeInsertQueueApc!fake_my_native_api+0x27:fcbc0667 682006bcfc push offset hookKeInsertQueueApc!un_hook_native_api+0x40 (fcbc0620)kd> pAccess violation - code c0000005 (... 阅读全文
posted @ 2009-04-21 00:08 甜甜嘟嘟 阅读(202) 评论(0) 推荐(0)
摘要:纪念下。。。2009-4-20-19:41于公司 调试 KeInsertQueueApc.sys 。。。。 阅读全文
posted @ 2009-04-20 19:43 甜甜嘟嘟 阅读(191) 评论(0) 推荐(0)
摘要:_declspec (naked )void fake_my_native_api(PKAPC Apc, PVOID SystemArgument1, PVOID SystemArgument2, KPRIORITY Increment ){ /* ULONG ptarget_thread; ULONG ptarget_process; ULONG pcurrent_process; ... 阅读全文
posted @ 2009-04-20 00:13 甜甜嘟嘟 阅读(192) 评论(0) 推荐(0)
摘要:这两天模拟江民的进程保护。。。。 inline hook KeInsertQueueApc , 写个笔记。。。 内核中的游戏太有意思了。。。出招 。。拆招。。。。。。各种想法。。。。各种技巧。。无所不用其极。。。。。就看谁的内功更nb 。。。。继续。。。 最郁闷code标签。。每次都把偶的代码弄的乱糟糟。。。。。。。 CodeCode highlighting produced by Act... 阅读全文
posted @ 2009-04-18 14:48 甜甜嘟嘟 阅读(383) 评论(0) 推荐(0)
摘要:这个月要研究进程结构、进程创建、进程保护、进程隐藏、线程kill。。。 主要的native api ,要完成的code: 1. inline hook KiInsertQueueApc 进行notepad.exe的保护,参考下网上的代码 2.理解windows的apc机制。。 3.理解进程的加载和创建流程, 要写笔记。 4. hook ObOpenObjectByPointer 这几天看的东西... 阅读全文
posted @ 2009-04-16 19:44 甜甜嘟嘟 阅读(200) 评论(0) 推荐(0)
摘要:问题处在include的文件名长度未检测。比如#include "AAAA....AA"(超多A)就会挂。 很好的缓冲区溢出的漏洞。。。。 (鬼仔) 憋了半年了。 <=2008-2-17 发现漏洞。2008-3-3 报告给MS,当天收到答复,说正在研究中。2008-3-4 MS确认这是一个安全缺陷,但说Visual C++ 6.0的产品支持生命周期已经于2005年9月30日结束,因此不会为... 阅读全文
posted @ 2009-04-11 17:09 甜甜嘟嘟 阅读(173) 评论(0) 推荐(0)
摘要:好文章 。。。。转载自 S.l.e!ep.¢%某天睡觉醒来,我发现我会开机了~~~ 想当年 初学核编 , 阅读第三章的内核对象的时候跟看天书没什么感觉 死命在想到底内核对象 , 句柄是个什么东西 干嘛用的 于是我们工作室的老大就对我说 这篇看过就过了 学到后面你自然会明白的 我想也是 , 很多时候感觉学东西的确是这样 暂时看不懂的先放着 过段时间再看回来就恍然大悟了 . 我前段时... 阅读全文
posted @ 2009-04-09 20:02 甜甜嘟嘟 阅读(599) 评论(0) 推荐(0)
摘要:一: 查看结构定义: 1. 查看eprocess的结构: dt _EPROCESS 2. .....kprocess : dt _KPROCESS 相关的内容: dt pspcidtable dt _HANDLE_TABLE 如果要查看具体的结构: 使用 dt _eprocess 0x80001234(eprocess 的地址) dt _HANDLE_... 阅读全文
posted @ 2009-04-09 19:54 甜甜嘟嘟 阅读(351) 评论(0) 推荐(0)
摘要:PspCidTable is an undocmented variable in Windows kernel... it contains HANDLE_TABLE... if get address of PspCidTable , i find the follow methods to get it in net... thx for sudami 's articl... 阅读全文
posted @ 2009-04-06 14:18 甜甜嘟嘟 阅读(566) 评论(0) 推荐(0)
摘要:关键代码段分析: 00401528 |. 68 00010000 PUSH 100 ; /Count = 100 (256.) 0040152D |. 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100] ; | eax = ebp... 阅读全文
posted @ 2009-04-01 22:08 甜甜嘟嘟 阅读(271) 评论(0) 推荐(0)
摘要:山寨冰刃的源码里的一个函数。。 获取进程的线程信息。。。 逻辑: 显示通过进程列表找到要枚举的进程,然后根据Eprocess的内容得到Ethread的偏移, Ethread进行遍历,便可得到所有的线程信息。。 (写的搓搓的 。。。思路不是太清晰。。) Code highlighting produced by Actipro CodeHighlighter (freeware)ht... 阅读全文
posted @ 2009-03-26 23:01 甜甜嘟嘟 阅读(5145) 评论(0) 推荐(0)
摘要:thread is devil.... (from sqlite FAQ.) so funny ... 1. Eprocess 在系统内部代表一个进程。。一个非常复杂的结构体,记录了进程的很多属性。。 存在系统的空间中, 除了一个叫PEB(进程环境块)的结构。。因为要在user-mode 修改该结构。。。除了Eprocess外, Win32的子系统(csrss)同样也维护了进程的... 阅读全文
posted @ 2009-03-26 00:20 甜甜嘟嘟 阅读(379) 评论(0) 推荐(0)