So sánh binary bởi IDA và các công cụ ngã trợ

Trong bài bác này tôi sẽ ra mắt với các bạn về các công cụ bổ trợ cho IDA trong vấn đề việc đối chiếu sự khác nhau giữa hai binary.Bạn đã xem: Ida pro tool là gì

Nếu các bạn là dân dev, tuyệt dân văn phòng xuyên suốt ngày lọ mọ với cùng 1 mớ code/ tư liệu thì dĩ nhiên sẽ chẳng lạ gì với việc tự làm “bằng cơm” hoặc thực hiện công cụ chuyên được sự dụng để so sánh sự không giống nhau/ sai khác trong cùng một source code hoặc giữa cùng một tài liệu tại những thời gian khác nhau. Với những file binary cũng vậy, nguyên tắc differ cũng trở thành cho ta biết sự không giống biệt/ chuyển đổi giữa nhị phiên phiên bản của cùng một chương trình, những công cầm này sẽ nỗ lực thực hiện phân tích, so khớp các hàm trong lịch trình và chỉ dẫn kết qủa về hầu hết hàm gồm sự đổi khác và biến đổi ở đâu.

Bạn đang xem: Ida pro tool là gì

Ta thấy rõ ràng để thực hiện các bước này không phải là dễ dàng, nhất là khi có những chuyển đổi lớn từ bỏ phiên phiên bản này quý phái phiên bạn dạng khác, sự thay đổi này rất có thể đến từ việc cập nhật các phiên bản vá bảo mật thông tin để xử lý các lỗ hổng tồn tại trong chương trình, hoặc rất có thể là những cách tân mới trong nhân kiệt của chương trình, v.v… với dân chăm crack soft hoặc khám phá cracking thì việc so sánh giữa file cội và file vẫn patch rất có thể giúp mang lại họ khám phá được biện pháp patch của những cracker khác. Cùng với dân chuyên phân tích exploit thì bài toán làm này hoàn toàn có thể giúp họ hiểu rằng một phiên bản vá bảo mật thông tin có xử lý được triệt nhằm lỗi hay không? tuyệt là patch lỗi đó lại sinh ra lỗi khác có thể khai thác được.

1 BinDiff

Ứng dụng yêu cầu nói tới thứ nhất chính làBinDiff, mục tiêu của nó là một trong công cụ hỗ trợ so sánh các tập tin nhị phân nhằm mục tiêu giúp các chuyên gia nghiên cứu lỗ hổng có thể nhanh nệm tìm thấy sự khác biệt và tương đồng trong mã chương trình được phân rã sống dạng câu lệnh asm. Phép tắc này được trở nên tân tiến bởiZynamics, công ty này tiếp đến được Google tải lại vào khoảng thời gian 2011. Phiên phiên bản mới duy nhất tính đến thời điểm của bài viết này làBinDiff v4.3. Thông tin chi tiết về BinDiff hoàn toàn có thể tìm gọi tại đây:https://www.zynamics.com/software.html


*

Các bạn tải về về và tiến hành cài đặt. Việc setup BinDiff dễ dàng như chúng ta cài Win dạo, không giống mỗi là bạn chưa phải kiếm crck thôi, chăm chú là bên trên máy rất cần phải cài đặtJava Runtime Enviroment (JRE)trước nhé. BinDiff hiện chỉ hỗ trợ cho IDA 6.x, chưa có plugin mang đến 7.x.

Xem thêm: Chú Chuột Đầu Bếp - Chu Chuot Dau Bep Tap 1

Để minh họa mang lại việc thực hiện BinDiff, tôi vẫn sử dụng các file .idb tất cả sẵn: một file có vuln và một file đã có được fix. Mở IDA lên và load database của file bao gồm vuln (VULNERABLE_o_NO.idb) vào:


*

*

*

*

Tab mà bọn họ quan vai trung phong là “Matched Functions”:

Tại đây, các ban vẫn thấy cột trước tiên (similarity) cung cấp công dụng về sự kiểu như nhau giữa những hàm, Theo kinh nghiệm của không ít người đã cần sử dụng BinDiff thì nếu cực hiếm trả về bằng1.00thì có nghĩa là hai hàm đó hoàn toàn giống nhau, không có chuyển đổi gì, trái lại nếu quý giá nàyhttps://github.com/google/binexport)để xuất ra file cùng import vào Bindiff nhằm so sánh. Phiên bạn dạng BinExport cơ mà tôi đang sử dụng được build vì bạnNgôn Nguyễn (aka computerline). Phương thức thực hiện như sau, đầu tiên load db của file bao gồm lỗi (VULNERABLE_o_NO.idb) vào IDA 7.x. Sau khoản thời gian load xong, vàoEdit > PluginschọnBinExport:


2. Turbodiff

Công cụ được cho phép so sánh binary tiếp theo sau là TurboDiff. Đây là một plugin được code vày tác giảNicolas Economou (NicoEconomou),là đồng nghiệp trước đây với thầyRicardo Narvajatại vi xử lý core Security. Các chúng ta cũng có thể download plugin này tại:https://www.coresecurity.com/corelabs-research/open-source-tools/turbodiff,tuy nhiên đó là phiên bạn dạng cũ. Phiên bản mà thầy Ricardo Narvaja áp dụng là phiên phiên bản mới hơn. Việc thiết đặt rất dễ, chỉ bài toán chép fileturbodiff.plwvào folder plugins của IDA là xong.

Tương từ như đã có tác dụng với BinDiff, nhưng lại khác chút là ta load database NO_VULNERABLE.idb của file đang fix lỗi trước. Sau thời điểm IDA load xong, vào menuEdit > Pluginsvà chọnTurbodiff:


Như các bạn thấy turbodiff đã đưa tin về khối lệnh gồm sự nuốm đổi. Giống như như Bindiff, turbodiff cũng sử dụng một mã color để trình diễn cho tỉ lệ cố đổi, màu xanh da trời lá cây được sử dụng cho các khối có những biến hóa ít, màu vàng sẽ dùng cho các khối có chuyển đổi nhiều và red color sử dụng cho những khối được thêm vào. Rõ ràng, về mặt hình ảnh và năng lực tương tác thì không thể so sánh được với Bindiff, dẫu vậy bù lại là tốc độ của Turbodiff thực sự vô cùng nhanh. Tính năng là điều rất đáng để quan trung ương nếu áp dụng với các file có form size lớn với nó không hiển thị quá màu mè như Bindiff. Một điểm không giống nữa với Bindiff là Turbodiff yêu cầu parse database của IDA thành các file trung gian rồi bắt đầu so sánh.

3. Diaphora

Công cụ đối chiếu binary sau cùng mà tôi ra mắt với chúng ta là diaphora, đây là một plugin doJoxean Koret (matalaz)viết bởi Python.Joxean Koretlà tác giả của cuốn sách “The Antivirus Hacker’s Handbook” và hình như có quen thuộc biết cùng với anh Quỳnh khi thao tác ở Coseinc. Để sử dụng được diaphora các bạn cũng có thể download trên đây:https://github.com/joxeankoret/diaphora.Tính đến lúc này diaphora ko còn cung ứng IDA 6.8 nữa, mà lại chỉ làm việc với IDA Pro 6.9, 6.95 và 7.0

Tương trường đoản cú như đã làm cho với những công cố trước, thứ nhất ta load db của file sẽ fix lỗi vào IDA trước. Do là dạng python script, nên để chạy được diaphora ta vàoFile > Script File…