自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (55)
  • 收藏
  • 关注

原创 WM_SETICON的一点注意

今天用SendMessage(hwnd, WM_SETICON, ICON_BIG, hIcon );改图标的时候,看到点问题,记录下ICON_BIG大图标所说的是Alt+Tab后的显示图标ICON_SMALL小图标是标题栏的图标和任务栏里显示的图标如果没有设置小图标,那么以后只设大图标,Alt+Tab、标题栏、任务栏都会变,但是,一旦设置过了小图标,不管是初始化还是后来再设置的,

2012-04-23 19:43:43 7121

转载 段式管理的几个相关寄存器

转自:点击打开链接 /* author: mik  * project: pm_simulation (一个保护模式行为模拟器) *  * sregister.h 这个文件描述段管理的几个相关寄存器的结构 */  #ifndef __SREGISTER__#define __SREGISTER__ /* 选择子共16位长 */ty

2012-04-06 07:49:33 788

转载 描述符相关的几个系统结构

转自:点击打开链接/* author: mik  * project: pm_simulation (一个保护模式行为模拟器) *  * descriptor.h 这个文件描述段管理的几个相关寄存器的结构 */ #ifndef __DESCRIPTOR__#define __DESCRIPTOR__   /* 通用的段描述符结构,

2012-04-06 07:49:26 1378

转载 TSS的定义

转自:点击打开链接/* author: mik  * project: pm_simulation (一个保护模式行为模拟器) *  * tss.h 这个文件描述TSS块 */  #ifndef __TSS__#define __TSS__  /* 定义 TSS  */typedef struct TASK_STATE

2012-04-06 07:49:15 1280

转载 x86控制转移及相关的权限检查

转自:点击打开链接■ 数据访问时的权限check一、 访问data segment时(ds、es、fs 及gs)1、 程序指令要访问数据时,data segment selector 被加载进 data segment register(ds、es、fs 和 gs)前,处理器会进行一系列的权限检查,通过了才能被加载进入segment register。处理器分为两步进行检查:

2012-04-05 09:08:41 752

转载 AMD64 ABI 的几个主要特性

1、7个通用寄存器(rdi,rsi,rdx,rcx,r8,r9 和 rax)依次用作函数传递参数。2、rsp 及 rbp 用于管理堆栈3、r10 及 r11 用于临时寄存器4、5个通用寄存器(r12,r13,r14,r15 及 rbx)由被调用方保存

2012-04-05 09:08:34 1611

转载 x86 控制转移权限检查精要

一、       直接转移(far call及 far jmp)直接转移通过执行一条 call 或 jmp指令,在段内转移不需selector近跳转,段间转移通过selector(不带gate或 tss)远跳转,CPL不改变。 权限检查的4个要素:★ CPL:当前运行级别(也就是CS.CPL)★ RPL:门符选择子(RPL for code descriptor)★

2012-04-05 09:08:26 906

转载 堆栈的切换

转自:点击打开链接操作系统必须至少建立一个TSS,4个权限级别的堆栈结构(stack segment selector及stack pointer)必须被定义。 一、 堆栈及栈指针的权限级别:★    3 级:stack selector及stack pointer存储在SS寄存器及 ESP 寄存器中★    0、1及2级:相应的stack selector及stack

2012-04-05 09:08:18 892

转载 调用后返回

转自:点击打开链接当目标代码执行完毕,需要返回控制权给原代码时,将产生返回控制权行为。返回控制权行为,比转移控制权行为简单得多。因为,一切条件已经在交出控制权之前准备完毕,返回时仅需出栈就行了。 1、 near call的返回近调用情况下,段不改变,即 CS 不改变,权限级别不改变。从栈中pop返回地址到EIP 寄存器时,需进行 limit 的检查。 2、

2012-04-05 09:08:08 564

转载 页级的保护措施

转自:点击打开链接一、      页的三种保护措施:★    两种权限保护:supervisor(0、1及2级)和user(3级)★    两种访问限制:read-only 及 read/write★  PAE 下的 No Exceute 属性保护  二、      supervisor/user保护措施★ PDE/PTE 的 U/S域,0时:supervi

2012-04-05 09:07:51 760

转载 x86 中的算术标志位运用

