原文中文,约35600字,阅读约需85分钟。
📝
内容提要
这篇文章详细记录了在Kali GNU/Linux环境下进行的“炸弹”程序解题过程。通过反汇编和调试,作者分析了程序的字符串比较、循环、跳转表、递归和链表等阶段,最终得出了一系列输入答案以成功拆除炸弹,并提到了一些编程技巧和调试工具的使用。
❓
Q&A
在Kali GNU/Linux环境下如何拆除炸弹程序?
通过反汇编和调试,逐步分析每个阶段的输入要求,最终得出正确答案。
phase_1的正确输入是什么?
phase_1的正确输入是"Crikey! I have lost my mojo!"。
phase_2需要输入什么样的数字?
phase_2要求输入六个数字,满足条件a[0]+1=a[1],a[1]+2=a[2],依此类推,可能的答案为1 2 4 7 11 16。
phase_3的跳转表如何工作?
phase_3使用跳转表,根据输入的第一个数字进行跳转,正确答案为0 b 624,1 x 813,2 u 140,3 p 265,4 q 863,5 o 997,6 q 224,7 d 840。
phase_4的递归函数func4的输入要求是什么?
phase_4要求输入d2为2、3或4,得出d1为33*d2,可能的答案有66 2,99 3,132 4。
secret_phase的正确输入是什么?
secret_phase要求输入的字符串为"DrEvil",并通过fun7函数的递归计算,得出答案为107。
🏷️