首页
社区
课程
招聘
[原创]工作里的各种操蛋需求系列:做一个私有化HandleTable
发表于: 2012-9-4 03:56 7166

[原创]工作里的各种操蛋需求系列:做一个私有化HandleTable

2012-9-4 03:56
7166
上周和这周的工作都较忙,整天很困,但是我一到周末就整个人轻松起来了。
这一周来,一直在与某种操蛋需求进行战斗:
0.自建ObjectType(ObCreateObjectType)
1.自建私有HandleTable(ExCreateHandleTable)
2.往私有HandleTable里插入某些私有Object的Handle(ExCreateHandle)
3.查询Handle的时候需要从私有handleTable把Object找出来(ExMapHandleToPointer)
4.某些时候需要遍历私有HandleTable找寻特殊的object对应的Handle(ExEnumHandleTable)

其实0,1,2,3都很容易实现,甚至非常容易弄好。对4一开始我也觉得很容易,但是后来发现自己太天真了
工作完成后在win7,winxp上跑的非常顺利,但是到了win8直接开始随机地址蓝屏。
调试发现是堆栈的问题....

在win8之前的系统下:
EnumHandleTable的Callback形态是这样的:
typedef BOOLEAN (*EX_ENUMERATE_HANDLE_ROUTINE)(
    IN PHANDLE_TABLE_ENTRY HandleTableEntry,
    IN HANDLE Handle,
    IN PVOID EnumParameter
	);

要继续枚举就返回FALSE,返回TRUE则停止枚举

经过惨烈的客户蓝屏事件,不难发现Win8下的样子不是这样的,它的参数变了
typedef BOOLEAN (*EX_ENUMERATE_HANDLE_ROUTINE)(
    IN PHANDLE_TABLE HandleTable,
    INOUT PHANDLE_TABLE_ENTRY HandleTableEntry,
    IN HANDLE Handle,
    IN PVOID Context
	);


PS:
求捐助,求赞助,求投资,欢迎联系QQ:86879759
欲购买 AntiGameProtect v3.0 完整代码 也欢迎联系。
qq技术扯淡群1:171797360
qq技术扯淡群2:1748876
yy技术扯淡频道:80252844

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 615
活跃值: (530)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
不多说了,大神能发贴,就没有不顶的理由。薄利多销呀,10元钱得当成七元来赚,这样才能赚得更多。
2012-9-4 06:22
0
雪    币: 673
活跃值: (278)
能力值: ( LV15,RANK:360 )
在线值:
发帖
回帖
粉丝
3
深夜发帖 顶一下吧 vxk要注意身体啊 老熬夜可不好啊
2012-9-4 07:33
0
雪    币: 8599
活跃值: (5065)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
想购买AntiGameProtect源码,但是自己水平有限害怕看不懂,白买了!
2012-9-4 09:05
0
雪    币: 107
活跃值: (326)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
血的教训....................................学习..
2012-9-4 09:14
0
雪    币: 1905
活跃值: (1537)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
我还以为又放血了。。。
2012-9-4 09:34
0
雪    币: 2177
活跃值: (2045)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
7
前人的经验心得也是好的,以后可以少走弯路。
2012-9-4 09:44
0
雪    币: 8674
活跃值: (3848)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
想购买AntiGameProtect源码,但不知道自己的人民币够不够?
2012-10-18 22:41
0
游客
登录 | 注册 方可回帖
返回
//