<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Returns' Station]]></title><description><![CDATA[I've taken a shit load of drugs~]]></description><link>https://blog.youkuaiyun.com/Shevacoming</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Shevacoming]]></copyright><item><title><![CDATA[new blog]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/19369341</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/19369341</guid><author>Shevacoming</author><pubDate>Tue, 18 Feb 2014 00:39:30 +0800</pubDate><description><![CDATA[http://retme.net/]]></description><category></category></item><item><title><![CDATA[复习:cell 隐藏注册表]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/11518945</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/11518945</guid><author>Shevacoming</author><pubDate>Tue, 10 Sep 2013 10:37:03 +0800</pubDate><description><![CDATA[注册表隐藏的步骤如下：

1。 打开指定名字的注册表键，获取其hkey. 例如：

// 打开指定名字的Key
HANDLE OpenKeyByName(PCWSTR pwcsKeyName)
{
       NTSTATUS status;
       UNICODE_STRING uKeyName;
       OBJECT_ATTRIBUTES oa;]]></description><category></category></item><item><title><![CDATA[复习：windows对象管理（1）内核对象组织结构]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/9473837</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/9473837</guid><author>Shevacoming</author><pubDate>Thu, 25 Jul 2013 21:56:35 +0800</pubDate><description><![CDATA[好久没来了！最近在整理以前的一些笔记，也希望把以前学过但没记下来的东西补全，于是这是新一轮复习的第一篇。
一、一些概念
xp下内核对象的布局结构如下(由低到高)：


object quota info
object handle info
object name info
object creater info
OBJECT_HEADER
object
对象在内核中以哈希树]]></description><category></category></item><item><title><![CDATA[也调了下老洞CVE ‐2012‐0158]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7992738</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7992738</guid><author>Shevacoming</author><pubDate>Tue, 18 Sep 2012 17:34:34 +0800</pubDate><description><![CDATA[没怎么调过洞，看雪随便搜了一下cve，发现这个比较多


几篇结果都在大篇幅的讲怎么定位溢出点，有那么复杂么……栈上下一个内存写入的条件断点就断下来了吧，不过分析过漏洞之后，只知道代码逻辑的bug。。。但是至于doc的文件结构哪部分的问题，什么问题，如何构造这个poc，就又是需要花很多功夫了



触发一次poc，发现poc最后会弹出计算器并且退出，于是 bp ExitProcess]]></description><category></category></item><item><title><![CDATA[读wrk系列 关于IRP（1）]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7952717</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7952717</guid><author>Shevacoming</author><pubDate>Thu, 06 Sep 2012 21:40:54 +0800</pubDate><description><![CDATA[NtReadFile为例，
 
1.      建立irp


PIRP
IopAllocateIrpPrivate(
    IN CCHAR StackSize,
    IN BOOLEAN ChargeQuota
)

//如果大小小于IopLargeIrpStackLocations，那么从prcb->PPLookasideList[number].P;这个快查表里面拿一个，如]]></description><category></category></item><item><title><![CDATA[读wrk系列   Mark一下MDL]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7947959</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7947959</guid><author>Shevacoming</author><pubDate>Wed, 05 Sep 2012 19:47:32 +0800</pubDate><description><![CDATA[Mdl用于把一段用户区内存映射到系统地址上
typedef struct _MDL {
 struct _MDL *Next;                                 Irp->MdlAddress的链表
 CSHORT Size;
 CSHORT MdlFlags;
 struct _EPROCESS *Process;                 原内存所]]></description><category></category></item><item><title><![CDATA[dump x64 seh]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7826527</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7826527</guid><author>Shevacoming</author><pubDate>Fri, 03 Aug 2012 11:56:32 +0800</pubDate><description><![CDATA[自己认识x64 seh结构时的小工具，可能有bug



#define UNW_FLAG_NHANDLER 0x0
#define UNW_FLAG_EHANDLER 0x1
#define UNW_FLAG_UHANDLER 0x2
#define UNW_FLAG_CHAININFO 0x4
typedef enum _UNWIND_OP_CODES {
	UWOP_PUSH_NON]]></description><category></category></item><item><title><![CDATA[pg3 bypass源码阅读 —— 学习x64内核hook跳板技术]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7795803</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7795803</guid><author>Shevacoming</author><pubDate>Sat, 28 Jul 2012 06:52:53 +0800</pubDate><description><![CDATA[如之前描述的 pg3复杂了许多


先来看看都要hook哪些点


1、hook dpc和定时器分发器，防止seh路线触发pg
KiTimerListExpire，KiRetireDpcList



看一下hook点






hook的就是call的位置。


这里有两种方案：一种是直接jmp + 64bit addr，显然有同步问题，需要暂停所有c]]></description><category></category></item><item><title><![CDATA[PG2 BYPASS源码阅读 学习x64解密定时器、特征码定位]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7795790</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7795790</guid><author>Shevacoming</author><pubDate>Sat, 28 Jul 2012 03:57:04 +0800</pubDate><description><![CDATA[以前没有接触过x64内核编程，借这份代码来学习一下，源码 http://www.codeproject.com/Articles/28318/Bypassing-PatchGuard-3


之前说到过PG3的一些机制，下面根据源码回顾一下


PG可能会queue一些dpc来触发syscheck，其中dpc context传入的是非传统地址，从而触发异常，转到异常处理去执行PG。]]></description><category></category></item><item><title><![CDATA[patchguard v3]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7787191</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7787191</guid><author>Shevacoming</author><pubDate>Thu, 26 Jul 2012 02:46:45 +0800</pubDate><description><![CDATA[纯理论的看完了三篇PG的文章，还没看代码，还没入手调试.第三代是vista的版本


win7 sp1的PG肯定跟uniformed的文章不一样了。回头再研究了。反正到win7的时候貌似已经没有人写一大堆文档在内核里对抗pg了，直接给nt打patch了= =


对于x64也是刚接触没几天，资料也不是很系统，还需要进一步学习。


原文见http://uninformed.org]]></description><category></category></item><item><title><![CDATA[patchGuard v2]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7782857</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7782857</guid><author>Shevacoming</author><pubDate>Wed, 25 Jul 2012 01:19:02 +0800</pubDate><description><![CDATA[算是对http://www.uninformed.org/?v=6&a=1&t=sumry 的一个中文摘要，理解还不一定全对


PG2一些改动：


cmp cs:KdDebuggerNotPresent, r12b
jnz short continue_initialization_1
infinite_loop_1:
jmp short infinite_loop_1
s]]></description><category></category></item><item><title><![CDATA[x64 patchGuard v1]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7781763</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7781763</guid><author>Shevacoming</author><pubDate>Tue, 24 Jul 2012 18:55:10 +0800</pubDate><description><![CDATA[PG1使用了一系列加密手段，隐藏自己，核心手段是向三个正常的DPC传入非法DpcContext地址引发异常处理，在异常处理中执行patch扫描


保护范围：nt，kidebugroutine，ssdt,gdt idt msr


解决方法一：修改pe头部的UnwindData，以改变这三个DPC的异常处理handler  也就是X64的SEH hook。这三个dpc存在于一张表中，搜]]></description><category></category></item><item><title><![CDATA[x64的seh]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7777530</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7777530</guid><author>Shevacoming</author><pubDate>Tue, 24 Jul 2012 04:10:57 +0800</pubDate><description><![CDATA[PatchGuard与异常处理密切相关，所以先看看x64的SEH
关于x86中内核如何捕获异常，分发异常，可以看http://blog.youkuaiyun.com/shevacoming/article/details/7580350



上面那篇没有跟进分析RtlDispatchException，这里跟进以复习x86 seh的结构，也看经典的这一篇 http://bbs.pediy.com/]]></description><category></category></item><item><title><![CDATA[X64的调用约定]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7773806</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7773806</guid><author>Shevacoming</author><pubDate>Mon, 23 Jul 2012 16:40:33 +0800</pubDate><description><![CDATA[接触x64之后继续看PG的文章，今天开始读msdn上有关x64的解释 http://msdn.microsoft.com/zh-cn/library/7kcdt6fy


调用约定简化了：一律使用__fastcall，前四个参数用 RCX、RDX、R8 和 R9传递，除了这四个外加RAX、R10、R11，其他寄存器都是非易失的。
比如下面这段NtCreateFile的代码：]]></description><category></category></item><item><title><![CDATA[前两天玩了一下mbr]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7725812</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7725812</guid><author>Shevacoming</author><pubDate>Sun, 08 Jul 2012 07:30:35 +0800</pubDate><description><![CDATA[还挺有意思……


hook int 13 , hook BlOsLoader,call hook IoInitSystem - > load fake pcidump.sys

dr0 hook AtapiDeviceInternalDispatch，隐藏驱动，伪造系统线程

XT看不到什么东西，PowerTool可以检测到调试函数被钩，强力检测可以检测到mbr被感染。不想和PT去]]></description><category></category></item><item><title><![CDATA[windows内核访问控制机制]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7697885</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7697885</guid><author>Shevacoming</author><pubDate>Wed, 27 Jun 2012 23:50:29 +0800</pubDate><description><![CDATA[主要看了下面两部分：
    1.进程对系统进行特权操作需要有一个权限（Privilege），所以进程有特权集表示进程拥有的权限，内核会在执行这些权限时检查进程是否有权执行此操作。
     2.进程对于每个内核对象的操作权限不同，内核对象有一个访问控制列表（ACL）来标示某个用户启动的进程有如何的访问权。进程对对象执行操作时，会检查相应的权限是否符合。



一、SID:用来表示系统]]></description><category></category></item><item><title><![CDATA[接触一点amd64]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7685199</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7685199</guid><author>Shevacoming</author><pubDate>Fri, 22 Jun 2012 21:25:10 +0800</pubDate><description><![CDATA[以前没接触过，看那篇patchGuard的文章之后翻了翻手册和wiki，整理的东西放上来

概述
一、寄存器
通用寄存器扩展到64位，通用寄存器数目由原有8个扩展到16个
• Sixteen 8-bit low-byte registers (A L,BL, CL, DL, SIL, DIL, BPL, SPL, R8B, R9B, R10B, R11B,
R12B, R13B, R1]]></description><category></category></item><item><title><![CDATA[关于ark取得进程的镜像文件路径]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7640369</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7640369</guid><author>Shevacoming</author><pubDate>Thu, 07 Jun 2012 00:53:27 +0800</pubDate><description><![CDATA[最近看到一个trojan把自己拷到回收站里隐藏，然后发现我两万年前写的ark取得的进程路径还是原路径。。。

突然想起来很久以前看到某群的讨论







 拿破伦19:22:03

话说，一个运行中的文件，然后移动他到其他目录~~

拿破伦19:22:33

有些检测他的路径会变成新的目录

KKindOf 19:23:05

丫的，这是面试题吧]]></description><category></category></item><item><title><![CDATA[旧闻：windows关于产品类型注册表写入的防止机制]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7640349</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7640349</guid><author>Shevacoming</author><pubDate>Thu, 07 Jun 2012 00:52:00 +0800</pubDate><description><![CDATA[随便看看，这部分微软抹去了符号。

 

产品类型的注册表在SystemControl->ProductSuite->ProductOptions






1.系统初始化时已经读取了这个值,详见ROS。

CmControlVector是一系列要在系统初始化前期从hive中读取来的值，其中就有

 

{

       L"ProductOptions"]]></description><category></category></item><item><title><![CDATA[mark一下逆向c++写的dll的套路]]></title><link>https://blog.youkuaiyun.com/Shevacoming/article/details/7640348</link><guid>https://blog.youkuaiyun.com/Shevacoming/article/details/7640348</guid><author>Shevacoming</author><pubDate>Thu, 07 Jun 2012 00:35:49 +0800</pubDate><description><![CDATA[c++写的几M的dll看着很dt，如果还是com写的。。如果还有一大堆加解密的东西= =

 

静态

           主要的类 this一定要用IDA建一个结构，this第一项是虚函数表指针，也要建立一个结构，结构上最好标上虚函数表的相对偏移，比如命名为struct ClassXX_vtable_0xAABB

 

动态

           一开始的时候下断]]></description><category></category></item></channel></rss>