Returns' Station

I've taken a shit load of drugs~

排序:
默认
按更新时间
按访问量

new blog

http://retme.net/

2014-02-18 00:39:30

阅读数:1060

评论数:0

复习:cell 隐藏注册表

注册表隐藏的步骤如下: 1。 打开指定名字的注册表键,获取其hkey. 例如: // 打开指定名字的Key HANDLE OpenKeyByName(PCWSTR pwcsKeyName) {        NTSTATUS status;        UNICODE_STRING uKey...

2013-09-10 10:37:03

阅读数:1573

评论数:0

复习:windows对象管理(1)内核对象组织结构

好久没来了!最近在整理以前的一些笔记,也希望把以前学过但没记下来的东西补全,于是这是新一轮复习的第一篇。 一、一些概念 xp下内核对象的布局结构如下(由低到高): object quota info object handle info object name info object crea...

2013-07-25 21:56:35

阅读数:1248

评论数:0

也调了下老洞CVE ‐2012‐0158

没怎么调过洞,看雪随便搜了一下cve,发现这个比较多 几篇结果都在大篇幅的讲怎么定位溢出点,有那么复杂么……栈上下一个内存写入的条件断点就断下来了吧,不过分析过漏洞之后,只知道代码逻辑的bug。。。但是至于doc的文件结构哪部分的问题,什么问题,如何构造这个poc,就又是需要花很多功夫了...

2012-09-18 17:34:34

阅读数:1836

评论数:0

读wrk系列 关于IRP(1)

NtReadFile为例,   1.      建立irp PIRP IopAllocateIrpPrivate( IN CCHAR StackSize, IN BOOLEAN ChargeQuota ) //如果大小小于IopLargeIrpStackLocati...

2012-09-06 21:40:54

阅读数:2105

评论数:1

读wrk系列 Mark一下MDL

