Description
File: https://mercury.picoctf.net/static/37069d9462289016ea1869ef4c993912/chall.S.
Tìm kết quả trả về của file này với hai đối số: 1765227561
và 1830628817
dưới dạng một số nguyên.
Định dạng: bên trong dấu ngoặc nhọn của flag sẽ là một số hexa lowercase. Ví dụ 5614267
sẽ là 0055aabb
.
Steps
- Đây là file hợp ngữ có kiến trúc là ARMv8.
- Ở trong hàm
main
ta thấy gọi 2 lần hàmatoi
bằng instructionbl
(instruction này dùng để gọi hàm và lưu kết quả trả về ở thanh ghi LR (link register), có số hiệu thanh ghi làx30
). Mục đích của việc gọi hàm này có thể là để chuyển input đầu vào từ dạng chuỗi sang dạng số nguyên. - Có gọi hàm
func1
, với hai tham số làw0
vàw1
. Hàmfunc1
thực hiện so sánhw1
nhỏ hơn hoặc bằngw0
. Nếu đúng thì trả vềw0
, nếu sai thì trả vềw1
(hành động trả về chỉ đơn thuần là gán giá trị cho thanh ghiw0
). - Như vậy, kết quả ở dạng số nguyên của file
chall.S
có thể sẽ là1830628817
vì là số lớn hơn. Ta dùng lệnh'{:x}'.format(1830628817)
của Python để chyển thành dạng hexa và thu được flag.
Flag
Success
picoCTF{6d1d2dd1}