Cách Giải chung của các bomb nhị phân (binary) từ phase 1 -2
hiện tại mình vẫn chưa biết giải phase 2 như nào mong chỉ bảo
lập trình
Bài trả lời mình có 2 ý:
1. Bạn trình bày câu hỏi tối nghĩa quá, lần sau bạn nên trình bày rõ ràng hơn về đề bài, chứ thế này rất khó hiểu cho người đọc.
2. Theo mình hiểu bài của bạn là binary như URL bên dưới gửi.
Binary này được viết trên C. Bạn có thể dùng IDA với Hexray để dễ nhìn mã giả.
Mã giả bài này như sau:
Đoạn mã này yêu cầu nhập vào 6 chữ số. Chữ số đầu tiên là 1, 5 số sau mỗi số tăng theo thứ tự: ** num = số_trước * (index + 1) **
Kết quả bạn cần nhập để thỏa là: **1 2 6 24 120 720**
Kết quả sau khi nhập:
// Lần sau đặt câu hỏi cẩn thận hơn nhé.
int __cdecl phase_2(char *s)
{
int result; // eax
int v2[6]; // [esp+Ch] [ebp-1Ch]
int i; // [esp+24h] [ebp-4h]
read_six_numbers(s, (int)v2);
result = v2[0];
if ( v2[0] != 1 )
explode_bomb();
for ( i = 1; i <= 5; ++i )
{
result = v2[i - 1] * (i + 1);
if ( v2[i] != result )
explode_bomb();
}
return result;
}
{
int result; // eax
int v2[6]; // [esp+Ch] [ebp-1Ch]
int i; // [esp+24h] [ebp-4h]
read_six_numbers(s, (int)v2);
result = v2[0];
if ( v2[0] != 1 )
explode_bomb();
for ( i = 1; i <= 5; ++i )
{
result = v2[i - 1] * (i + 1);
if ( v2[i] != result )
explode_bomb();
}
return result;
}
▶ ./bomb
Welcome to my fiendish little bomb. You have 6 phases with
which to blow yourself up. Have a nice day!
When I get angry, Mr. Bigglesworth gets upset.
Phase 1 defused. How about the next one?
1 2 6 24 120 720
That's number 2. Keep going!
Welcome to my fiendish little bomb. You have 6 phases with
which to blow yourself up. Have a nice day!
When I get angry, Mr. Bigglesworth gets upset.
Phase 1 defused. How about the next one?
1 2 6 24 120 720
That's number 2. Keep going!
Nội dung liên quan
Nguyên Dũng
Bài trả lời mình có 2 ý:
1. Bạn trình bày câu hỏi tối nghĩa quá, lần sau bạn nên trình bày rõ ràng hơn về đề bài, chứ thế này rất khó hiểu cho người đọc.
2. Theo mình hiểu bài của bạn là binary như URL bên dưới gửi.
Binary này được viết trên C. Bạn có thể dùng IDA với Hexray để dễ nhìn mã giả.
Mã giả bài này như sau:
Đoạn mã này yêu cầu nhập vào 6 chữ số. Chữ số đầu tiên là 1, 5 số sau mỗi số tăng theo thứ tự: ** num = số_trước * (index + 1) **
Kết quả bạn cần nhập để thỏa là: **1 2 6 24 120 720**
Kết quả sau khi nhập:
// Lần sau đặt câu hỏi cẩn thận hơn nhé.
csapp/Lab2 [Bomb Lab]/bombs/bomb1.tar · 46ff9e86e3cdfe9979ce32398313d4be8d2f6b56 · Alkaid / computer_class · GitLab
git.lug.ustc.edu.cn
{
int result; // eax
int v2[6]; // [esp+Ch] [ebp-1Ch]
int i; // [esp+24h] [ebp-4h]
read_six_numbers(s, (int)v2);
result = v2[0];
if ( v2[0] != 1 )
explode_bomb();
for ( i = 1; i <= 5; ++i )
{
result = v2[i - 1] * (i + 1);
if ( v2[i] != result )
explode_bomb();
}
return result;
}
Welcome to my fiendish little bomb. You have 6 phases with
which to blow yourself up. Have a nice day!
When I get angry, Mr. Bigglesworth gets upset.
Phase 1 defused. How about the next one?
1 2 6 24 120 720
That's number 2. Keep going!