首页
社区
课程
招聘
[旧帖] [邀请码已发]OldServiceAddress = (ULONG)Address + 0x7A*4 ... 0.00雪花
发表于: 2009-7-23 08:59 1730

[旧帖] [邀请码已发]OldServiceAddress = (ULONG)Address + 0x7A*4 ... 0.00雪花

2009-7-23 08:59
1730
呃,按愿意写的话,标题貌似放不下,帖子里做说明吧

首先说一与,我是一个彻底的初学者,最近比较闲,一个多星期前突然对软件破解起了兴趣,所以就开始找这方面的资料学习,学之前甚至连C语言都不了解,所以才会出现了现在所遇到的这个问题,熟悉C的人,肯定是不会有了,不过还是给不熟悉的人提个醒,免的以后遇到同样的问题却不知道怎么回事!

前两天看的堕落天才的 SSDT Hook的妙用-对抗ring0 inline hook  于是想要试着按他的办法写一下,也好加深一下印象

在COPY到
  ULONG  Address;
  Address = (ULONG)KeServiceDescriptorTable->ServiceTableBase + 0x7A * 4;//0x7A为NtOpenProcess服务ID
OldServiceAddress = *(ULONG*)Address;//保存原来NtOpenProcess的地址

 这个地方的时候,突然想给他改种写法,反正他不就是先取ServiceTableBase指针地址然后再加上个0X7A*4吗,我就给他分开来写,先获取指针,然后下一步再去找NtOpenProcess的地址指针
于是改为
 PULONG Address = (PULONG) KeServiceDescriptorTable->ServiceTableBase ;
   OldServiceAddress = *((PULONG)(Address  + 0x7A * 4));//保存原来NtOpenProcess的地址

  按我的想法,这两种写法得到的结果应该是完全一样的
 结果BUILD后,拿到虚拟机上加载,运行  然后直接机器死机!
 用windbg下断点调试,跟踪到这一步,查看Address的值,没有问题,就是KeServiceDescriptorTable->ServiceTableBase 的地址,跟堕落天才的那种写法,追到这步时所得到的地址完全一样啊,可为什么我的就会死机,他的就没事呢?
 带着三分不信邪七分不服气的想法,又改了一种写法
 OldServiceAddress = *(PULONG)((ULONG)Address  + 0x7A * 4);
   这次再编译运行后,这下得到的结果就是正确的了。
 仔细查看这两种方法的不同,然后又重新看了下C教程里关于指针加法的概念,终于发现 第一种写法上 Address是一个指针变量,他指向的类型是ULONG型,每个ULONG型占用4个节字,而对这个指针+1其实内存地址会进行+4的操作,=0x7A*4 实际上内存地址是增加了0x7A*4*4,得到的结果当然不正确了。。。

 其实这个问题属于基本的常识性问题,有点经验的人肯定直接就能发现问题所在,我因为这是第一个实际上手的例子,所以出现了这个情况,不过借此机会到是让我更深刻的理解了对指针变量的操作方法,算是一个小小的进步吧
 
 写这个就是为了提醒像我一样的新手,可不要再犯同样的错误,不然蓝屏死机你都不知道是咋回事,哈哈

 第一次发表原创内容,写的乱七八糟的,大家就凑合着看吧,版主兄弟要是看着合适,给俺来个邀请码吧,实在是有很多问题想去别的区里发发问,找找答案

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 81
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是一个得注意的细节,我给顶一个!
2009-7-23 13:37
0
雪    币: 81
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
但想要邀请码我看还差很多。
2009-7-23 13:38
0
雪    币: 77
活跃值: (17)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
嘿嘿
要得到要不得我不在乎
但要是不要,就太对不起自己打这半天字了,哈哈哈
2009-7-23 14:02
0
雪    币: 370
活跃值: (52)
能力值: ( LV13,RANK:350 )
在线值:
发帖
回帖
粉丝
5
学习了 谢谢你的分享
2009-7-23 17:46
0
雪    币: 77
活跃值: (17)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
多谢moonife的慷慨赠送

在此向各位没有邀请码的朋友说一声:只要你肯分享你自己的经验,获得邀请码并不困难,加油
2009-7-27 15:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢你的分享
2009-8-14 08:51
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
新手学习~~~学习~~~~~~·
2009-8-15 02:44
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
又学到东西了
2009-8-15 08:13
0
雪    币: 85
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
还真没注意过这个问题。谢谢。
2009-8-15 10:58
0
游客
登录 | 注册 方可回帖
返回
//