首页
社区
课程
招聘
关于地址重定位的代码如何验证
发表于: 2010-2-17 11:23 4806

关于地址重定位的代码如何验证

2010-2-17 11:23
4806
一段代码可以用求md5之类来验证,可是如果代码基址一变,代码中的绝对跳转指令中包含的数据也就变啦,随之代码的验证和也就错啦,这样的代码如何验证,哪儿能找到代码的跳转地址之类信息

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
2
不太明白你想问什么
2010-2-17 12:28
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
比如说,jmp 0x43123124语句,在基址0x40000000下是这样,
如果基址变成0x30000000,就会变成jmp 0x33123124,这样最后的代码就变啦。代码验证也就无从谈起
2010-2-17 13:04
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
4
代码会变吗?不一定吧
2010-2-17 13:14
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
重定位嘛,搜索以前的旧帖,有重定位的补丁代码,刚我也没找到。
2010-2-17 14:17
0
雪    币: 450
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
一般情况下,程序若是正常运行,而不是被加载到其它进程空间中,程序的默认基址0x00400000是不会被任何模块使用的,故程序的基址就是默认基址,因而大多数的EXE程序是没有重定位节的,也就不存在你说的重定位问题~
若是程序被加载到其它的基址上,还需要自验证,当然是必须拒绝执行的...
2010-2-17 14:57
0
雪    币: 808
活跃值: (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
自己写的程序就重定位好了。。
2010-2-17 15:57
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
如果你编写的是dll,那就是如吃
2010-2-17 18:40
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
9
1. 改成文件校验
2. 跟据.reloc, 会被重定位的地方不参于MD5
2010-2-17 18:53
0
游客
登录 | 注册 方可回帖
返回
//