From 84461d151dbec137d61435567da488718104edf8 Mon Sep 17 00:00:00 2001 From: "18218461270@163.com" <18218461270@163.com> Date: Sat, 2 Aug 2025 15:41:05 +0800 Subject: [PATCH] update bomblab --- labs/bomb/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/labs/bomb/README.md b/labs/bomb/README.md index 6bedaef..1081aaa 100644 --- a/labs/bomb/README.md +++ b/labs/bomb/README.md @@ -15,7 +15,10 @@ void phase_1(char str[]) { 显然,输入应为 `Border relations with Canada have never been better.`。 ## Phase 2 -在这个 phase 中,我们看到编译器在处理循环时使用了奇怪的策略,这使得生成的汇编混乱并且难以理解。对此,我们选择出较为混乱的代码,调整指令的顺序并相应改变的跳转,使之符合原书中描述的几种形式。 +逆向工程循环的一些技巧: +- 框选出循环范围,将跳转指令的操作数由地址改为标号; +- 尝试移动整段代码,并修改相应的跳转指令; +- 最终使之符合任意一种通用策略。 在这里,我们将 `400f0a` 至 `400f3a` 部分整理如下: ```esm