转自:点击打开链接sub x,y    ===> 以此为例   一、用于符号数运算的标志: (OF、ZF、SF)  1、   (OF = 0) && (ZF = 0) && (SF = 0) ZF = 0 : 说明两个算术操作数不相等OF = 0 : 说明结果无溢出SF = 0 : 说明结果为正数-----------------------

2012-04-05 09:07:42 761 1

转载 real 模式的思考

转自:点击打开链接1.1、real 模式、protected 模式以及 Long 模式的物理资源清楚认识这点:  从物理资源方面看:real 模式是 protected 模式的子集,而 protected 模式是 long 模式的子集。所以:real 模式、protected 模式以及 long 模式的物理资源是一样的。  pro

2012-04-05 09:07:32 691

转载 real 模式下访问 4G 地址空间

转自:点击打开链接在实模式下不受 1M 空间限制访问 4G 空间,实现这个目的仅仅需要一点小“技俩”,这就是某些资料上所说的 big mode2.1 原理  real mode -> protected mode -> real mode  在实模式转化为 protected 模式时,设置好该问 4G 空间的 descriptors,加载进相应的的

2012-04-05 09:07:15 696

转载 proected 模式

转自:点击打开链接x86 的 protected 模式是构建在段机制上,实质上 protected 模式应称为 segmentation protected 模式。整个 protected 模式的核心是 Privilege(权限),众多机制都是围绕 privilege 这个核心元素来构建。3.1、 保护的意图  在久远的 real 模式下的 dos 平台,还是那种“硬件为软

2012-04-05 09:07:04 563

转载 理解 paging

转自:点击打开链接物理地址: linear address  ---->  paging  ----> physical addressSO, 这里主要理解 paging 的来龙去脉。4.1、地址组成physical address = page's base address + offset这个页基址经过几级数据结构(p

2012-04-05 09:06:55 1300

转载 x86 vista 下的 paging

转自:点击打开链接看一个实际的例子:kd> unt!InitBootProcessor+0x3df:81b3a6de fec8            dec     al81b3a6e0 f6d8            neg     al81b3a6e2 bfe0df8f81      mov     edi,offset nt!ExpBootEnviro

2012-04-05 09:06:12 656

转载 x64 win7 下的 paging 实例

转自:点击打开链接再看一看 win7 x64 体系中的 paging 实例:从 windbg 中摘录一段 win7 的 kernel 代码:kd> unt!KeSetProfileIrql+0x1306:fffff800`02bc7c36 33d2            xor     edx,edxfffff800`02bc7c38 2401

2012-04-05 09:05:33 729

转载 x86 windows2008 下的 paging 实例

转自:点击打开链接看一看 x86 的 windows server 2008 版本上的 pagingserver 版的 windows 使用了 2M paging kd> unt!KeUpdateSystemTime+0xed:816d502d fa              cli816d502e 648b0d1c000000  mov

2012-04-05 09:05:23 557

转载 segmentation 情景分析

转自:点击打开链接用户程序 A 君,是某酒店公寓的新住户,该公寓有若干层,每层有若干寓所,还包括公用的日用百货仓库间,会所等公共设施,是一座自助式的电子化的公寓大厦。  这一天是用户程序 A 君,新入住公寓的日子,管理员 OS 交给了 A 君自己寓所的电子门匙,A 君要凭这条电子门匙在公寓的管理系统里找到自己的寓所。5.1、寻找 room 的 key:segme

2012-04-05 09:05:09 786

转载 x86 winxp 下的 segmentation 实例

转自:点击打开链接使用 bochs 可以很容易很直观地观察调试系统。下面选取一个 xp 启动的实际片断,如下: sregcs:s=0x001b, dl=0x0000ffff, dh=0x00cffa00, valid=1ds:s=0x0023, dl=0x0000ffff, dl=0x00cff300, valid=31ss:s=0x0023, dl=0

2012-04-05 09:04:50 580

转载 x86 的 TSS 任务切换机制

转自:点击打开链接segment descriptors 构建保护模式下的最基本、最根本的执行环境。system descriptors 则构建保护模式下的核心组件:1、TSS descriptor 提供硬件级的进程切换机制2、LDT descriptor 供进程使用多个 descriptor3、Gate descriptor 提供 processor 权限级别的切换机制。

