自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(58)
  • 资源 (9)
  • 收藏
  • 关注

转载 内存屏障

内存屏障是为了防止编译器和硬件的不正确优化,使得对存储器的访问顺序和书写程序时的访问顺序不一致而提出的一种解决办法。 内存屏障的分类:编译器引起的内存屏障缓存引起的内存屏障乱序执行引起的内存屏障1、编译器引起的内存屏障:我们都知道,从寄存器里面取一个数要比从内存中取快的多,所以有时候编译器为了编译出优化度更高的程序,就会把一些常用变量放到寄存器中,下次使

2013-03-07 17:25:17 228

翻译 利用#pragma init_seg 控制构造顺序

前言C++标准中,处于同一编译单元(cpp)的全局对象按其声明次序初始化并倒序析构,但标准中没有定义处于不同编译单元的全局对象的初始化顺序。假如有个Log对象负责程序日志的记录,如果程序结束时,有某个全局对象出现类似于资源释放失败的错误,该对象会调用Log记录错误,这时,Log可能已经被销毁了,这就是所谓的dead-reference问题。使用VC中的#pragma init_seg预

2012-09-25 19:37:44 383

转载 CRT堆

N年前,在探讨C++对象创建及管理方法时,写了些代码,管理对象 (factory method、singleton、prototype),发现了windows进程及dll退出时的一些行为及由此引起的问题,本文将问题列举并进行讨论,以下讨论都是以程序静态连接为前提,在本文的最后将会回过头来讨论这个大前提,并提出一些解决问题的方法。CRT堆首先CRT就是C RunTime的缩写,意思是C运行库

2012-09-20 13:23:07 305

转载 干掉Windows文件保护

干掉Windows文件保护思路有以下几种:1.远程注入Winlogon进程卸载sfc_os.dll2.强制替换dllcache里的文件,监视弹窗,使用postmessage发送wm_close消息以关闭。3.调用sfc_os.dll的第5号导出函数以替换文件Windows File Protection is a waste,Solutions usually is:1.C

2012-09-07 16:23:18 334

转载 空间格局随机化ASLR

空间格局随机化ASLR1.     概述在前面安全编码实践中我们介绍过GS编译选项和缓存溢出,以及数据保护DEP。首先,缓存溢出的直接后果就是可能导致恶意代码的远程执行,于是编译器提供了GS保护。但是,GS选项有自身的局限,存在若干方法可以绕过GS选项的保护。于是进一步,操作系统提供了数据执行保护,即DEP,以及与之对应的NXCOMPAT编译选项。那么是不是现在我们就可

2012-05-15 10:46:35 446

翻译 The Windows NT 6 shutdown process【Windows NT 6 关机过程】

原文:http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/windows-nt-6-shutdown-process.html你来到这里看这个页面原因大概是你经常被问到下面类似的问题: Windows NT 版本6 ("Windows Vista") 关机过程是什么 样子的? 下面是常见的答案. Window

2012-02-23 02:06:02 396

原创 禁用MmIsAddressValid

