Tôi có một tệp nhị phân và tôi phải bẻ khóa mật khẩu của nó (bài tập về nhà). Ngoài ra còn có một chức năng được đưa ra (một chức năng là một phần của tệp nhị phân). Hàm đó cho thấy chuỗi đầu vào được so sánh với ký tự mật khẩu chính xác theo ký tự và trả về sai ngay lập tức khi ký tự sai (đó là cách làm không an toàn tôi đoán vì nó bị rò rỉ thời gian và chúng tôi có ý tưởng về độ dài mật khẩu chính xác như thí dụ). Nhưng giáo viên của chúng tôi đã thêm một bộ đếm thời gian ngẫu nhiên trả về kết quả (Đúng / Sai) để làm cho chúng tôi khó khăn hơn một chút ...
Dù sao, tôi đã thực hiện thành công với kỹ thuật đảo ngược và có mật khẩu chính xác. Bây giờ tôi đang chơi với nó trong dòng lệnh:
/usr/bin/time -v ./program_name enter_password
Với lệnh này, tôi nhận được rất nhiều thông tin như thời gian hệ thống, giao dịch hoán đổi, thời gian thực hiện..Nhưng điều thú vị nhất đối với tôi là "Chuyển đổi ngữ cảnh tự nguyện" bởi vì các ký tự chính xác hơn của mật khẩu tôi nhập, càng ít "Chuyển đổi ngữ cảnh tự nguyện " Tôi có!
Càng nhập nhiều ký tự sai, tôi càng nhận được nhiều "chuyển đổi bối cảnh tự nguyện".
Tôi đã mất gần hai giờ để bẻ khóa mật khẩu chỉ bằng cách nhập lệnh đó, nhập các ký tự và quan sát "Công tắc bối cảnh tự nguyện". Bất cứ khi nào MỘT ký tự chính xác, "Công tắc bối cảnh tự nguyện" giảm đi một.
Câu hỏi của tôi, chính xác là "Công tắc bối cảnh tự nguyện" là gì và tại sao họ lại giúp tôi bẻ khóa mật khẩu?