01/10/2018, 09:42
Gỡ bomb code Assembly
Chào mọi người, mình đang làm bài toán gỡ 1 quả bomb. Mình tìm trên mạng thì có 1 trang viết bằng tiếng nhật hướng dẫn. Mình dịch sang tiếng anh để đọc nhưng chưa hiểu. Mong diễn đàn giải đáp giúp ạ.
0x401ebe It is stored in “% d% d”, and then reads the sscanf. The first number in 0xc (% rsp), the less than 16, then into% eax, will be used later as an array index and the second on 0x8 (% rsp), and finally to compare and% edx.
Here is the key code:
Where in %edx as counter 12 is equal to the last. mov 0x401ba0(,%rax,4),%eax% Eax as the value of the array index value is stored again it points in% eax,% ecx is calculated while this process and all% eax,% eax up equal to the 15 (cltq instruction is extended from 32 to 64 bit).
Thus the 0x401048 set breakpoint, dump out the entire array.
Get the whole point chain: 15->5->12->3->7->11->13>9->4->8->0->10->1->2->14->6->15so the answer is 7 93.
Bài liên quan
Mình hiểu được ý như vầy. Đầu tiên chương trình yêu cầu người dùng nhập vào 2 số a, b với a < và được lưu trong thanh ghi eax. Số thứ 2 lưu ở stack.
Cái này giống mấy kiểu file để tập RE
Bạn dịch từng dòng ra C là nghiệm ra mà
Mình thử dịch ra như sau:
=> Đoán alf chương trình trên là tìm số bắt đầu sao cho đi qua 12 phần tử và tổng ecx == b
=> a = 7, b = 93
À mà, cũng có tí thắc mắc. Nếu ko nhầm thì đây là fastcall calling convension (2 DWORD được mov từ trái sang phải vào RCX, RDX). Vậy [rsp + 0xc] là [b] chứ nhỉ?
bạn học cái gì mà có bài tập này vậy?
Cảm ơn bạn nhiều. <3
Môn an ninh mạng bạn.
ô hay nhỉ, cho mình học chung với đc k
Ủa, là sao ạ. Sao lại thu hồi.