WDK文档明确警告不推荐使用该函数。MmIsAddressValid例程检测读或写作为参数的虚地址是否会发生缺页。就算是MmIsAddressValid返回TRUE,访问参数地址仍然可能发生缺页,除非该地址是有效的非分页内存或者锁这块内存.SyntaxBOOLEAN MmIsAddressValid( __in  PV

2012-02-20 01:01:42 1910

转载 Kernel stack not resident (Using .pagein)

You might find yourself debugging an issue and a thread you areinterested in is paged out.  Here's the steps to use to page in the stackfor the kernel side and user side...   Be careful when doing thi

2011-12-07 19:31:42 470

转载 TortoiseSVN settings for Beyond Compare

Beyond Compare 3:C:/Program Files/Beyond Compare 3/BComp.exeDiff Viewer "C:/Program Files (x86)/Beyond Compare 3/BComp.exe" %base %mine /title1=%bname /title2=%yname /leftreadonlyPut the S

2011-10-27 00:59:17 250

转载 Bugchecks Explained: NO_MORE_IRP_STACK_LOCATIONS

What Happened?All I/O operations in Windows are described by an I/O Request Packet (IRP). If you’re familiar with IRP handling, you alread

2011-09-28 17:26:31 756

转载 微软杯Exploit Me安全调试技术挑战赛 第七题

一、前言原始POC代码见:http://www.ntinternals.org/ntiadv0803/kerneld_Exp.zip。相对而言,改HalDispatchTable表中的xHalQuerySystemInformation要简单点,并且HalDispatch

2011-09-27 00:32:28 884

转载 MS08-066 : 绕过ProbeForRead/ProbeForWrite及修复

MS08-066 : Catching and fixing a ProbeForRead / ProbeForWrite bypassThe driver afd.sys is responsible for handling socket connections.

2011-09-26 16:24:40 481

翻译 后XP系统启动流程

自Vista开始的windows操作系统,启动初始化流程不同于WinXP。相同点止于MBR加载活动分区PBR这一刻。The OS after Windows Vista boot process differs from Windows® XP in the way th

2011-09-24 15:15:36 454

原创 中断向量表

中断向量  是指中断服务程序入口地址的偏移量与段基值,一个中断向量占据4字节空间。中断向量表是8088系统内存中最低端1K字节空间,它的作用就是按照中断类型号从小到大的顺序存储对应的中断向量,总共存储256个中断向量。在中断响应过程中,CPU通过从接口电路获取的中断类型号(中

2011-09-14 01:41:36 1690

原创 如何从EPROCESS辨别一个进程是否已退出

lkd> dt _EPROCESS FDCE6518nt!_EPROCESS   +0x000 Pcb              : _KPROCESS   +0x06c ProcessLock      : _EX_PUSH_LOCK   +0x070 Crea

2011-08-31 16:33:16 349

转载 Get PDO

NTSTATUS            ntStatus = STATUS_SUCCESS;       PDEVICE_OBJECT  DeviceObject = NULL;       PFILE_OBJECT        FileObject = NULL;

2011-08-13 22:38:34 286

转载 DO_DEVICE_INITIALIZING 到底有什么用?

DO_DEVICE_INITIALIZING 到底有什么用?当设备驱动程序通过调用 IoCreateDevice 创建设备对象时,I/O 管理器在 DEVICE_OBJECT 结构的 Flags 字段中设置 DO_DEVICE_INITIALIZING。DO_DE

2011-08-11 01:51:19 259

原创 PAGED_CODE宏

PAGED_CODE这个宏可以确保调用线程运行在一个允许分页的足够低IRQL级别。PAGED_CODE only works in checked builds.如果IRQL > APC_LEVEL,则PAGED_CODE()会对系统产生一个断言。对这

2011-08-11 00:29:36 937

转载 分页式内核模式驱动--#ifdef ALLOC_PRAGMA代码段

By default, the kernel loader will load all driver executables and any global data that you may have defined in your driver into nonpaged me

2011-08-11 00:15:21 398

转载 Fast CRC32 in Assembly

Fast CRC32 in AssemblyTimings on 768 bytes, 1,000,000 times:Assembly: 1722msC (same algorithm, MSVC, -O2): 2099msRtlComputeCrc

2011-07-31 16:32:31 408

原创 12 ways to terminate a process

12 ways to terminate a processTerminateProcess or NtTerminateProcessEveryone knows about TerminateProcess. You simply open a handle to the t

2011-07-26 01:07:31 321

原创 Windows Hang之后,使用主动蓝屏STOP:0x000000E2

按住右侧Ctrl键的同时,再按Scroll Lock键两次,Windows就会出现蓝屏,显示信息为:       *** STOP:0x000000E2 (0x00000000,0x00000000,0x00000000,0x00000000)。  这是Windows的一个进入蓝

2011-07-13 10:35:56 641

转载 Hooks Overview

Hooks OverviewA hook is a mechanism by which an application can intercept events, such as messages, mouse actions, and keystrokes. A functio

2011-07-10 17:59:56 208

原创 SetProcessShutdownParameters

SetProcessShutdownParameters The SetProcessShutdownParameters function sets shutdown parameters for the currently calling process. This function sets a shutdown order for a process relative to the

2011-06-30 12:19:00 683

转载 PEB地址随机化

Windows自从XP SP2后系统引入了一个特性:PEB地址随机化,每个进程的PEB地址不固定,大概有14种可能。系统创建进程时设置PEB的地址,不能认为PEB就处在0x7FFDF000处。NtCreateProcess / NtCreateProcessEx / PspCreateProcess / MmCreatePeb / MiCreatePebOrTeb在MiCreate

2011-06-20 01:17:00 317

原创 CreateThread 和_beginthreadex区别

  为什么要用C运行时库的_beginthreadex代替操作系统的CreateThread来创建线程?来源自自1999年7月MSJ杂志的《Win32 Q&A》栏目 你也许会说我一直用CreateThread来创建线程,一直都工作得好好的,为什么要用_beginthreadex来代替CreateThread,下面让我来告诉你为什么。回答一个问题可以有两种方式,一种是简单的,一种

2011-06-16 18:43:00 230

转载 格式控制符[mark]

_int64类型与long long类型,double类型同为64个字节,十进制大概有20位数,输入输出的格式控制符为"%I64d","%lld","%f"。 符号属性 长度属性 基本型 所占位数 取值范围 输入符举例 输出符举例-- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%usigned -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%

2011-06-16 08:58:00 451

原创 C++中operator的另一种用法

 operator<br />在C++中是重载操作符的关键字;<br />还可以用来定义隐式的类型转换。<br /> <br />参见如下代码,类A在需要的时候可以自动的转换成bool。classA{??? public:????? operatorbool(void)????? {????????? returnb;????? }??? private:????? boolb;};voidmain(void){??? Aa;??? boolb;??? if(a)??? {??????? b = ! a;?

2011-05-03 14:18:00 306

原创 CreateProcessAsUser needs privileges[UAC]

<br /><br />Currently I debug my service process from XP to Win7. One UAC problem appears.<br /> <br />It calls CreateProcessAsUser API. This API works well in all cases in XP and service mode for Win7.<br /> <br />But when I debug it in Win7, it fails. Af

2011-04-15 19:07:00 566

转载 Windows Vista for Developers

<br /><br />《Windows Vista for Developers》系列文章目录<br /> <br />介绍:《Windows Vista for Developers》系列介绍 (原文:Windows Vista for Developers – A New Series)<br />第一部分:Aero向导(原文:Aero Wizards)<br />第二部分:深入分析任务对话框(原文:Task Dialogs in Depth)<br />第三部分:桌面窗口管理器(原文:The Des

2011-04-01 02:18:00 201

原创 Detect a process whether running with elevated privileges sample code.

<br /><br />int UserAccountControl::GetProcessTokenElevationType()<br />{<br />HANDLE hToken = NULL;<br />try<br />{   <br /> if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))    <br />                    throw gcnew Win32Exception(GetLastE

2011-04-01 01:06:00 281

转载 Memory Debug Codes

<br />Microsoft's memory management functions often initialize memory with special values. The following article describes frequent used variants. <br />Microsoft Visual C++ Runtime library<br />C runtime library provides it own debug codes:<br /><br />0xC

2011-03-25 16:30:00 230

转载 Understanding the consequences of WAIT_ABANDONED

<br />One of the important distinctions between mutexes and the other synchronization objects is that mutexes have owners. If the thread that owns a mutex exits without releasing the mutex, the mutex is automatically released on the thread's behalf. <br />

2011-03-07 18:32:00 432

转载 Linux2.6 内核Initrd 机制解析

 1.什么是 Initrd     initrd 的英文含义是boot loader initialized RAM disk,就是由boot loader初始化的内存盘。在linux内核启动前,boot loader会将存储介质中的initrd文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。在 boot loader 配置了 initrd 的

2007-02-07 17:18:00 1193

转载 深入理解Linux操作系统下的守护进程

 Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。linux系统有很多守护进程,大多数服务器都是用守护进程实现

2007-02-07 16:00:00 737

转载 用Diff和Patch维护源码

    在linux系统下,维护源码可以使用很多方法,简单的版本维护工作并没有必要使用复杂的CVS等专门的版本维护工具,linux标配中的diff和patch工具就可以完成代码的简单备份和升级工作。    diff以"行"为单位比较两个文件(也可以是目录较),并将不同之处以某种格式输出到指定输出上;patch可以读入这种输出,并按照一定指令使源文件(目录)按照目标文件(目录)更新。Linux内核源

2007-01-23 14:22:00 1091

原创 man of diff

DIFFSection: GNU Tools (1)Updated: 22sep1993  名字diff - 找出两个文件的不同点   总览diff [选项] 源文件 目标文件   描述在最简单的情况是, diff 比较两个文件的内容 (源文件 和 目标文件). 文件名可以是 - 由标准输入设备读入的文本. 作为特别的情况是, diff - - 比较一份标准输入

2007-01-23 13:48:00 664

转载 关于嵌入式Linux系统的启动(转)

#1  关于嵌入式系统的启动(SHARE FOR ALL)嵌入式Linux启动分为两个部分,系统引导与Linux启动。系统引导将完成Linux装入内存前,初始化CPU和相关IO设备,并将Linux调入内存的工作。系统引导主要由BootLoader实现。在BootLoader将Linux内核调入内存之后,将权力交给LinuxKernel,进入Linux的启动部分。以下详细分析启动的过程与使用

2007-01-15 21:45:00 3258

原创 CDLinux 0.4.9版的SD卡安装

 CDLinux 0.4.9版的SD卡安装       源材料:16M的SD卡、读卡器、linux环境、CDLinux-0.4.9.ISO       以前买dc的时候,随机附带了一个16M的SD卡,一直丢弃到一边,基本没什么用处。有天网上看到有个叫做CDlinux的mini型linux可以安装到各种介质上,于是就想把闲置很久的SD卡做成一个启动盘。       一般的U盘做成wi

2007-01-14 20:28:00 2990 1

原创 CDlinux HOWTOs 文档

 CDlinux HOWTOs 文档如何“安装”CDlinux?CDlinux 是个从光盘启动、运行的小Linux,是以一个标准的 ISO 文件的格式发布的。所以最简单的“安装”方法是:把这个 ISO 文件刻录到光盘上,用它启动机器就是了。当然,你也可以把 CDlinux 安装到硬盘或 U 盘、USB 移动硬盘上。如何把 CDlinux 集成到我自己的光盘上?CDlinux

2007-01-14 19:52:00 1590

艾瑞咨询-2015年中国VR-AR市场研究报告

艾瑞咨询-2015年中国VR-AR市场研究报告

2016-05-06

不能调用Suspend/TerminateThread的原因

Why you should never call Suspend/TerminateThread

2013-12-19

修改微软启动组件

Modifications to Microsoft Boot Components,主要是WinRE和MBR的修改说明。适用于OEM

2011-09-24

Inside The Windows Pre-Boot Environmen

Inside The Windows Pre-Boot Environmen,Winhec06

2011-09-24

驱动程序高级调试

驱动程序高级调试,62页PPT,Windbg使用。

2011-09-24

early-launch-anti-malware

early-launch-anti-malware

2011-09-18

Vmware8注册机

vmware最新发布的支持Win8版本的Workstation 8.0的注册机

2011-09-18

plugfest_PPT_KPP

MS patch guard for X64 kernel.

2011-07-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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