首页
社区
课程
招聘
请帮我翻译几句代码
发表于: 2011-11-25 20:44 4787

请帮我翻译几句代码

2011-11-25 20:44
4787
我在看别人写的驱动,我没学过C++,自己一个词一个字的百度找MSDN翻译,但是有几个地方实在搞不懂,也百度不到,请帮忙翻译一下
         *((ULONG*)Address) = (ULONG)MyNtOpenProcess
         请问ULONG*是什么意思?  (ULONG*)Address和(ULONG)Address有什么不同?为什么前面一个括号有*号后面一个括号又没有呢?

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

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
Address 指向的地址等于 MyNtOpenProcess
应该是个HOOK
应该是个 SSDT HOOK NtOpenProcess

给分
2011-11-25 20:48
0
雪    币: 276
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不好意思哈,我还是没弄明白,我想问ULONG*是什么意思?
如果按照你的解答为什么不直接写成*Address=MyNtOpenProcess ?
2011-11-25 21:06
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
C语言都还没弄明白  就学人弄驱动了
2011-11-25 21:10
0
雪    币: 276
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这也是我学习C语言的一种方式,有何不可的?
2011-11-25 21:18
0
雪    币: 202
活跃值: (69)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
Address的定义应该是这样的
PVOID Address;
(ULONG*)Address //转换成ULONG的指针
(ULONG)MyNtOpenProcess;//MyNtOpenProcess是函数,意思就是函数的地址转换成ULONG
也就是用Address指针指向MyNtOpenProcess函数
2011-11-25 21:48
0
雪    币: 120
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
*((ULONG*)Address) = (ULONG)MyNtOpenProcess

MyNtOpenProcess 是一个指针,这个指针就是指向MyNtOpenProcess函数的首地址的。
(ULONG)MyNtOpenProcess 将这个指针强制转换成一个ULONG值,现在你可以把它当成一个普通的ULONG值了来处理了,比如加减乘除什么的。当然这里的转换只是起一个过渡作用。

Address  这个应该也是一个函数的指针,但它是什么类型的我们不知道,你想为它赋值,就需要强制转换为一个你准备接收什么类型的类型。
(ULONG*)Address这句就是将这个函数的指针强制转换为一个ULONG型的指针 ULONG*。

*((ULONG*)Address)  然后再加个括弧和*了,就是取这个ULONG指针内的值了。

*((ULONG*)Address) = (ULONG)MyNtOpenProcess 然后将前面(MyNtOpen.....)强制转换的ULONG值放到后面的*((ULONG*)...) 这个地址中去。。这样的话,Address这个指针内,指向的地址就是MyNtOpenProcess了。。
2011-11-25 23:49
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
C语言的指针标准表达式

还什么C++!!!
对了,还有类型转换
2011-11-26 02:23
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
请问ULONG*是什么意思?  (ULONG*)Address和(ULONG)Address有什么不同?为什么前面一个括号有*号后面一个括号又没有呢?

(ULONG*)Address 是将Address 转换为 ULONG的指针类型
(ULONG)Address  是将 Address 转换为ULONG 类型。
*((ULONG*)Address) = (ULONG)MyNtOpenprocess
是首先将MyNtOpenprocess 转为为一个ULONG
然后在赋值给 Address 所指向的变量。这里Address 一定是个指针
2011-11-26 11:30
0
雪    币: 318
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
学习了。楼上的几个说的都很明了
2011-11-27 02:03
0
雪    币: 285
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
ULONG*)Address和(ULONG)Address     //有什么不同?为什么前面一个括号有*号后面一个括号又没有呢? 


一个是ULONG类型;一个是ULONG类型的指针,怎么可能相同。。。。。。
2011-11-28 13:21
0
游客
登录 | 注册 方可回帖
返回
//