我目前正在努力解决微腐败CTF中的河内问题。该CTF专注于MSP430系列(RISC,16位)。
我偶然发现以下几行:
445c: c443 fcff mov.b #0x0, -0x4(r4)
.
.
.
4472: 5f44 fcff mov.b -0x4(r4), r15
Wich包含引用(r4)前面的负操作数的移动指令。我假设这将指向r4中存储的内容之前的寄存器(前面有两个字),但是从内存转储来看,这种假设似乎是不正确的。
我使用https://www.ti.com/lit/ug/slau049f/slau049f.pdf作为参考,第3-52页是对mov.b的参考。
请准确填写此处发生的情况,或者给我一些关键字进行搜索。
任何帮助表示赞赏!
PS:请不要破坏如何解决此阶段,我想自己想办法。谢谢!
正如Peter Cordes在评论中指出的那样,我最初的想法是正确的。(即使措辞不正确)
存储在内存地址中的值等于r4中存储的值加上偏移量-4的总和,然后通过 寄存器加-4(偏移量)来递减并存储在r15中。就是这样。
例:
如果
r4 = 0x43FC和0x43F8 = 0xAB
指令
mov.b -0x4(r4), r15
将导致值0x43FC-0x4 = 0x43F8
在此地址处,将存储0xAB。
结果:
r15 = 0xAB
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句