Friday, May 31, 2019

So sánh các ngôn ngữ trung gian IR!

Why did you choose VEX instead of another IR (such as LLVM, REIL, BAP, etc)? We had two design goals in angr that influenced this choice: angr needed to be able to analyze binaries from multiple architectures. This mandated the use of an IR to preserve our sanity, and required the IR to support many architectures. We wanted to implement a binary analysis engine, not a binary lifter. Many projects start and end with the implementation of a lifter, which is a time consuming process. We needed to take something that existed and already...

Tìm hiểu file ELF

Cấu trúc file ELF Chương trình thực thì trên hệ điều hành Linux nhúng chủ yếu là các file ELF (Executable and Linking Format). Mỗi file ELF gồm có phần header, các bảng chứa thông tin quản trị và các đoạn chưa dữ liệu và code của chương trình. 3 phần hcinhs của thông tin quản trị của file ELF là ELF header, section table và program table. ELF header trở đến section và program table, section table giữ thông tin về các section của file ELF...

Saturday, May 25, 2019

Tìm hiểu pyvex

Đang ý tưởng tìm hiểu cách phát hiện mã độc đa nền tảng, tức học các mẫu mã độc trên x86 mà có thể phát hiện mã độc trên mips, arm... Một trong các hương đó là chuyển về mã trung gian chung Một trong các phương pháp tốt dựa trên Valgrind và angr là Vex Il trên cơ sở PyVex https://github.com/angr/pyvex Để giải quyết vấn đề đa kiến trúc, ngôn ngữ trung gian là cần thiết. Những điều khác biệt ở các kiến trúc chip khác nhau là: 1. Register names: tên và số lượng các thanh ghi của các kiến trúc chip khác nhau là khác nhau rất nhiều, tất nhiên...

Phát hiện bug trong phần mềm và tự động sửa!

Một chủ đề khá hay mà tôi mới được tiếp cận là làm sao tự động phát hiện lỗi và sửa lỗi phần mềm, chương trình tôi đang quan tâm là các file ELF trên Embedded Linux. Vì đang nghiên cứu IoT nên tôi chọn các giải pháp đa kiến trúc chip! Trước tiên tôi gặp công cụ tự sửa lỗi trong firmware https://github.com/eschulte/netgear-repair Công cụ thứ 2 giúp check phát hiện lỗi trong file ELF là https://github.com/fkie-cad/cwe_checker Quá tìm tìm hiểu hướng này còn phát hiện ra công cụ rất hay https://fkie-cad.github.io/FACT_core/ Tôi sẽ...