TC官方合作论坛
标题:
已知基址+偏移,怎样在TC编辑框中输出该地址的值
[打印本页]
作者:
swxsq
时间:
2017-4-15 19:23
标题:
已知基址+偏移,怎样在TC编辑框中输出该地址的值
//008afd54+4+10a4
var 基址=#008afd54
var 偏移1=#4
var 偏移2=#10a4
在TC中是怎样相加的?又是怎样输出的,谢谢!
作者:
剑仙十号
时间:
2017-4-16 18:28
本帖最后由 剑仙十号 于 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
本帖最后由 剑仙十号 于 2017-4-16 20:33 编辑
原理:
汇编语言中讲到,
每一个有效的内存地址,都对应着一个内存数值。
一级内存地址 里面的值 + 下一级偏移值 = 下一级内存地址。
//
关键词是:地址的值 + 偏移值 = 新的地址。
读取这个新地址,又可以得到新地址的值。
作者:
剑仙十号
时间:
2017-4-16 20:31
本帖最后由 剑仙十号 于 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
对于一道题目,既要学会顺推,顺着解。
也要学会逆着推,逆着解答。
有些同学只会顺推理,不会逆推理,这个题目成了难题。
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1