TC官方合作论坛

 找回密码
 立即注册
查看: 1278|回复: 4

[问题] 已知基址+偏移,怎样在TC编辑框中输出该地址的值

[复制链接]
发表于 2017-4-15 19:23:28 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
//008afd54+4+10a4

var 基址=#008afd54
var 偏移1=#4
var 偏移2=#10a4

在TC中是怎样相加的?又是怎样输出的,谢谢!


回复

使用道具 举报

发表于 2017-4-16 18:28:09 来自手机 | 显示全部楼层
本帖最后由 剑仙十号 于 2017-4-16 20:30 编辑

在TC中是怎样相加的?又是怎样输出的,谢谢!

var 基址值, 地址1值, 地址2值
基址值 = 读内存**位(基址)
地址1值 = 读内存**位(基址值+偏移1)
地址2值 = 读内存**位(地址1值+偏移2)
traceprint(地址2值)

var 基址值, 地址1值, 地址2值
基址值 = 读内存**位(基址)
地址1值 = 读内存**位(基址值+偏移1)
地址2值 = 读内存**位(地址1值+偏移2)
traceprint(地址2值)

//地址1=基址值+偏移1
//地址2=地址1值+偏移1

回复 支持 反对

使用道具 举报

发表于 2017-4-16 20:31:03 来自手机 | 显示全部楼层
本帖最后由 剑仙十号 于 2017-4-16 20:33 编辑


原理:
汇编语言中讲到,
每一个有效的内存地址,都对应着一个内存数值。
一级内存地址  里面的值 + 下一级偏移值 = 下一级内存地址。
//
关键词是:地址的值 + 偏移值 = 新的地址。
读取这个新地址,又可以得到新地址的值。

回复 支持 反对

使用道具 举报

发表于 2017-4-16 20:31:53 来自手机 | 显示全部楼层
本帖最后由 剑仙十号 于 2017-4-16 20:33 编辑


其实这个方法,还可以逆推,逆着用。
用来找基址是手到擒来的。
=======================================================
操作1:查找数值,
可以得到最下层的动态地址。
.
双击动态地址,添加到操作栏。右键,“查找是什么改写了这个地址。”
这样可以查找到(地址1的值+偏移2#10a4)
=======================================================
操作2:方法同操作1。
勾选十六进制数,查找“地址1的值”,
可以得到地址1。这一步会出现3--4个地址1,要挑选最有可能的那个,测试下。
也可以每个都测试一次。
.
双击地址1,添加到操作栏。右键,“查找是什么访问了这个地址。” 记住,只有操作1选择“改写”,其它操作步骤都是选“访问”。
.
这样可以查找到(基址的值+偏移1#4)
=======================================================
操作3:方法同操作1。
勾选十六进制数,查找“基址的值”,
可以得到绿色的地址。
绿色的地址,就是基地址#008afd54。


回复 支持 反对

使用道具 举报

发表于 2017-4-16 20:36:35 来自手机 | 显示全部楼层

对于一道题目,既要学会顺推,顺着解。
也要学会逆着推,逆着解答。
有些同学只会顺推理,不会逆推理,这个题目成了难题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-9-28 16:53 , Processed in 0.039271 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表