update bomblab
This commit is contained in:
parent
eacaddd6d7
commit
84461d151d
@ -15,7 +15,10 @@ void phase_1(char str[]) {
|
|||||||
显然,输入应为 `Border relations with Canada have never been better.`。
|
显然,输入应为 `Border relations with Canada have never been better.`。
|
||||||
|
|
||||||
## Phase 2
|
## Phase 2
|
||||||
在这个 phase 中,我们看到编译器在处理循环时使用了奇怪的策略,这使得生成的汇编混乱并且难以理解。对此,我们选择出较为混乱的代码,调整指令的顺序并相应改变的跳转,使之符合原书中描述的几种形式。
|
逆向工程循环的一些技巧:
|
||||||
|
- 框选出循环范围,将跳转指令的操作数由地址改为标号;
|
||||||
|
- 尝试移动整段代码,并修改相应的跳转指令;
|
||||||
|
- 最终使之符合任意一种通用策略。
|
||||||
|
|
||||||
在这里,我们将 `400f0a` 至 `400f3a` 部分整理如下:
|
在这里,我们将 `400f0a` 至 `400f3a` 部分整理如下:
|
||||||
```esm
|
```esm
|
||||||
|
Loading…
x
Reference in New Issue
Block a user