看了你说的我都懂找基址,不是很懂。求详细解释

求寻找魔兽世界当前版本的内存基址技术-工具软件-猪八戒网
扫一扫,随时随地挑选人才和公司
全球知识工作者一站式工作平台
随时掌握一手咨询
求寻找魔兽世界当前版本的内存基址技术
参与此项目的服务商
等2位服务商参与了此项目
项目需求详情:
要教会我怎么寻找魔兽世界当前版本的各种内存地址、偏移和CALL,如(人物血量,坐标,地图,选NPC,选邮箱,自动行走等等)
QQ:8682729(注明猪八戒)
圆满完成的项目
进行中的项目eidolon8的专栏
PE格式详细讲解10 - 基址重定位
今天有一个朋友发短消息问我说“老师,为什么PE的格式要讲的这么这么细,这可不是一般的细哦”。
其实之所以将PE结构放在解密系列继基础篇之后讲并且尽可能细致的讲,不是因为小甲鱼没事找事做。
主要原因是因为PE结构非常重要,再说做这个课件的确是很费神的事哈。
在这里再次强调一下,只要是windows操作程序,其就要遵循PE格式,再说人家看雪的网址就是www.pediy.com。
简单的讲是可以,但是怕就怕有些朋友知识点遗漏了或者错误理解意思、不能深刻体会等,这样的效果是不好的~
所以,小甲鱼尽管这系列视频可能出得比较慢,但质量一定保证大家都能够接受。
建议:如果认为PE不重要,没关系,可以先学其他。
小甲鱼的文章永远放在这里,等你需要的时候再回过头来看就行。
小甲鱼PE详解之基址重定位详解(PE详解10)
这一节对于讲来研究病毒原理的研究影响比较大,大家务必要深入理解~
但是吧,咱的权威教材看雪的《加密与解密》在这一节的讲解上实在不给力,很多初学者看得云里雾里的。大家意见一致啵 ?!
为了让大家能够更容易的接受,小甲鱼决定通过自问 – 自答循环渐进的模式给大家讲解基址重定位的原理和应用。
问题一:什么是基址重定位?
重定位就是你本来这个程序理论上要占据这个地址,但是由于某种原因,这个地址现在不能让你霸占,你必须转移到别的地址,这就需要基址重定位。
打个比方:例如你现在计划在某某地方建一栋楼,但是有一天你收到上边的通知,这个地方政府临时要征用建公厕,所以这时候你就没辙,得去别的地方建啦~
问题二:为什么需要基址重定位?
其实这个问题看起来跟前边的有点重复不是?
但是有些朋友可能会这么说,小甲鱼老湿你的言论是可以,但是放在程序中,小甲鱼你上节课不是还说每个程序都让Windows 欺骗了吗 —— 每个程序觉得自己都完全占有 4GB的内存空间,何来地址被别的程序占据了呢?!
首先,能够提出问题的朋友都是值得表扬和鼓励的
但是,上节课我们谈了什么内容呢 ? 谈了导出表,为什么会出现导出表呢 ? 正是因为有DLL 这类破坏别人家庭幸福的“小三”的存在~
我们之前谈过,动态链接库它自己是没有占据任何似有空间的,都是寄生在应用程序的私有空间里边。那寄生在别人家里,睡在哪里就肯定不是
小三说了算啦,肯定要由主人决定不是?
所以,在小三的眼里,不用说,肯定永远都睡在大房,但客观事实告诉我们,经常只能住卧室~(有点扯远了,其实小甲鱼想说的是,基址重定位就是这么被需求的^_^)
问题三:我们需要对程序中的哪些语句(指令)进行基址重定位呢?
答:请先看下图
这是上节课我们用到的动态链接库 Counter.dll 文件,对其用W32Dasm 进行反汇编的截图。
我们分析下,有哪些语句是需要我们来进行基址重定位的呢 ?
(温馨提示:以下内容涉及一些汇编基础和windows基础,不懂的朋友可以参照视频教程。因为一般说话比打字容易,信息量也比较大~)
答案是 —— 但凡涉及到直接寻址的指令都需要进行重定位处理!(那什么是直接寻址? 咱在零基础入门学习汇编里边讲得很清楚啦,只要在机器码中看到有地址的,那就叫直接寻址……那有没有间接的? 肯定哈,间接的就是地址被间接的保存起来,例如存放在寄存器eax, 然后通过访问寄存器来获取地址,那就叫间接~)
那么我们再过头来看下图片,一眼就能扫出以下指令需要对其进行重定位:
inc dword ptr []
:1000102C FF
push dword ptr []
:1000103D A
mov eax, dword ptr []
dec dword ptr []
:1000104F FF
push dword ptr []
mov eax, dword ptr []
:1000106A FF
Jmp dword ptr []
那有些朋友可能会问了,类似于“:CFFFFFFF call 1000100C”的指令,为什么后边显示的是call + 地址。
而机器码却不包含地址信息呢? CPU神了? 莫非地址信息被加密了?
其实不是的,学过汇编的朋友不知道还记不记得,小甲鱼在讲call 原理的时候用了大部分时间在谈几种跳转,其中经常遇到的就是“地址+偏移”的形式。
那这就能有个说得通的解释了:CFFFFFFFh 事实上就是一个偏移地址,记得咱这是little-edition,转换过来就是FFFF FFCFh,也就是等于-31h。
那么1000103Dh – 31h == 1000100Ch,Perfect! ^_^
问题四:系统对一条指令进行重定位需要哪些信息?
我们还是拿上边那张图片来说事儿,我们说了上边的那些指令需要重定位。
现在就假设重定位后的基地址由原来的h 变为 h了,那么类似这样的语句:inc dword ptr [] 应该改成 inc dword ptr [] 。
注意,重定位的算法我们可以总结为:将直接寻址指令中的双字地址加上模块的实际装入地址与模块建议装入地址之差。
从上边的信息中我们看到,需要进行重定位需要三个因素:
1. 需要修正的地址(h)
2. 建议装入的地址(h)
3. 实际装入的地址(h)
问题五:这些信息哪些应该被保存在重定位表中?
聪明的我们可以发现:
1. 建议装入的地址在PE 文件头中已经定义了
2. 实际装入的地址在没有被装载器装入我们根本无从得知,也就是说这事天不知地不知我们不知只有装载器知道……
因此,我们可以得到的结论是:PE 文件的重定位表(Base Relocation Table)中保存的就是文件中所有需要进行重定位修正的代码的地址。
基址重定位结构表
IMAGE_BASE_RELOCATION STRUC
VirtualAddress
; 重定位数据开始的RVA 地址
SizeOfBlock
; 重定位块得长度
TypeOffset
; 重定项位数组
IMAGE_BASE_RELOCATION
VirtualAddress 是 Base Relocation Table 的位置它是一个 RVA 值;
SizeOfBlock 是 Base Relocation Table 的大小;
TypeOffset 是一个数组,数组每项大小为两个字节(16位),它由高 4位和低 12位组成,高 4位代表重定位类型,低 12位是重定位地址。
它与 VirtualAddress 相加即是指向PE 映像中需要修改的那个代码的地址。
IMAGE_REL_BASED_ABSOLUTE (0) 使块按照32位对齐,位置为0。
IMAGE_REL_BASED_HIGH (1) 高16位必须应用于偏移量所指高字16位。
IMAGE_REL_BASED_LOW (2) 低16位必须应用于偏移量所指低字16位。
IMAGE_REL_BASED_HIGHLOW (3) 全部32位应用于所有32位。
IMAGE_REL_BASED_HIGHADJ (4) 需要32位,高16位位于偏移量,低16位位于下一个偏移量数组元素,组合为一个带符号数,加上32位的一个数,然后加上8000然后把高16位保存在偏移量的16位域内。
IMAGE_REL_BASED_MIPS_JMPADDR (5) Unknown
IMAGE_REL_BASED_SECTION (6) Unknown
IMAGE_REL_BASED_REL32 (7) Unknown
输出表结构实例分析(具体过程将在视频中演示,这里不啰嗦啦~)
工具:PEinfo.exe, UltraEdit, W32DasmV10.0
解剖对象:Counter.dll
没有更多推荐了,查看: 16172|回复: 10
用ce找到的基址是动态的 如何改成静态基址。求大神指点!
头像被屏蔽
结帖率: (36/36)
用ce找到的基址是动态的 如何改成静态基址。求大神指点!
希望能有详细的答案。
懂CE,看的懂汇编的进来看下
http://bbs.125.la/thread--1.html
(出处: 精易论坛)
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,QQ: ,邮箱:@b.qq.com
Powered by
X3.2 揭阳市揭东区精易科技有限公司
粤公网安备 25后使用快捷导航没有帐号?
查看: 874|回复: 7
新人欢迎积分1 阅读权限1积分64精华0UID帖子金钱229 威望0
UID帖子威望0 多玩草0 草
求新武林外传2014年10月最新基址
请问武林外传的角色名的名称,职业,经验条的基址是什么???本人找不出来。。。
麻烦大家啦
新人欢迎积分1 阅读权限90积分26887精华0UID帖子金钱64540 威望12
凄凄复凄凄,嫁娶不须啼。
Lv.9, 积分 26887, 距离下一级还需 1113 积分
UID帖子威望12 多玩草7300 草
基址是啥?能吃吗?
新人欢迎积分1 阅读权限90积分27327精华0UID帖子金钱20510 威望3
你是我的小呀小苹果
Lv.9, 积分 27327, 距离下一级还需 673 积分
UID帖子威望3 多玩草1208 草
回答楼上,不能吃
总评分:&金钱 -50&
新人欢迎积分1 阅读权限115积分116702精华0UID帖子金钱116874 威望14
Lv.13, 积分 116702, 距离下一级还需 11298 积分
UID帖子威望14 多玩草5357 草
沙发问题+1
总评分:&金钱 -50&
新人欢迎积分1 阅读权限90积分27327精华0UID帖子金钱20510 威望3
你是我的小呀小苹果
Lv.9, 积分 27327, 距离下一级还需 673 积分
UID帖子威望3 多玩草1208 草
再回答楼上的,不能吃
总评分:&金钱 -50&
沙滩的一缕阳光
新人欢迎积分1 阅读权限1积分526精华0UID帖子金钱1856 威望-1
UID帖子威望-1 多玩草0 草
鸡汁不好吃
新人欢迎积分1 阅读权限70积分9389精华0UID237637帖子金钱36059 威望2
Lv.7, 积分 9389, 距离下一级还需 611 积分
UID237637帖子威望2 多玩草785 草
目测是想问那句。网站你懂的
新人欢迎积分1 阅读权限125积分16161精华1UID2447142帖子金钱2823 威望0
UID2447142帖子威望0 多玩草1239 草
楼主,论坛禁止讨论高科技相关话题。本帖关闭
科普:被人捅了一刀怎么办?1.不要拔刀,让它插着堵住伤口
2.如果捅你的人还在,勇敢拔刀,插他3.如果你真的插了他,记得把刀拔了,让他失血过多4.不要忘记,把拔了的刀插回自己的伤口,以免失血比他快5.完成上面的步骤,如果你还没死,其实你可以选择打个电话什么的6.你在想打给谁是吗?
7.靠,当然是120!8.打完了之后,你可以看看对方是否还没死,没死的话你可以继续重复2-4步骤9.等待救护人员,最好别动,移动容易加快血液流失10.等太久无聊,拿出手机刷刷空间微博玩玩贴吧,转移注意力,那样没那么痛。
爱蜂蜜的小维尼
助人为乐奖
助人为乐奖
我是一只羊咩咩
打开任意门来到你身边
365天!天天有你
连续签到1年即可获得
多玩写手勋章
多玩写手勋章
美图特工队
美图特工队
夏天纪念勋章
冬天纪念勋章
秋天纪念勋章
活动奖励勋章
活动奖励勋章
阳光热情勋章
阳光热情勋章
话题王小红花
话题王小红花
狗年新春勋章
参加2018狗年论坛相关APP活动有机会获得
新年汪汪旺旺!
2018论坛APP年度盛典!
2014论坛年度勋章
参与论坛年度活动发放
2015论坛年度勋章
放肆青春,就要多玩
猴年新春勋章
猴年大吉,猴年行大运!
英雄联盟赛事勋章
英雄联盟赛事勋章
多玩2013年度庆典
快来参与2013年度活动吧!
解答员勋章
解答员勋章
武林功勋勋章
武林功勋勋章
需要金钱:1100
手机盒子客户端点击或扫描下载
Powered by帖子135&精华0&积分166&豌豆11 &阅读权限30&在线时间125 小时&注册时间&最后登录&
求教高手和大侠,请问地图名基址怎么查,人物武器名和持久怎么查???
本帖最后由 zhanglangzhang 于
14:57 编辑
求教高手和大侠,请问地图名,人物武器名、武器持久、背包里物品名、物品持久怎么查基址,水平菜,请高人来指点下,我用CE查不出来,输入中文找出来的不正确,转换成16进制又找不到。
物品持久已经解决,怎么找地图名还需高手来指点
帖子135&精华0&积分166&豌豆11 &阅读权限30&在线时间125 小时&注册时间&最后登录&
哪位知道方法来说一下啊,怎么找当前地图地址,用CE找了好几天,就是弄不出来,水平太菜了
帖子452&精华0&积分474&豌豆0 &阅读权限30&在线时间147 小时&注册时间&最后登录&
先学C语言吧。
帖子135&精华0&积分166&豌豆11 &阅读权限30&在线时间125 小时&注册时间&最后登录&
这个和学C好象没关系吧,C俺也稍懂几句
帖子135&精华0&积分166&豌豆11 &阅读权限30&在线时间125 小时&注册时间&最后登录&
三哥三姐,女孩,坛子里的高手都来看看,帮帮我呀!!
帖子452&精华0&积分474&豌豆0 &阅读权限30&在线时间147 小时&注册时间&最后登录&
找到了没有?
帖子132&精华0&积分181&豌豆0 &阅读权限30&在线时间44 小时&注册时间&最后登录&
高手 是要自己做SF么?
帖子135&精华0&积分166&豌豆11 &阅读权限30&在线时间125 小时&注册时间&最后登录&
求教高手和大侠,请问地图名,人物武器名、武器持久、背包里物品名、物品持久怎么查基址,水平菜,请高人来指点下,我用CE查不出来,输入中文找出来的不正确,转换成16进制又找不到。
物品持久已经解决,怎么找地 ...
zhanglangzhang 发表于
地图名,人物名看了&高手&的源代码后能读出来了,但用CE具体怎么查还是没整出来,下一步想知道怎样判断当前地图是否有灰名/黄名/红名,判断人物周围怪物,期待高手来帮忙啊,希望有研究传奇经验的朋友也出来分享一下成果
帖子1&精华0&积分1&豌豆0 &阅读权限10&在线时间0 小时&注册时间&最后登录&
装备持久是怎么找的?????告诉下方法,我可以告诉你找地图
[通过 QQ、MSN 分享给朋友]

我要回帖

更多关于 你说的我都懂 的文章

 

随机推荐