伪句柄是什么

今天看核心编程,看到他说的伪句柄,着实有些迷糊,上网上查查,也说的是云里雾里的,所以我就去看看 MICROSOFT的MSDN,他们也是遮遮掩掩的,没有办法我就只有靠一些调试工具来解决了。 从MSDN上,我们知道象GETCURRENTPROCESS,GETCURRENTTHREAD都是在KERNEL32中,所以我用了 OLLYDBG加载了这DLL文件,从中我们可以执行单个文件,恩,返回值和应用程序中返回的一致,象这种情况, 如果我想的不错的话,由于他在脱离进程的情况下也能返回正确的值,那他返回的基本上是立即数(呵呵,我可 不敢绝对话,模糊也是一种美,吐一个)。 现在我们可以证实我们的想法,这样很简单,应用OLLYDBG给我们提供的功能,直接跳到函数的首地址,可以看 到GETCURRENTPROCESS的代码是 OR EAX,0XFFFFFFFF C3 呵呵,这个我想大家都能看懂,我们的伪进程句柄献身,数值为-1 那么GETCURRENTTHREAD的代码也没有出什么意料之外的情况: PUSH -2 POP EAX C3 恩,不错,是这样的,我们的EAX里是0XFFFFFFFE 所以伪句柄就是一个特定的 数值,对于不同的内核对象,是强行规定的,没有什么可探讨的,可探讨之处在于 MICROSOFT为什么这样处理,对性能来说这没有什么可挑剔的(哈哈)。 其实真正的目的可能是(没有办法,MICRO总是不愿出来澄清一些东西,我也不敢MAKE SURE): 在本身进程和线程中,对句柄没有必要进行权限的限制,而在把句柄交由别的进程或别的线程操作时可能就不怎 么放心,一般要加上权限限制,这样就可以减少意外情况的发生。 至于伪句柄和真实句柄之间的转换和权限限制,可以参考DUMPLICATEHANDLE,如果你对以上说明感到怀疑,可 以直接用进程和线程的数值代替看看结果。 注意HANDLE的定义: typedef void * HANDLE; HANDLE hproc=0xFFFFFFFF; HANDLE hthre=0xFFFFFFFE;

 

网址:http://blog.csdn.net/ouyang2008/archive/2006/08/02/1009760.aspx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的==和equals区别

中软国际电子政务部Jeff Chi总结,转载请说明出处。 概述: A.可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。 B.对于String a “a”; Integer …

60、date的使用

1、date [OPTION]... [FORMAT] 2、option -r, --referenceFILE display the last modification time of FILE -s, --setSTRING set time described by STRING -d, --dateSTRING display time described by STRING, not now 3、format %Y 2007 完整年份 %M 30 分 %m 05…

k8s 组件介绍-API Server

