自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

misterliwei的专栏

莫等闲,白了少年头,空悲切。

  • 博客(134)
  • 资源 (6)
  • 收藏
  • 关注

翻译 曝光一些关于数据库完全备份的错误

曝光一些关于数据库完全备份的错误

2010-09-03 14:10:00 1061

翻译 检查点(CHECKPOINT)

Sql Server中的检查点

2010-08-18 13:06:00 4010

原创 行列互转

行列互转

2010-07-08 15:47:00 700

原创 控制台程序的标准句柄的重定向

控制台程序的标准句柄的重定向一.控制台程序尽管有很多人将控制台程序(CONSOLE)也称为DOS程序,但是我在这里还是要将它和MS-DOS程序区分一下。首先它们俩确实有点相似:它们执行时没有图形界面。但是它们之间的区别却是根本的:1.    控制台程序是32位的,与GUI(图形用户界面)程序一样,都为PE格式;DOS程序却是16位的,为MZ格式。2.    在XP中运行时,

2010-05-15 16:41:00 1639

原创 保护模式、实地址模式及V8086模式下的指令格式(下)

保护模式、实地址模式及V8086模式下的指令格式(下) 学习汇编语言时,我们都是从寻址方式开始的。所谓寻址方式就是指令中操作数是如何指定的。在16位时,寻址方式有:1.立即数寻址操作数直接存放在指令中,紧跟在操作码之后。2.寄存器寻址操作数在寄存器中,指令指定寄存器号。3.存储器寻址,存储器寻址方式是说操作数存放在内存之中,指定这些内存的有效地址(eff

2010-05-02 18:23:00 1333

翻译 保护模式、实地址模式及V8086模式下的指令格式(上)

保护模式、实地址模式及V8086模式下的指令格式(上)本文译自《intel指令手册2.1节》,该手册地址为:http://www.intel.com/products/processor/manuals/index.htmIntel64和IA32架构的指令编码格式是图2-1格式的子集。指令有这几个部分组成:可选的指令前缀(顺序不限)、主操作码字节(最多3个字节)以及寻址方式说明

2010-05-02 18:14:00 3184

原创 SQL SERVER 数值类型的存储格式及转换

SQL SERVER 数值类型的存储格式及转换 一.    整数整数类型有四种:BigInt、Int、SmallInt和Tinyint,分别占用空间为8、4、2、1个字节。整数类型的存储格式比较简单:数据的补码形式。这个大家比较熟悉。二.    Decimal/Numeric这两个数据类型定义格式:decimal[(p[, s])] 和 nume

2010-04-12 17:40:00 13144 1

原创 浮点数在计算机中的表示

浮点数在计算机中的表示 最后编辑于:2010-4-13计算机中数字是以0和1二进制保存的,我们熟悉的是整数的如何在计算机中表示,那么浮点数是如何表示的呢? 一.    转换我们先来看看如何将十进制的浮点数转换成二进制。一个十进制的浮点数,例如:abcd.efg  (其中a~g为0..9),其值用多项式为:a*10^3 + b*10^2 + c*10^1+d*10

2010-04-06 19:25:00 26126 1

原创 SQL SERVER登录用户在服务器上的权限

SQL SERVER登录用户在服务器上的权限一个登录用户到底在SQL SERVER实例上有什么样的权限,下面以SQL SERVER2005为例来细数一下。一.首先查看该登录用户属于哪个固定服务器角色。所有SQL SERVER的登录用户和角色都会在master.sys.server_principal视图上有一条记录。而记录登录用户属于什么服务器角色的视图是master.sys.se

2010-03-18 22:43:00 2770

翻译 Public角色

Public角色在本文中,我将通过描述几个安全场景来讨论如何使用Public角色以及Public角色怎么会导致你更多的难题。Public角色相当于NT中的所有用户(Everyone)或验证用户组(Authenticated Users group)。所有加入到数据库中的用户会自动加入到角色中——即使是激活的guest用户也不例外。这就是说任何授予public角色的权限会自动扩展给所有用

2010-03-18 10:20:00 3416

翻译 SQL SERVER数据库中GUEST用户

SQL SERVER数据库中GUEST用户问题谁邀请这些客人(guest)到我的数据库中?你可知道在你的SQL SERVER数据库中还存在guest用户?你可知道SQL SERVER 需要guest用户来实现些特殊功能,且这些功能在2000和2005是不同的?你可知道你的SQL SERVER 2000或2005数据库中有guset用户登录?你可考虑过这是个问题或者你的SQL SER

2010-03-17 21:55:00 9774 2

翻译 理解SQL SERVER中所有者和架构的区别

理解SQL SERVER中所有者和架构的区别SQL SERVER2005介绍了架构,架构相对于以前版本中的对象所有者。本文将解释这两者的区别,并希望能解开你至今仍对架构一点困惑。对象所有者要理解所有者和架构之间的区别,让我们先花点时间来复习一下对象的所有权。在SQL SERVER2000或以前版本中创建一个对象,对象必须要有一个所有者(owner)。大部分情况,所有者为“d

2010-03-17 00:29:00 7043

翻译 在SQL SERVER 2005/2008中拥有一个对象

在SQL SERVER 2005/2008中拥有一个对象从SQL SERVER2000升级到2005/2008后,一个我们必须重新认识的情况是对象不再有所有者(owner)。架构包含对象,架构有所有者。如果你查询表sys.objects,你将会看到这看起来是正确的,只是表中还有一个字段principal_id,但是一般情况下它总是NULL值。不久前一天,我突然对principal_id字段

2010-03-15 21:32:00 845

翻译 所有权,CONTROL和TAKE OWNERSHIP

所有权,CONTROL和TAKE OWNERSHIP今天我意识到早前在讨论对象权限时,并没有对对象的所有权进行深究。因此我将在本文讨论以下主题:对象的所有权、如何变更所有权以及CONTROL权限(SQL SERVER2005新引入)。所有权(ownership):这个比较简单。对象所有者(owner)通常是它的创建者,但是我们可以在创建对象时使用AUTHORIZ

2010-03-15 12:26:00 3047

原创 判断两个时间段是否相交

判断两个时间段是否相交SQL中常常要判断两个时间段是否相交,该如何判断呢?比如两个时间段(S1,E1)和(S2,E2)。我最先想到的是下面的方法一。方法一:(S1 BETWEEN S2 AND E2) OR (S2 BETWEEN S1 AND E1)。很好理解:一个时间段的开始时间S1在另一个时间中间(S2,E2),或者开始时间S2在另一个时间中间(S1,E1)。这个方法

2010-01-29 23:03:00 6887 1

原创 SQL SERVER的分类汇总

SQL SERVER的分类汇总SQL SERVER中使用GROUP BY对数据进行分类汇总,我们也可以使用WITH ROLLUP和WITH CUBE配合GROUP BY进行“增强”了的分类汇总,那么他们两个是如何增强GROUP BY的汇总能力的呢? 一.功能增强1.使用WITH ROLLUP用下面的例子说明,GROUP使用了3个分组字段:GROUP

2010-01-13 16:44:00 10933

原创 IDENTITY标识列的一些事

IDENTITY标识列的一些事最后编辑:2010-12-26IDENTITY(seed , increment)可以定义一个标识列。Seed表示种子值(缺省为1),increment表示增量(缺省为1)。一张表只能定义一个标识列。一. IDENTITY列不能保证连续性IDENTITY不能保证标识号是连续的,这是因为如果语句和事务失败,它们

2010-01-05 10:56:00 5556

原创 一个事务

一个事务SQL Server中事务具有原子性(atomicity),就是说一个事务的所有命令必须作为一个完整的单元执行,要么全部成功,要么全部失败。事务执行的过程中,SQL Server先将所有的数据修改写入到日志中,待事务结束时判断是否需要写入到数据库中。本文要讨论的问题是:如何定义一个事务,或者说一个事务的范围有多大。一个事务的范围主要受事务模式的影响,不同模式下定

2009-12-30 15:27:00 2430

原创 SQL SERVER 2005中的日期时间类型

SQL SERVER 2005中的日期时间类型最后编辑:2011-7-17编辑历史:2011-7-17增加了3.33毫秒描述一.    数据类型 MS SQL Server 2005有datetime和smalldatetime两种格式的日期时间数据类型。注意:没有单独的日期或时间类型。datetime 数据库内部用两个4字节的整数存储datetime数据类型的值。第一个4字节存储基础日期(即19

2009-12-18 18:05:00 30520

原创 OUTPUT子句与触发器

 OUTPUT 子句与触发器       OUTPUT 子句是SQL SERVER2005 新加入的,它返回受INSERT 、UPDATE 或DELETE 语句影响的每行的信息,或者返回基于上述每行的表达式或查询子表。这些结果可以返回到处理应用程序,以供在确认消息、存档以及其他类似的应用程序要求中使用。此外,也可以将结果插入表或表变量。  和触发器的

2009-12-16 23:09:00 1836 1

原创 UPDATE的同时操作特性 行的同时互换

<!-- p.MsoNormal {mso-style-parent:""; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; font-size:10.5pt; font-family:"Times New Roman"; margin-left:0cm;

2009-12-16 10:40:00 894

翻译 UPDATE的同时操作特性 列的同时互换

<!--p {margin-right:0cm; margin-left:0cm; font-size:12.0pt; font-family:宋体; }h2 {margin-right:0cm; margin-left:0cm; font-size:18.0pt; font-family:宋体; font-weight:bold}--> 

2009-12-15 11:24:00 1830

翻译 事务与局部变量

<!--p {margin-right:0cm; margin-left:0cm; font-size:12.0pt; font-family:宋体; }h2 {margin-right:0cm; margin-left:0cm; font-size:18.0pt; font-family:宋体; font-weight:bold} p.MsoN

2009-12-14 22:26:00 858

原创 OVERLAPPED结构与GetOverlappedResult函数

OVERLAPPED结构与GetOverlappedResult函数2009-10-8编辑异步I/O调用时,我们会用到OVERLAPPED结构和函数GetOverlappedResult。以前一直对GetOverlappedResult比较困惑,这两天看书和代码才知道这个函数的主要作用不过是将Overlapped返回的结果进行一次简单的分析而已。下面是OVERLAPPE

2009-09-02 15:25:00 9888

原创 通过挂钩NtCreateSection监控可执行模块

  Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <! /* Sty

2009-09-01 12:27:00 8509

原创 获取当前进程/线程的ID、句柄和内核地址

获取当前进程 / 线程的 ID 、句柄和内核地址   在用户态( RING3 )和内核态( RING0 )下,获取这些值的函数是不同的,而且这些函数的实现原理也是不同的,下面做个小结:   1. 用户态( RING3 )下  2. 内核态( RING0 )下   做个总结,仅此而已。

2009-08-21 10:46:00 7503 2

原创 获取文件对象的名称

获取文件对象的名称 一.取文件对象名称我们可以使用函数ObQueryNameString来查询获取文件对象(FILE_OBJECT)的名称。由于文件对象有专门的名称查询函数IopQueryName,所以ObQueryNameString在内部会直接调用这个函数来查询文件对象名。 我们还有另外一种方法比较“直接”地获得文件对

2009-08-20 18:49:00 5889 2

原创 ObQueryNameString源码解读

ObQueryNameString源码解读ObQueryNameString返回指定内核对象的名称。该函数只返回命名对象名称和拥有查询函数的对象名称,其他所有的对象都返回空结构。下一步是函数的步骤:第一步.先检查内核对象是否有专门的名称查询函数QueryNameProcedure函数,有则调用此函数并返回。WIXP中只有KEY和FILE对象         有专门的名称查询函数。第二步.检查是

2009-08-20 17:53:00 5805

原创 使用Native API 创建进程

<!--v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}--> Normal 0 7.8 磅 0 2

2009-08-18 14:59:00 5634 1

原创 Windows中FS段寄存器 V2

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object class

2009-07-29 18:10:00 7717 5

原创 Windows下如何获得KeServiceDescriptorTableShadow地址

Windows下如何获得KeServiceDescriptorTableShadow地址 总结网上文章的观点,主要有下面几种:1.根据操作系统分类。在WIN2K下KeServiceDescriptorTableShadow接跟着keServiceDescriptorTable;而在XP下,顺序正好相反,KeServiceDescriptorTable紧跟着KeServiceDescri

2009-07-22 14:37:00 3149

翻译 STOS/STOSB/STOSW/STOSD/STOSQ---存储字符串

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 STOS/STOSB/STOS

2009-07-16 15:03:00 7347

翻译 RDMSR--读MSR

RDMSR--读MSR RDMSR将64位由ECX寄存器指定的MSR(model specific register,模式指定寄存器)的内容读出至寄存器EDX:EAX中(在支持intel64架构的处理器中RCX的高32位忽略)。MSR的高32位内容存放在EDX寄存器中,MSR的低32位内容存放在EAX寄存器中(在支持intel64架构的处理器中RDX和RAX的高32位忽略)。如果MSR中没

2009-07-15 23:04:00 10912

翻译 WRMSR--写MSR

WRMSR--写MSR WRMSR将寄存器EDX:EAX的内容写到64位由ECX寄存器指定的MSR(model specific register,模式指定寄存器)中(在支持intel64架构的处理器中RCX的高32位忽略。)。EDX寄存器内容拷贝至选定的MSR的高32位,EAX内容拷贝至选定的MSR的低32位(在支持intel64架构的处理器中RDX和RAX的高32位忽略)。MSR中未定

2009-07-15 22:54:00 6753

原创 GetTickCount的实现

GetTickCount的实现Kernel32.dll的GetTickCount返回机器启动后的毫秒数。一直不知原理,今天看了资料才知道。写下来。反汇编GetTickCount函数:kernel32!GetTickCount:7c80932e ba0000fe7f      mov     edx,offset SharedUserData (7ffe0000)7c80

2009-07-15 19:37:00 7000 3

翻译 SYSEXIT——快速系统调用的快速返回

SYSEXIT——快速系统调用的快速返回 SYSEXIT用来快速调用返回至3层的用户代码。SYSEXIT是SYSENTER的同伴指令。该指令经过了优化,它可以使将由操作系统或执行程序(运行在0层)至用户代码(运行在3层)的返回发挥最大的性能。该指令只能在0层的权限执行。 在调用SYSEXIT指令前,软件必须通过MSR寄存器和通用寄存器,指定3层的代码段和代码指针,3层的堆栈段和堆栈

2009-07-15 18:55:00 2675

翻译 SYSENTER——快速系统调用

SYSENTER——快速系统调用 SYSENTER用来快速调用一个0层的系统过程。SYSENTER是SYSEXIT的同伴指令。该指令经过了优化,它可以使将由用户代码(运行在3层)向操作系统或执行程序(运行在0层)发起的系统调用发挥最大的性能。 在调用SYSENTER指令前,软件必须通过下面的MSR寄存器,指定0层的代码段和代码指针,0层的堆栈段和堆栈指针:1.       IA

2009-07-15 18:54:00 19222 3

原创 SYSENTER系统服务调用过程

SYSENTER系统服务调用过程 以NtReadFile调用为例。一.NtDll.Dll中,NtReadFile过程如下:ntdll!NtReadFile:7c92d9b0 b8b7000000      mov     eax,0B7h7c92d9b5 ba0003fe7f      mov     edx,offset SharedUserData!SystemCa

2009-07-15 13:14:00 5632 2

原创 WINDOWS系统调用

Windows系统调用 Windows 2K通过2Eh中断来实现系统调用的,但是在XP后使用SysEnter来实现系统调用了,同时2Eh中断还是保存着的。不管是2EH中断还是SYSENTER,Windows对所有的系统调用都会生成下面的KTRAP_FRAME堆栈框

2009-07-15 12:55:00 9862 2

翻译 微软编译器中寄存器的使用

微软编译器中寄存器的使用原文地址:http://www.skullsecurity.org/wiki/index.php/Registers翻译:本文是汇编语言指南的第一篇,若你准备阅读整个指南,你必将有所收获。一个寄存器就像变量,只是这种变量的数量是固定的。寄存器是CPU中用来保存数据的地方。数学计算(加法、减法..)只能在寄存器中进行;寄存器常常保存着内存地址;寄存器与内存

2009-07-11 22:58:00 2342

浮点数的内存格式,分单精度和双精度

浮点数的内存格式,参看博文:http://blog.csdn.net/misterliwei/archive/2010/04/06/5455666.aspx

2010-04-13

SQL SERVER数据库MDF文件页查看器

一个用看查看SQL SERVER数据库MDF文件页的简单程序。需要将SQL SERVER服务停止,方可打开MDF文件。

2010-08-11

MyCreateprocess

MyCreateprocess 。

2009-08-18

MIC make it clean

从SQL SERVER 2005起,如果数据库不是干净关闭,为了维护一致性,在单独使用mdf进行附加时,将报错。本工具试图通过修改mdf文件,让数据库变成干净关闭,这样就可以单独使用mdf附加了。但是,请注意:即使附加成功,数据亦可能存在不一致风险。 见博文: http://blog.csdn.net/misterliwei/article/details/6576945

2011-06-30

APIHOOKIAT

文章源码 http://blog.csdn.net/misterliwei/archive/2006/06/27/840983.aspx#1683085

2011-05-27

两个文件指定范围内的比较的工具

用于比较两个文件中,从指定位置开始的一段范围内哪些字节不同。

2010-08-24

空空如也

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

TA关注的人

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