2012-04-05 09:04:39 2773

转载 利用 TSS 机制切换到任何权限级别

转自:点击打开链接利用 TSS  机制可以进行任意权限级别的随意切换是基于:(1)在任何权限下可以更改 eflags.NT 标志位。(2)使用中断返回指令 iret 进行切换到更高级或更低级权限的代码。如下:  pushfd                                       /* 这条指令可以在 3 级执行 */      or

2012-04-05 09:04:21 755

转载 LDT descriptor

转自:点击打开链接显然,GDT(global descriptor table)是系统与所有进程共用的。相对于 LDT(local descriptor table)则是进程独享的。GPRs、selector registers、stack pointers、eflags、LDT descriptor、CR3 构成了一个进程的执行环境。  TSS segment 包含了上述几个环境资源

2012-04-05 09:04:03 784

转载 使用 gate 构建保护模式的 protected 核心

转自:点击打开链接x86 下 segment 保护核心就是 gate 机制,x64 的 long 模式下 segment 保护有所弱化,AMD 号称 long 模式取消了 segment 机制,实际上,现阶段的的 x64 体系中,segment 机制是不可取消的。只不过是将平坦内存模式从软件层移到硬件层,等取于取消了 segment 机制。  现在的操作系统都将 protected 重

2012-04-04 13:58:28 853

转载 gate 的用法

转自:点击打开链接gate descriptor 给出了目标代码的访问途径。上面给出一个直观的访问途径图。这个途径就是:1、gate descriptor 的 selector 给出目标代码的 code segment descriptor2、由目标代码 code segment descriptor 的 base address 得出代码的 base 3、

2012-04-04 13:57:59 1793

转载 x64 下的 segmentation 情形

转自:点击打开链接6.1、 x64 下的物理资源及系统数据结构6.1.1、 segment registers  x64 体系在硬件级上最大限度地削弱了 segmentation 段式管理。采用平坦内存管理模式,因此体现出来的思想是 base 为 0、limit 忽略。  但是,x64 还是对 segmentation 提供了某种程度上的支持。体现在 FS 与 GS 的与众

2012-04-04 13:57:25 1032

转载 long mode 下的 call gate

转自:点击打开链接6.1.4、  long mode 下的 call gate6.1.4.1、 64 位的 call gate descriptor 中已经不支持 parameter count 域,offset 域被扩展至 64 位 base 值。情景提示:  64 位的 call gate descriptor 的中 selector 域必须

2012-04-04 13:56:45 649

转载 long mode 下的 TSS 和 task gate

转自:点击打开链接long mode 已经不支持使用 TSS 机制进行任务切换。TSS 必须存在的唯一原因依然是:需要提供每个权限级别的 stack 指针。但是,由于不支持 TSS 任务切换机制,所以,long mode 下的 TSS segment 和原来的 TSS segment 有很大的改变。1、long mode 下的 TSS segment 去掉了必要的执行环境,包括

2012-04-04 13:55:58 749

转载 long mode 下的 interrupt/trap gate

转自:点击打开链接interrupt 与 trap gate 格式是一样的,只是 descriptor type 不一样而已。与 x86 的 interrupt / trap gate 的所不同的是:base 扩展为 64 位、额外增加了 IST 域。  前面提过,由于 interrupt / trap gate 只能放在 IDT 表中,不存在 64/32 位代码共存的现象,所以,in

2012-04-04 13:55:34 1025

转载 data segment 的访问

转自:点击打开链接这里的 data segment 访问控制针使用对 DS、ES、FS 以及 GS selector register 进行访问,不包括 SS selector register,stack segment 访问与一般的 data segment 有些差别。  以 DS 为例代表所有的 data segment 访问(ES、FS 以及 GS),需要的权限条件是:RP

2012-04-04 13:55:08 1196

转载 stack segment 的访问

