ni 一下,走到00ab54d6 mov r0, r10后,可以看到r2的值,但不知道是什么东西。。。。求大神指点
这个场景很典型,所以书的第二版里反复讲到了这种场景的处理情况。这里先剧透一下,对于这里的
ldr r0, [sp, #0xb0]
,你的下一步应该是找到一个
str rX, [sp, #0xb0]
。具体方法是在#0xb0上按“x”查看其交叉引用,
str rX, [sp, #0xb0]
应该是其中之一
多谢狗神指点!
不过我尝试了以下方法都搜索不任何内容。。。
选中#0xb0,按"X"键,无内容。
选中[sp,#0xb0] ,按"X",无内容.
选中sp,#0xb0,按"X",无内容。。
如下图
哦,我发现了一个问题,Hopper没有显示var而IDA显示了:
我说的这种方法仅适用于var_20,不适用于数值。这个问题我回头跟Hopper的作者发个邮件说一下,看看能不能解决
嗯!谢谢!!我装个虚拟机 弄个IDA试试
为啥要装虚拟机?IDA支持各种平台啊
狗神,我下载了个demo版的 mac IDA.
我选中var_38然后按"X"键,并没有出现str rx,[sp,#xxxx]的指令,如下图
还有函数名怎么都是sub呀?是没有分析完的原因吗?等分析了就可以看到真正的函名了?
如果是这样的话,那就说明某一个地方出现了
str rx, [sp', #xxxx]
类似的指令,注意,sp变化了,所以你要从
ldr r0, [sp, #0xb0]
开始倒推,找到每一个形如
str rx, [sp', #xxxx]
的指令,然后看sp +0xb0与sp’ + 0xxxxx是否相等,如果相等,这里就是写入的地方。这个场景会在第2版第十章出现,你可以先在自己的例子里走一遍看看,如果不懂,再看书