API Server简介 k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心。 kubernetes API Server的功能: 提供了集群管理的REST API接口(包括认证授权、数据校…

CreateThread和_beginthreadex的区别

网址: http://www.soft-bin.com/html/2010/08/03/createthread_and_beginthreadex.html在使用VS创建一个工程时,我们可以选择使用的run-time library,在run-time libary的下拉菜单中,有 Single-Threaded, Multithreaded, MultiTh…

配置Xmanager 连接AIX服务器

步骤1. 确认系统是否有安装X11.Dt的相关程序包,该程序包在系统盘中或者直接安装X11.Dt文件集X11.Dt.ToolTalkX11.Dt.bitmaps X11.Dt.helpmin X11.Dt.helprun X11.Dt.lib X11.Dt.ToolTalkX11.Dt.bitmaps X11.Dt.helpmin 步骤2、安装完后,需要做如下动作启…

分布式版本控制系统入门

简介 在过去几年,对于分布式版本控制可以给开发过程提供的益处有许多争论。最近,分布式工具已经很成熟了。尽管分布式工具的一些优点最初可能不明显,但是从长期来看,它们提供的灵活性是非常有意义的。阅读完本文之后,您…

Hadoop源生实用工具之distcp

1 概览 DistCp(Distributed Copy)是用于大规模集群内部或者集群之间的高性能拷贝工具。 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成。 它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中…

如何使用spy ++ (How to use Spy ++)

一个网友在我的一篇随笔后问道,如何使用spy 查找要用到的窗体类名以及相关信息 现把相关作法整理如下 如果你装了vs.net,在vs.net的工具里面就可以看到spy 打开spy ,会以树状图显示当前系统所有的窗体信息,如下所示 然后找到…

[Java]关于throw,throws,try{}catch(){}

一、异常的产生1. 在java代码中,如果发生异常,JVM就会中断程序代码的运行,然后创建异常对象并抛出。例如:int a2, b0;int ia/b; //除数不能为0,发生异常System.out.println(i);程序会在执行第2行代码时中断&#xff0…

PL/SQL Developer 9 注册机

软件下载:下载 注册机下载:下载 说明:测试版本--9.0.1.1613(无需替换文件,输入注册信息即可) 附图: 转载于:https://www.cnblogs.com/zhanqi/archive/2011/10/12/2208750.html

程序图片运行效果存在偏差问题

2019独角兽企业重金招聘Python工程师标准>>> 当图片放到高分辨率的文件夹下,运行程序的手机却是低分辨率时就会出现该问题。解决办法很容易,就是把图片换个文件夹。比如图片放到drawable-xhdpi下,而模拟器是480*800,图…

如何将android例子程序添加到Eclipse进行调试运行

website:http://blog.csdn.net/whwzm88/article/details/6342583 1、打开Eclipse,选择File->new->Android Project,如附图所示窗口: 2、选择Create project from existing source单选框,然后点击->Browse..., 找到想要查看的android例子目录: 备注&…

计算几何——圆卡精度cf1059D

double 在1e17以后就不能顾及小数&#xff0c;所以用一下加精度的技巧 sqrt(r*r-d*d)sqrt(rd)*sqrt(r-d) 遇到误差在几位以内的注意要修改二分的精度&#xff0c;用最大的数据去乘以精度即可 #include<bits/stdc.h> using namespace std;const double esp 1e-7; const d…

坦克大战 Java版

由于博客开通不久&#xff0c;以前没有博客&#xff0c;顺便把以前做的项目也介绍下 希望大家支持&#xff0c;谢谢 坦克大战 IDE&#xff1a;MyEclipse 9.0 语言&#xff1a;Java SE 数据库&#xff1a;由于是单机版&#xff0c;不需要较高的安全性&#xff0c;且数据量较小&a…

c# 扩展方法奇思妙用高级篇五:ToString(string format) 扩展

在.Net中&#xff0c;System.Object.ToString()是用得最多的方法之一&#xff0c;ToString()方法在Object类中被定义为virtual&#xff0c;Object类给了它一个默认实现&#xff1a; 1 publicvirtualstringToString()2 {3 returnthis.GetType().ToString();4 }.Net中原生的class…

MFC中OnDraw与OnPaint的区别

OnPaint是WM_PAINT消息的消息处理函数&#xff0c;在OnPaint中调用OnDraw&#xff0c;一般来说&#xff0c;用户自己的绘图代码应放在OnDraw中。 OnPaint()是CWnd的类成员&#xff0c;负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数&#xff0c;没有响应消息的功能.当视图变…

Windows Internet

网址:http://baike.baidu.com/view/560670.htm WinInet 求助编辑百科名片 WinInet&#xff08;“Windows Internet”&#xff09;API帮助程序员使用三个常见的Internet协议&#xff0c;这三个协议是用于World Wide Web万维网的超文本传输协议&#xff08;HTTP&#xff1a;Hyper…

PHP使用CURL抓取页面

cURL的基本原理 curl是利用URL语法在命令行方式下工作的开源文件传输工具&#xff0c;他能够从互联网上获得各种各样的网络资源。简单来说&#xff0c;curl就是抓取页面的升级版。 <?php//1.初始化&#xff0c;创建一个新cURL资源$ch curl_init(); //2.设置URL和相应的选…

Lync Server 2010迁移至Lync Server 2013故障排错 Part3 :内外网共享PPT提示证书问

最近在公司生产环境中部署Lync Server 2013并对公网发布后&#xff0c;发现公网未加域客户端在与内网用户共享PPT时&#xff0c;会报证书错误&#xff0c;如下图所示&#xff1a;但是内网是正确的&#xff0c;经过查询了一下Lync 客户端自身的日志信息后发现&#xff0c;公网客…

用WinInet开发Internet客户端应用指南

一&#xff1a;http://www.vckbase.com/document/viewdoc/?id545 二&#xff1a;http://www.vckbase.com/document/viewdoc/?id546 用WinInet开发Internet客户端应用指南&#xff08;一&#xff09; 编译/NorthTibet 一、概述一个Internet客户端程序的目的是通过Internet…