Ghidra + IDA không thể phát hiện một chuỗi nhưng Radare2 có thể

Jan 15 2021

Tôi mới sử dụng kỹ thuật đảo ngược và tôi đã thử Ghidra, IDA (Phần mềm miễn phí) và Radare2 với một CrackMe đơn giản, vấn đề là, cả Ghidra và IDA đều không thể phát hiện ra một chuỗi trong khi Radare2 (Sử dụng Cutter GUI) có thể tìm ra tên. Tôi đã sử dụng phân tích mặc định cho tất cả 3. Có điều gì tôi còn thiếu không? bởi vì ngay cả lệnh 'string' thực sự có thể tìm thấy chuỗi mà tôi đang tìm kiếm.

Ghidra:

IDA:

Radare2 (Máy cắt):

Trả lời

6 R4444 Jan 15 2021 at 22:05

Tôi không biết độ dài chính xác của chuỗi. Tuy nhiên, một số điều cần lưu ý ở đây như sau:

  1. Ghidra và IDA có giới hạn tối thiểu về kích thước chuỗi để khôi phục đúng loại (ghidra có giới hạn - hoặc giới hạn dưới là 5).
  2. Điều này là cần thiết để tránh mọi kết quả dương tính giả hoặc các kiểu xung đột. Và khôi phục các kiểu chính xác mà không cần đánh dấu con trỏ là một chuỗi. Kiểm tra con số này để bạn tham khảo. Được tạo bằng cách sử dụng phân tích tự động Ghidra.

Trong Ghidra, bạn có thể thay đổi giới hạn này (tối thiểu là 4) trong phần phân tích.

  1. Stringslệnh xuất ra các ký tự có thể in được với kích thước tối thiểu 4 (ngoài ra nó không sử dụng các thuật toán khôi phục kiểu phức tạp như ghidra hoặc Ida). Tôi tin rằng bạn có một chuỗi có độ dài nhỏ hơn 5 và tôi đoán rằng nó phải chính xác là 4.
  2. chuỗi thường được xác định trong .rodataphần. Nếu bạn nhấp đúp vào DAT_xxxx, nó sẽ đưa bạn đến vị trí mà chuỗi đó được xác định. Ở đó, bạn sẽ thấy các byte liên tiếp được kết hợp với nhau bằng Ghidra hoặc IDA (như trong hình-1). Tuy nhiên, kiểu không được giải quyết dưới dạng "chuỗi".
  3. Trong Ghidra, một cách nhanh chóng để khắc phục điều này bằng cách thay đổi kiểu dữ liệu của nhãn DAT_xxxx: Nhấp chuột phải -> Dữ liệu -> Chọn Kiểu dữ liệu -> chọn chuỗi

Tài liệu tham khảo:

  • Xem câu hỏi của tôi tại đây - https://github.com/NationalSecurityAgency/ghidra/issues/2274
  • hướng dẫn sử dụng dây - https://linux.die.net/man/1/strings
  • ida pro - Làm cách nào để IDA thấy một tham chiếu chuỗi?