Mdl用于把一段用户区内存映射到系统地址上 typedef struct _MDL {  struct _MDL *Next;                                 Irp->MdlAddress的链表  CSHORT Size;  CSHORT MdlFl...

2012-09-05 19:47:32

阅读数:988

评论数:0

dump x64 seh

自己认识x64 seh结构时的小工具,可能有bug #define UNW_FLAG_NHANDLER 0x0 #define UNW_FLAG_EHANDLER 0x1 #define UNW_FLAG_UHANDLER 0x2 #define UNW_FLAG_CHAININFO...

2012-08-03 11:56:32

阅读数:6348

评论数:0

pg3 bypass源码阅读 —— 学习x64内核hook跳板技术

如之前描述的 pg3复杂了许多 先来看看都要hook哪些点 1、hook dpc和定时器分发器,防止seh路线触发pg KiTimerListExpire,KiRetireDpcList 看一下hook点 hook的就是call的位置。...

2012-07-28 06:52:53

阅读数:2894

评论数:0

PG2 BYPASS源码阅读 学习x64解密定时器、特征码定位

以前没有接触过x64内核编程,借这份代码来学习一下,源码 http://www.codeproject.com/Articles/28318/Bypassing-PatchGuard-3 之前说到过PG3的一些机制,下面根据源码回顾一下 PG可能会queue一些dpc来触发sy...

2012-07-28 03:57:04

阅读数:1819

评论数:0

patchguard v3

纯理论的看完了三篇PG的文章,还没看代码,还没入手调试.第三代是vista的版本 win7 sp1的PG肯定跟uniformed的文章不一样了。回头再研究了。反正到win7的时候貌似已经没有人写一大堆文档在内核里对抗pg了,直接给nt打patch了= = 对于x64也是刚接触没...

2012-07-26 02:46:45

阅读数:3884

评论数:0

patchGuard v2

算是对http://www.uninformed.org/?v=6&a=1&t=sumry 的一个中文摘要,理解还不一定全对 PG2一些改动: cmp cs:KdDebuggerNotPresent, r12b jnz short continue_initi...

2012-07-25 01:19:02

阅读数:2639

评论数:0

x64 patchGuard v1

PG1使用了一系列加密手段,隐藏自己,核心手段是向三个正常的DPC传入非法DpcContext地址引发异常处理,在异常处理中执行patch扫描 保护范围:nt,kidebugroutine,ssdt,gdt idt msr 解决方法一:修改pe头部的UnwindData,以改变...

2012-07-24 18:55:10

阅读数:2141

评论数:0

x64的seh

PatchGuard与异常处理密切相关,所以先看看x64的SEH 关于x86中内核如何捕获异常,分发异常,可以看http://blog.csdn.net/shevacoming/article/details/7580350 上面那篇没有跟进分析RtlDispatchExcepti...

2012-07-24 04:10:57

阅读数:1973

评论数:0

X64的调用约定

接触x64之后继续看PG的文章,今天开始读msdn上有关x64的解释 http://msdn.microsoft.com/zh-cn/library/7kcdt6fy 调用约定简化了:一律使用__fastcall,前四个参数用 RCX、RDX、R8 和 R9传递,除了这四个外加RAX、R...

2012-07-23 16:40:33

阅读数:3088

评论数:1

前两天玩了一下mbr

还挺有意思…… hook int 13 , hook BlOsLoader,call hook IoInitSystem - > load fake pcidump.sys dr0 hook AtapiDeviceInternalDispatch,隐藏驱动,伪造系统线程 ...

2012-07-08 07:30:35

阅读数:1149

评论数:1

windows内核访问控制机制

主要看了下面两部分:     1.进程对系统进行特权操作需要有一个权限(Privilege),所以进程有特权集表示进程拥有的权限,内核会在执行这些权限时检查进程是否有权执行此操作。      2.进程对于每个内核对象的操作权限不同,内核对象有一个访问控制列表(ACL)来标示某个用户启动的进程有...

2012-06-27 23:50:29

阅读数:2429

评论数:0

接触一点amd64

以前没接触过,看那篇patchGuard的文章之后翻了翻手册和wiki,整理的东西放上来 概述 一、寄存器 通用寄存器扩展到64位,通用寄存器数目由原有8个扩展到16个 • Sixteen 8-bit low-byte registers (A L,BL, CL, DL, SIL, D...

2012-06-22 21:25:10

阅读数:1491

评论数:0

关于ark取得进程的镜像文件路径

最近看到一个trojan把自己拷到回收站里隐藏,然后发现我两万年前写的ark取得的进程路径还是原路径。。。 突然想起来很久以前看到某群的讨论  拿破伦19:22:03 话说,一个运行中的文件,然后移动他到其他目录~~ 拿破伦19:22:33 有...

2012-06-07 00:53:27

阅读数:891

评论数:0

旧闻:windows关于产品类型注册表写入的防止机制

随便看看,这部分微软抹去了符号。   产品类型的注册表在SystemControl->ProductSuite->ProductOptions 1.系统初始化时已经读取了这个值,详见ROS。 CmControlVector是一系列要在系统初始...

2012-06-07 00:52:00

阅读数:662

评论数:0

mark一下逆向c++写的dll的套路

c++写的几M的dll看着很dt,如果还是com写的。。如果还有一大堆加解密的东西= =   静态            主要的类 this一定要用IDA建一个结构,this第一项是虚函数表指针,也要建立一个结构,结构上最好标上虚函数表的相对偏移,比如命名为struct Clas...

2012-06-07 00:35:49

阅读数:526

评论数:0

Win32k(5) 相关逆向~参考文献~

这是很久前读ROS的一点笔记,最近没空搞这个,发上来备份~ 百度越来越渣了,总说我 “文章内容包含不合适内容” 不让贴!———— PDF版本 115提取码 dpfi6iya 第七部分 一些相关应用 一、枚举消息钩子 二、遍历gditable/usertable查询隐藏进程 ...

2012-06-06 23:21:41

阅读数:1367

评论数:0

Win32k(4) 视窗钩子

第五部分 视窗钩子 一、ROS下的流程   Win2000版本有人分析过了http://bbs.pediy.com/showthread.php?t=135702   消息钩子是一种官方支持钩子回调,可以拦截某一个窗口或者全局的消息。消息本应直接发到对应窗口的wndp...

2012-06-06 23:20:51

阅读数:809

评论数:0

Win32k(3) R0 to R3,键盘鼠标输入

第三部分 R0 to R3   这部分有教主非常精彩和实用的分析,我就不瞎说了。 http://bbs.pediy.com/showthread.php?t=104918   r3 to r0 是常规系统调用倒过来 中断或者sysenter的东西: htt...

2012-06-06 23:20:04

阅读数:1771

评论数:0

Win32k(2) 报文驱动的通信机制

一.应用层的api int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, intnCm...

2012-06-06 23:19:31

阅读数:1042

评论数:0

Win32k(1) 图形线程的初始化

很久以前看ROS的笔记,跟windows不一样的地方不少,最近没时间看这块了= = 先贴上来备份 第一部分 图形线程的初始化 综述一下——   图形通信对象(user object)以线程为单位。这个线程是图形线程,调用表就是ssdt shadow,包含了图形系...

2012-06-06 23:16:19

阅读数:918

评论数:0

inline Hook IdePortStartIo+80 的奇怪驱动

原理类似机器狗,代码写的挺新鲜 loadder.exe 行为          NtSetSysteminformation加载驱动 c:\\cloud76.dll            驱动cloud76.dll         行为          ...

2012-06-06 23:15:06

阅读数:1329

评论数:0

枚举劳务线程

ExWorkerQueue是全局数组 一共三类 typedef enum _WORK_QUEUE_TYPE { CriticalWorkQueue, DelayedWorkQueue, HyperCriticalWorkQueue, MaximumWor...

2012-06-06 23:12:50

阅读数:1828

评论数:0

说说白利用

现在过hips或者scan越来越难了~很多白利用什么的   先说说没品木马们的常见手段(以下示例国内靠谱安全软件早已防范):   1.      一些未公开的启动位置——ms的启动注册表还是很多的~ 放出来样本一分析很快就会被杀了~ 能找到这种东西的孩纸还是看系统源码还是很...

2012-06-06 23:10:44

阅读数:1047

评论数:0

[再mark] 系统注册的dpc,枚举定时器相关的……

续 http://hi.baidu.com/andriy_aolala/blog/item/7cff8a344b67d0a3d1a2d3d1.html 刚没事儿又看了下~mark而已啊~   1. ExpTimerDpcRoutine   R3程序调用NtCr...

2012-06-06 23:08:17

阅读数:1167

评论数:0

和谐有爱的一个鬼影版本

启动代码比hello_tt那个简洁,驱动也是无花无壳,比较有爱适合抄袭~~(hello_tt的看雪上有源码~~)   驱动只支持atapi啊这样不好,还附赠一段插apc注入explorer什么的。。。   求教怎么在启动阶段快速抓出他的驱动啊。。我是用windbg在ZwCr...

2012-06-06 23:07:08

阅读数:746

评论数:0

围观文件穿越操作

大概这么几个思路   1.      打开文件用IoCreateFile,其他比较好发irp的(比如删除操作)走FSD irp 删除文件部分处理了删除正在运行的exe镜像部分,做法是方法是IAT Hook MmFlushImageSection 但是这样对于独占文件依旧不能...

2012-06-06 23:05:38

阅读数:896

评论数:0

围观注册表穿越操作

看了国内部分几个内核注册表穿越的驱动,用来绕过市面上量最大的菜鸟rootkit们,因为只会勾SSDT就出来混的真的有很多啊……   大概这么几个思路   1.      懒得处理,直接调用Zw***Key 2.      Map一份kernel.exe到内存中,按照内...

2012-06-06 23:05:18

阅读数:862

评论数:0

古老的隐藏rootkit思路,XT还没检测

天天看垃圾rootkit,看多了也成了臭皮匠= = 循环 mov dr0,atapi!xxxxxxx hook KidebugR 再学0 Access来个驱动感染 这下没人管了(当然如果内存扫特征定位驱动文件+Winpe = = 介是高端用户啊。。。) 自己写了一个试...

2012-06-06 23:03:20

阅读数:933

评论数:0

拦截LPC监控服务加载和启动

SSDT上hook NtSetSystemInformation NtLoadDriver,可以拦截应用层装载驱动的操作.如果怕不保险,还可以PsSetLoadImageNotifyRoutine或者hook NtCreateSection。但是常规通过服务API加载驱动时却不能找到加载驱动的源程...

2012-06-06 23:01:30

阅读数:2763

评论数:0

温故:自映射机制

/*/x86非PAE的虚拟地址 4k为一页,12位作为最后的页内偏移 剩下20位前十位页目录索引,中间十位页表索引,一共会有4k的页目录和4M的页表,windows将页表安排在0xc0000000~0xc0400000,页目录安排在0xc0300000~0xc0400000 也就是说页...

2012-06-06 22:53:44

阅读数:899

评论数:1

随笔记,找到r3定时器的pid tid....

一些定时器的dpc函数在内核内部,切入点是NtCreateTimer,调试过程如下   dt _ktimer 8129e718 nt!_KTIMER    +0x000 Header           : _DISPATCHER_HEADER    +0x010 DueTime...

2012-06-06 22:53:16

阅读数:736

评论数:0

dpc timer在win7中的改变....

_KiTimerTableList的符号被Ms抹去了,在我的win7 build 7600 pro中 偏移是0x12b6c0,_KiTimerTableSize的大小被缩减回0x100   entry也增加了一个锁 nt!_KTIMER_TABLE_ENTRY    +0x...

2012-06-06 22:52:29

阅读数:893

评论数:0

围观网络之三 -- 浅探索NDIS5.1(2)

二、       各个组件的绑定 1.       生成设备   当PNP管理器检测到有NIC的时候,会遍历所有注册的微端口驱动,通知他们要AddDevice ,从ndisRegisterMiniportDriver可以看到这个过程已经被NDIS托管   int __...

2012-06-06 22:47:10

阅读数:1343

评论数:0

围观网络之三 -- 浅探索NDIS5.1(1)

前言: 本文讨论w2k&xp适用的ndis5.x 网络架构。 NDIS4.0源码太老,ROS又YY了太多,所以这次的参考代码基本都是自己f5的…具体结构都有了,我f5的毫无压力=。= 调试的时候利用IMD(中间层驱动)下断点,更无压力了... NDIS5.x网络的堆...

2012-06-06 22:43:44

阅读数:1714

评论数:0

搜狗浏览器网速保护 功能/漏洞/缺陷 分析

软件版本 2.2.0.1423 驱动版本 1.0.0.9 主要功能就是对耗流量的下载软件进行限速 ★.r0 挂钩TCPIP的handler 拦截发送包 ★.r0 hook NtMapViewOfSection 加载mswsock.dll时向r3中注入sogouipfilter.dl...

2012-05-23 11:39:32

阅读数:1470

评论数:0

内核中的同步机制(三)

★.可等待对象一览 1. Kevent 就是一个等待头 没啥说的 以上的例子也是举得这个KMUTANT 对应的是r3的mutex typedef struct _KMUTANT { DISPATCHER_HEADER Header; LIST_ENTRY MutantL...

2012-05-23 11:37:49

阅读数:963

评论数:0

内核中的同步机制(二)

★.线程等待对象 一些对象时刻等待的 进程 线程 定时器 各种同步对象等等 可被等待的对象,开头都是一个分发器头,这是WRK中的定义,WDK中的定义要更复杂点 typedef struct _DISPATCHER_HEADER { union { stru...

2012-05-23 11:34:57

阅读数:958

评论数:0

内核中的同步机制(一)

数据的同步 ★.提升IRQL实现同步 单核CPU上只要提升到DISPATCH_LEVEL就能实现数据的同步,因为线程不会切换。在多核CPU环境下,也有利用IRQL的提升来处理处理器相关的数据同步的必要。一个例子是线程调度时的同步处理,参考前面的文章~ ★.利用cpu的原子操作执行...

2012-05-23 11:32:22

阅读数:1341

评论数:0

系统服务调用与异常分发

系统服务的调用过程 一、CPU的内部支持 1. int 0x2e 进入 iret返回 (中断门切换) ★.利用中断进入内核,0x2e对应的是KiSystemService ★.每个处理器有一个任务环境,初始化时系统会给CPU在GDT中构造TSS段,并且记录在KPCR中,其中...

2012-05-18 15:11:44

阅读数:3702

评论数:0

APC的内部实现

一个经典的投放apc结束线程是这样的 KeInitializeApc(exitAPC,ethread,OriginalApcEnvironment,KernelKillThreadRoutine,0,0,KernelMode,0); KeInsertQueueApc(exit...

2012-05-18 15:08:59

阅读数:1071

评论数:0

DPC,时钟中断,以及DPC定时器(3)

3.定时器的扫描过程 真正开始扫描定时器的就是上述的KiRetireDpcList 检测到PRCB的定时器请求是true 调用KiTimerExpiration //解除定时器的操作 VOID KiTimerExpiration ( IN PKDPC TimerDpc, ...

2012-05-18 15:04:18

阅读数:1445

评论数:0

DPC,时间中断,以及DPC定时器(2)

二、WRK中的时钟中断和DPC定时器 之前研究过一点应用 http://hi.baidu.com/andriy_aolala/blog/item/5aba868b235d50749f2fb437.html 为了每次时间中断能够搜索较少的链表 来获得定时器 这里引入了哈希表 。按照不...

2012-05-18 15:02:25

阅读数:1450

评论数:0

DPC,时钟中断,以及DPC定时器(1)

一、DPC DPC IRQL高于软件中断 低于硬件中断,硬中断之后,用来完成需要延迟处理的额外操作(当然你也可以用来干别的,比如指定运行某个函数的cpu) 存储于KPRCB中,在wrk中是一个有两项的KDPC_DATA数组(多处理器中) 一个是普通的DPC...

2012-05-18 14:59:37

阅读数:1307

评论数:0

线程的调度与切换

一、线程优先级 线程32个优先级,16~31是实时类别 1~15是动态类别 0是系统类别 KPROCESS.BasePriority是线程创建之后的KTHREAD.BasePriority值(线程的基本、静态优先级),这个值基本不变,KTHREAD.Priority是动...

2012-05-17 15:22:29

阅读数:2111

评论数:0

中断的系统内部过程

了解这个过程之后就能发现hook中断的地方可以有很多。。。 跳过中断硬件支持的部分,从系统的角度去看 Cpu从idt表中查找到routine地址,这个地址实际是保存在中断对象中 kd> !idt Dumping IDT: 37: 806e...

2012-05-16 15:42:25

阅读数:1121

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