- 博客(27)
- 资源 (16)
- 收藏
- 关注
原创 DeviceExtenson和DeviceObjectExtension关系猜测
用WinDbg顺便看了下_DEVICE_OBJECT结构,看到了之前疑惑的2个结构:kd> dt _device_object 0x821899c8 nt!_DEVICE_OBJECT +0x000 Type : 0n3 +0x002 Size : 0xd0 +0x004 ReferenceCount : 0n0
2011-06-17 14:28:00
1610
原创 DeviceExtenson和DeviceObjectExtension关系猜测
用WinDbg顺便看了下_DEVICE_OBJECT结构,看到了之前疑惑的2个结构:kd> dt _device_object 0x821899c8 nt!_DEVICE_OBJECT +0x000 Type : 0n3 +0x002 Size : 0xd0 +0x004 ReferenceCount : 0n0
2011-06-17 14:27:00
957
原创 DeviceExtenson和DeviceObjectExtension关系猜测
用WinDbg顺便看了下_DEVICE_OBJECT结构,看到了之前疑惑的2个结构:kd> dt _device_object 0x821899c8 nt!_DEVICE_OBJECT +0x000 Type : 0n3 +0x002 Size : 0xd0 +0x004 ReferenceCount : 0n0
2011-06-17 14:26:00
685
原创 关于自删除程序文件
<br /> 思路如下:<br /> 好像这个功能可以通过一些库函数的调用实现,具体没有看过,不过突然想起一种想象种可以实现的方法:<br /> exe文件之所以不能自删除因为这时的文件有一种属性(具体不太清楚,没有查),思路是 当前程序运行后进入其他进程,<br /> 然后自身结束,然后残留在其他进程中的线程完成自身删除工作,然后退出<br /> <br /> 代码稍后贴出:
2010-09-14 11:03:00
707
原创 关于32位os按“段寻址机制”最高64TB的“传说”
<br />网上不少的资料上说32OS通过“段管理机制”最大的virtual address space可以达到64TB,这种结论我感觉完全是按照“实模式”的方式<br /> 计算的来的。。。好先说下这是怎么计算来的:<br /> offset:32bits(4GB,注意这里是根据指针所占字节的大小而确定的,或者说按照EAX/EBX/ESP/EBP等等而“决定”的,(如果这里不太理解,想一下:mov [eax], 1234H;是的!寄存器间接寻址,如果超过32位INTEL这
2010-09-14 11:02:00
1060
转载 世界是并行的:并行计算的机遇与挑战
标签:nvidiacuda并行编程高性能计算it分类:CUDA本文是一系列报道的序言,在该系列报道中,计算机科学家以及其他研究人员将利用大量处理器核心来释放并行编程的高性能计算潜力。但是首先让我们来了解一下并行计算机遇与挑战的背景知识。大约在五年前的那段时期内,计算速度的你追我逐曾一度陷入僵局。直到那个时候,设计师还一直是通过人尽皆知的三种技术来实现狂飙的性能:缩小本来已经非常微小的晶体管、在每颗处理器中整合更多数量的晶体管以及让它们以更高的频率运行。问题是,更高的处理器性能意味着更大的功耗和更多发热量,
2010-08-10 14:42:00
782
原创 D3D手动计算vertex normal
<br />D3DXVECTOR3 MyD3D::my_face_normal_computer(D3DXVECTOR3 vertex1, D3DXVECTOR3 vertex2, D3DXVECTOR3 vertex3){ D3DXVECTOR3 normal=D3DXVECTOR3(0.0, 0.0, 0.0); D3DXVECTOR3 vector1=vertex2-vertex1; D3DXVECTOR3 vector2=vertex3-vertex1; //求叉积 D3DX
2010-07-31 02:14:00
1544
转载 完美画质 3D游戏反锯齿技术浅析
<br />完美的画面已经离我们不再遥远——反锯齿技术浅析<br />不管现今的游戏画面有多完美,人物和环境有多真实,但游戏画面的构成的主要方式仍然没有得到改善:一帧画面由成千上万像素构成。这意味着物体多边形的轮廓最终是锯齿状的图形。所以画面质量不可能达到理想的标准,除非完全消除“锯齿”。 别担心,精美的画面品质是要牺牲速度的代价来换取的,并且各大显卡厂商都有自己独到的反锯齿技术,他们新的图形加速卡都纷纷支持全屏抗锯齿。完美的画面已经离我们再遥远。<br />超级采样(Supersampling) <br
2010-07-07 12:19:00
1063
原创 函数跳转表浅见
<br /> 近两天看了下代码注入,使用dll注入还好,要是不使用dll发现API都不能用了,但是dll注入毕竟会出现自己多挂载上去的dll,所以看了下函数调用,发现无论是系统的API还是自定义函数都有不是直接“call 函数线性地址”这样做的,调用系统API时应该是调用系统的dll中的函数,这时发现调用方式是这样的“”call 一个地址的内容 (注意不同于call一个地址),然后直接用编译器观察反汇编的程序代码,发现有个表:<br /><br />——API函数跳转表,这是我上面程序调用到的所有的API
2010-05-23 01:19:00
1322
1
原创 ring3层面函数HOOK从头来之(一)——无dll远程进程代码注入
今天看到一篇文章,关于远程代码注入,大概思路如下:通过“目标窗口”获得“目标窗口”的hWnd->通过hWnd获得“目标进程”的ID(ProcessID)->根据ProcessID打开“目标进程”获得进程句柄hProcess->利用hProcess在“目标进程”new出一块或多块空间(使用函数VirtualAllocEx)用于填放自己的代码和传入参数,假设预先new出的代码空间地址为pCodeR
2010-05-19 11:32:00
1595
原创 关于绕过过滤驱动的资料的个人看法和摘要
刻苦钻研了使用驱动直接使用IN/OUT指令来修改MBR,但是读取成功了,而写MBR却一直没有进展,到现在也没有写进去,汗…根据网友提供的链接发现了这篇文章,http://www.codeproject.com/KB/system/rawsectorio.aspx。以下所有的个人看法全部依据本文。 在看这篇文章之前倒是了解过winhex这款软件,也使用这个软件在ring3
2009-12-08 16:22:00
1389
1
原创 IoMarkIrpPending函数
IoMarkIrpPending IoMarkIrpPending例程用于标记指定的IRP,标志着某个驱动的分发例程(分发函数)因需要被其他的驱动程序进一步处理最终返回STATUS_PENDING状态。 VOID IoMarkIrpPending( IN OUT PIRP Irp ); 参数:Irp 将被标记为Pending状态的IRP
2009-10-09 12:15:00
4919
原创 IoSetCompletionRoutine函数
IoSetCompletionRoutine宏注册一个IO完成例程,这个完成例程将会在调用此函数的驱动的下一层驱动完成IRP指定的操作请求时被调用。 void IoSetCompletionRoutine( IN PIRP Irp, IN PIO_COMPLETION_ROUTINE CompletionRoutine, IN PVOID Cont
2009-10-09 01:40:00
8376
原创 send返回0解析
今天为了检测一下send的过程和closesocket如果同时出现是否会冲突,所以故意把send的缓冲区设置的很大(我设置的为2000000,还没有溢出int),但是发现不能正常收发数据,各自检测server和client,发现server可以接收到不全的数据,但是client的send函数却返回了0,看了一下MSDN,声明说:如果传给send的第三个参数len为0,则send会返回一个有效值0,
2009-07-31 09:40:00
8675
2
原创 日食
今天是日食了,没有在日全食的地段,这点我很遗憾,早上天气并不晴朗,以为即将错过,失去一丝期盼。8点一刻,突然醒来,因为即使是错过也要知道自己有过经过,手忙脚乱的起床,到院子看了一下,没有什么变化,依然是圆的,回屋打开电脑在瞬间完成了对日食准确时间的搜索,8:25分,我有点激动,还没有错过!这时已经20了,短短的几分钟我等待到了它的到来,实际我并不是感受它美丽的景象,我感觉这是与三个巨大的天体的一种
2009-07-22 09:52:00
710
转载 _beginthread还是CreateThread
转自:http://www.cpper.com/site/comments/beginthread_or_createthread/程序员对于Windows程序中应该用_beginthread还是CreateThread来创建线程,一直有所争论。本文将从对CRT源代码出发探讨这个问题。 I. 起因今天一个朋友问我程序中究竟应该使用_beginthread还是CreateThread,并
2009-07-21 17:22:00
689
原创 send和recv函数浅见
在弄完成端口时不得不面对这些问题,本来网络就是本瓶醋菜鸟,知道的东西很少,实际用起来真是有不少的阻力,拿书来看是来不及了,想找send和recv的源码,发现时dll和lib里的,经过一周的奋斗,对socket有点初步的了解了,先说一下个人浅见:在解释前首先做一下声明,不怀疑通信质量问题,也就是说只要是由相关硬件发给已连接的另一端的数据是一定可以到达另一端连接者的硬件的。下面:我认为se
2009-07-21 16:38:00
2060
1
原创 Socket向完成端口多次发送消息浅见
1. 同时发送多个WSARecv消息处理,多余的会有什么情况?使用代码测试,显示结果为全部返回错误997,表示都可以正常发出recv操作,且多个工作线程同时在检测此socket的多个recv消息,运行片刻立即关闭Client端,发现工作线程出现的异常,1个或2个工作线程中的closesocket函数调用失败,错误码为10038,因此要尽力避免对同一个socket向完成端口发送重复的同一
2009-07-18 10:48:00
6831
转载 I/O完成端口
初次使用完成端口,搜罗了一下资料,看到一个博客,不少的好文章,很全面,把作者文章的链接整理下来,就不再转了。Windows完成端口编程: http://hi.baidu.com/winnyang/blog/item/7bc9f6cfaa0d9e3af9dc61a2.htmlIOCP cleanup. (IOCP清理):http://hi.baidu.com/winnyang/blo
2009-07-12 23:42:00
804
原创 VS2005因错误设置目录引起的错误
正在编译...dllentry.cppC:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/include/winnt.h(222) : error C2146: 语法错误: 缺少“;”(在标识符“PVOID64”的前面)C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/
2009-07-12 22:44:00
2530
1
原创 脑自动处理机制——信息的自动搜索与自动提取(略谈)
首先闲谈一下,脑处理机制的复杂度用按类穷举的方法依然是不可能的,对此机制的模拟需要一种整合方法,而这个方法对类的划分特点为:不存在多种类别,对此方法而言仅一种类别,换句话说就是没有类别限制(这是相对性的,请不要钻角尖,因为我只需要各位明白我的意思),要适用于所有实体性物质。用实体建立的关联网络(实体关联网络)可以解决实体性物质的关联问题而无类别限制,但处理方式仍难以制定。这部分也就是如何驱动信
2009-07-10 22:29:00
742
原创 MFC消息映射的处理函数
过了几个月的时间对MFC又生疏了一些,近几天又想到一个问题,也不知道以前是不是注意过了,现在发来说一下,呵呵,牛人可别笑话。 在弄MFC消息映射的时候发现了消息处理函数的定义问题,比如说ON_WM_KEYDOWN()的处理函数的原型定义在了类中,但是这个函数的形参要是自主定义的就会有很多疑问了(像没有自主的调用步骤,没有通知系统如何传递参数)?所以我想这个函数一定要在MFC内部有一个原型的限制
2009-07-10 22:05:00
1031
原创 人在出生时大脑是不是什么都没有的0的思考
对于有些人的看法:人在出生时大脑为0,这一点我是极不认同的。这一点我的理解是:在出生时大脑至少存在本能及非条件反射,还有更重要的隐含的处理,这些处理就是大脑对一些接收到的外界环境刺激的处理,这些处理是使得人 具有发展出适应并改变环境的能力的 本源因素——意识 。最后归结为本能是大脑自带的,也就是预装的,并且正是 这些本能+人类社会 最终产生了后天的意识。谈到这里就必然引出一个问题:这些能力
2009-06-12 19:34:00
1071
原创 D3D矩阵变换函数整理与说明
矩阵变换矩阵的基本变换有三种:平移,旋转和缩放。平移:D3DXMATRIX *D3DXMatrixTranslation( D3DXMATRIX* pOut,//返回的结果 FLOAT x, //X轴上的平移量 FLOAT y, //Y轴上的平移量 FLOAT z) //Z轴上的平移量绕X轴旋转:D3DXMATRIX *D3DXMatrixRotationX( D3D
2009-06-02 15:50:00
1153
原创 我与CxImage
经过多日的痛苦挣扎终于征服了CxImage类库,在此谈谈具体方式。开始时我用的是cximage600_full,但是在按照配置弄完之后总是不成功出现很多link错误:Linking... Creating library Debug/Image.lib and object Debug/Image.exp cximage.lib(ximaraw.obj) : error LNK200
2008-10-01 22:47:00
5078
2
原创 void *的错误(error C2036: 'void *' : unknown size)
这个错误是void型指针引起的,如果是其他的类型应该不会出现这个错误,我的这个错误是因为对这个void *型的指针进行了偏移操作,来写入数据一些原代码如下:void *halfbi;int m=n=i=0;halfbi = GlobalAlloc(GHND, dwBmBitsSize/2);while(i{ memcpy(halfbi+m, lpbi+sizeof
2008-09-24 11:26:00
11426
转载 用VC进行COM编程,必须要掌握哪些COM理论知识
刚才上网,又找到一篇美文,图都有,太好了。。。用VC进行COM编程,必须要掌握哪些COM理论知识 我见过很多人学COM,看完一本书后觉得对COM的原理比较了解了,COM也不过如此,可是就是不知道该怎么编程序,我自己也有这种情况,我也是经历了这样的阶段走过来的。要学COM的基本原理,我推荐的书是《COM技术内幕》。但仅看这样的书是远远不够的,我们最终的目的是要学会怎么用COM去编程序
2008-07-29 20:05:00
798
bypass_virtual_protect
2012-04-25
SSDT HOOK检测源码包
2011-05-23
简易远控代码(适合初学者)
2009-10-05
MakeLine画曲线程序
2009-04-24
半旋转方式画正方形计算方法
2009-02-10
CxImage用法示例2(显示图像)
2008-12-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人