网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月28日
漏签
0
天
ce吧
关注:
195,826
贴子:
3,798,723
看贴
图片
吧主推荐
玩乐
1
2
3
4
下一页
尾页
98
回复贴,共
4
页
,跳到
页
确定
<返回ce吧
>0< 加载中...
扫盲第一弹,基址到底是什么?
只看楼主
收藏
回复
tgodq
万千瞩目
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
最近看贴吧,发现好多人,只会用大佬开源,但是基本概念完全搞不懂。最基本的基址概念,也搞不清楚是什么东西。
更多的是有人自己也不是很清楚,但是却来顺手发帖带偏一群小白
今天我就来讲讲,基址到底是什么,偏移到底是怎么来的
下面是一个虚构的示例程序结构
送TA礼物
IP属地:云南
1楼
2018-08-10 01:30
回复
tgodq
万千瞩目
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
可以看到,我们定义了一个人物类,里面包含了背包指针,装备指针,以及一些属性
这个就是今天讲解的大前提,现在,我们就来具体看看,偏移的来历,以及怎么一步步变成我们需要的数值
IP属地:云南
2楼
2018-08-10 01:32
回复(9)
收起回复
tgodq
万千瞩目
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
首先,我们定义人物指针为全局变量
Character * character = new Character;
一般来说,定义为全局变量后,编译之后,系统分配的内存地址,即是固定地址,也就是我们通常所说的基质。
在这里,假设系统分配的地址为 0x10000;
那么,在这个示例里面,人物基址 = 0x10000,但是,0x10000这个地址,却不是人物类的地址。
那么,他是什么呢?答案是指针,通俗点说,就是0x10000这个地址,是一个指针,指针存放的内容,指向了人物类的地址
IP属地:云南
3楼
2018-08-10 01:39
回复(6)
收起回复
tgodq
万千瞩目
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
由此可得,人物类的地址 为 *(int*)0x10000,也就是易语言的 读内存整数(0x10000)
现在就来看看,偏移到底是什么来的。现在我们读取了0x10000的内容,也就是人物类的内存地址。我们接着看看人物类的结构
Bag * bag; //背包指针
Equipment * equipment; //装备指针
int health; //血量
int money; //金币
int level; //等级
假设我们是32位程序,那指针为4字节,可以得到如下偏移
Bag * bag; //0
Equipment * equipment; //4
int health; //8
int money; //12
int level; //16
现在我们已经计算出了偏移,那如果我们要获取血量,只需读之前获取的地址 + 8的内存地址即可
易语言的话,也就是 读内存整数(读内存整数(0x10000) + 8);
就这样,我们就获取了血量
IP属地:云南
4楼
2018-08-10 01:45
回复(8)
收起回复
男
神
初出茅庐
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
**,大佬**,666
来自
Android客户端
5楼
2018-08-10 01:51
回复
收起回复
男
神
初出茅庐
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
真大佬来了
来自
Android客户端
6楼
2018-08-10 01:51
回复(2)
收起回复
tgodq
万千瞩目
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
那么,如果我们要获取背包物品数量怎么办,只需重复之前的步骤,读取背包的指针内容,再读取即可
在这个示例程序里面,背包指针偏移为0,也就是 读内存整数(读内存整数(0x10000) );
背包物品偏移为0,再读取上面的获取的地址一次即可。
基址 和 偏移的概念,其实就这么简单
下一篇讲解内容,让你完全看懂解密函数,到底是怎么解密的
IP属地:云南
7楼
2018-08-10 01:52
回复
收起回复
noelemahcz
德高望重
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
http://tieba.baidu.com/p/5530062070
IP属地:黑龙江
来自
iPhone客户端
8楼
2018-08-10 02:03
回复(1)
收起回复
秋雨
德高望重
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
好像会用一些汇编和了解PE文件大致是怎么回事的的基本都就知道是怎么回事,简单的将就是编译时候就初始化化过的全局变量。一般情况是指针。指向一段堆内存、偶尔是数组。也就是在函数外部的变量和satic 标记的变量
IP属地:四川
9楼
2018-08-10 02:51
回复(3)
收起回复
知煜数据定制
称霸一域
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
可以
IP属地:广西
来自
iPhone客户端
10楼
2018-08-10 02:53
回复
收起回复
最爱暖颜
略显名气
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主可以教下我吗,发下你能教我什么,我付学费,q:728895062
IP属地:江苏
来自
Android客户端
11楼
2018-08-10 03:29
回复(2)
收起回复
tgodq
万千瞩目
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
明天继续第二弹科普,带你看懂解密函数,告别一堆看不懂的置入代码
IP属地:云南
12楼
2018-08-10 03:35
回复
收起回复
8398363qq
德高望重
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
学习LE !!
13楼
2018-08-10 06:42
回复
收起回复
Hzy园园
初出茅庐
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
大佬66666
IP属地:湖北
14楼
2018-08-10 09:52
回复
收起回复
oyxbl
一方大佬
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个可以理解,
要是自己对照反汇编代码来写的话,
同一个功能可能有几十种写法
就看怎么处理堆栈平衡了
IP属地:湖北
15楼
2018-08-10 11:55
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
于东来回应近期彩礼争议
2673270
2
左雾让scout还钱
2330614
3
利物浦2比0皇马
2265872
4
Steam秋促买什么
1821042
5
红米K80系列值得买吗
1517542
6
曝教练Daeny加入iG
1279850
7
黑神话吧寻找TGA年度锦鲤
1046832
8
澳众议院通过未成年人社媒禁令
763439
9
姆巴佩15次丢失球权
762916
10
马斯克反对《宣誓》加性别代词
655662
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示