转自:点击打开链接基于 stack 的访问都将引发 stack 访问控制检查,对于 stack 的访问控制比一般的 data segment 访问检查要严格。用简单的式子表达为:if (RPL == DPL && CPL = DPL) {  /* 通过检查,允许访问,加载 descriptor 进入 SS */} else {  /* 拒绝访

2012-04-04 13:54:39 1880

转载 使用哪个 segment registers 进行数据的访问

转自:点击打开链接对于 code segment 的访问,都知道是使用 CS selector register 。对于 data segment 的访问,则是根据指令或内存的寻址方式来决定使用哪个 selector registers。1、对于串操作指令来说,在缺省的情况下:源串引用 DS 作为参考对象,目标串引用 ES 作为参考对象。  loadsd

2012-04-04 13:53:54 727

转载 canonical-address 地址形式

转自:点击打开链接canonical-address 地址形式就是:64 位的 linear address(virtual address)中的从 MSB(Most Significant Bit)最高有效位到第 63 位全是 0 或 1 的这种形式。看下面的地址:  FFFF8010_bc001000:这是符合 canonical-address 的地址,MSB 是 b

2012-04-04 13:53:31 2119

转载 目标 code segment 的访问

转自:点击打开链接当程序中使用指令 call / jmp,以及通过 int 引发中断例程的执行,这将都是对目标的 code segment 进行访问,当通过权限的检查后程序将会跳转到目标的 code segment 进行执行。  在 code segment 的访问过程中涉及到权限级别的改变,stack 的改变等问题。访问目标 code segment 的几种情形:

2012-04-04 13:53:08 911

转载 call/jmp offset 段内调用

转自:点击打开链接段内的调用/跳转的特性:  不改变 CS,也就是不用重新加载 code segment descriptor,当然也就不需要进行权限的检查,但是这里需要做 segment 的 limit 检查,检测到越 segment limit 会产生 #GP 异常。  由于在段时调用,所以使用 call offset 时,processor 仅会做 push eip 的处

2012-04-04 13:52:39 1033

转载 使用 call/jmp 直接调用/跳转目标 code segment

转自:点击打开链接直接调用/跳转的形式是:  call / jmp selector:offset  这里的 selector 是 code segment selector 直接使用 selector 来索引 code segment,这将引发 CS 的改变,code segment descriptor 最终会被加载到 CS 寄存器里。  在 code segment

2012-04-04 13:52:12 1373

转载 通过 call gate 访问目标 code segment

转自:点击打开链接直接 call / jmp 目标 code segment 不能改变当前的 CPL,若要 call / jmp 高权限的 code segment 必须使用 call gate,在 x86 下还要可以 call / jmp TSS descriptor 或者 call / jmp task gate,但在 64 bit 模式下 TSS 任务切换机制不被支持。

2012-04-04 13:51:44 1156

转载 long mode 模式下 system/gate descriptor 的疑惑

转自:点击打开链接1、 32 位的 system descriptor 与 64 位的 system descriptor(1)compatibility 模式下,LDT / TSS descriptor 还是原来的 32 位的 descriptor,与原来 x86 的 LDT / TSS 意义一致。(2)64 bit 模式下,LDT / TSS descriptor 扩展

2012-04-04 13:51:00 1026

转载 选择 conforming 还是 non-conforming ?

转自:点击打开链接code segment descriptor 的 C 位表示 code segment 是 conforming 还是 non-conforming 类型,C = 1 代表 conforming 类型,C = 0 代表 non-conforming。conforming 类型可以允许低权限向高权限转移,而不需要通过 call-gate。低权限向高权限的 non-conf

2012-04-04 13:50:27 1221 1

转载 使用 TSS selector 进行任务切换

转自:点击打开链接指令:  call 0x20:00000000  jmp 0x20:00000000-----------------------------------  selector 0x20 是个 TSS descriptor 的 selector。  TSS descriptor 与 segment descriptor 的格式一致,不同的是 ty

2012-04-04 13:50:00 1358

BCGControlBarPro.v12.00

BCGControlBarPro.v12.00破解版, vs2010 win8.1测试可用

2015-07-27

x86汇编语言

x86汇编语言, pw: asm

2015-04-08

TCP-IP详解 3卷

TCP-IP详解 卷一_二_三

2014-12-18

图解TCP_IP 第5版

图解TCP_IP 第5版pdf, 挺清晰

2014-12-18

0day安全:软件漏洞分析技术(第2版)

0day安全:软件漏洞分析技术(第2版), 很清晰的一本, 还有目录.

2014-12-03

Head First Python中文版

Head First Python中文版, 介绍了用python开发android应用

2014-12-03

笨办法学Python 第3版

笨办法学Python 第3版

2014-12-03

Windows高级调试

Windows高级调试,包含源码和示例.

2014-05-21

X86汇编语言:从实模式到保护模式

<X86汇编语言:从实模式到保护模式>的配书源码和工具

2014-02-27

MBR学习资料

吾爱破解的 willJ 写的MBR学习资料

2014-02-07

Windows NT 2000 Native API Reference

Windows NT 2000 Native API Reference

2013-11-19

Windows.7设备驱动程序开发

Windows.7设备驱动程序开发,感谢看雪网友PEReader制作的标签!

2013-10-25

Windows系统编程 原书第4版

Windows系统编程 原书第4版 影印版,还算清晰,找了好久~

2013-10-04

Undocumented Windows 2000 Secrets简体中文版

Undocumented Windows 2000 Secrets简体中文版

2013-05-01

操作系统设计与实现第2版

操作系统设计与实现第2版的上下册,不错的的

2013-04-14

Windows 核心编程 第四版和源码

Windows 核心编程 第四版 chm的和源码,pdf的有些不完整

2013-04-04

Windows Via C/C++

Windows via C/C++ Windows核心编程 英文版

2013-03-07

ActiveX 控件测试容器TstCon32

ActiveX 控件测试容器TstCon32

2013-02-23

Programming the Microsoft Windows driver model中文

Programming the Microsoft Windows driver model中文+目录+源码

2013-01-25

Windows系统编程(第4版)实例和习题源码

Windows系统编程(第4版)实例和习题源码

2013-01-01

Windows程序设计(第2版)配套光盘

Windows程序设计(第2版)王艳平那本的配套光盘,光驱有问题了,放这儿以备后患

2012-11-28

STL源码剖析

STL源码剖析不错的一本书,不是很清晰,但可以看!

2012-11-17

WindowsPE权威指南随书资源包

WindowsPE权威指南随书资源包, 包括源码和编译好的程序

2012-08-28

WINDOWSPE权威指南

WINDOWSPE权威指南PDF清晰带书签,赞啊~

2012-08-15

Microsoft PECOFF规范v8.1中文版

Microsoft PECOFF规范v8.1中文版

2012-06-30

Debug32位版

Debug的32位版,32位代表什么?不用多说,学汇编的必备东东,据说正版要50美元.

2012-06-25

32位汇编语言程序设计(光盘)

Windows环境下32位汇编语言程序设计的随书光盘,家里上次找的是第二版的,这次是第三版的了,删了一些东西,只保留了源码和附录

2012-04-26

琢石成器附属光盘

琢石成器—Windows环境下32位汇编语言程序设计的附属光盘

2012-04-13

Rootkits_Windows内核的安全防护

Rootkits_Windows内核的安全防护高清pdf……

2012-03-02

Intel汇编语言程序设计(第5版)

Intel汇编语言程序设计(第5版)高清pdf!!!!

2012-02-25

汇编语言第二版答案和实验

网上下载的某位的《汇编语言》第二版学习笔记……供参考

2012-02-17

微软PE文件规范

微软PE文件规范中问pdf与英文word版

2012-02-16

MASM6.15完整

一个masm。。个人使用的比较舒服的一个。。

2011-12-25

80x86汇编语言程序设计教程

80x86汇编语言程序设计教程,杨季文的那本

2011-12-04

汇编语言第二版

汇编语言第二版,

2011-12-04

32位汇编语言程序设计

Windows.环境下32位汇编语言程序设计(第2版)完整高清晰PDF版

2011-12-04

Windows系统编程英文第四版

Windows系统编程英文第四版,对着中文的看

2011-12-04

Windows核心编程(老版)

Windows核心编程(老版),一个比较老的版本,对着新的看

2011-12-04

Windows驱动开发技术详解(高清版)

Windows驱动开发技术详解高清pdf书, 包括源代码

2011-11-19

Thinking in C++英文版

Thinking in C++ 英文版 清晰带目录....推荐

2011-10-22

空空如也

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

TA关注的人

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