
Lucid는 Hex-Rays 마이크로 코드를 탐색하기위한 개발자 지향 IDA Pro 플러그인입니다. 디 컴파일러 파이프 라인에서 마이크로 코드 변환을 연구하기위한 원활하고 대화식 경험을 제공하도록 설계되었습니다.
이 플러그인은 커뮤니티를위한 프로토 타입 및 코드 리소스로만 표시됩니다. 범용 리버스 엔지니어링 도구가 아닌 개발 원조입니다.
genmc / @pat0is et al. 영감을 위해.
Lucid는 크로스 플랫폼 (Windows, MacOS, Linux) Python 2/3 플러그인입니다. 제 3 자 종속성이 0이되어 코드가 휴대용 및 설치가 쉽습니다.
Disassembler의 Python 콘솔에서 다음 명령을 실행하여 플러그인 디렉토리를 찾으십시오.
os.path.join(idaapi.get_user_idadir(), "plugins") 이 저장소 /plugins/ 폴더의 내용을 나열된 디렉토리에 복사하십시오.
분해기를 다시 시작하십시오.
이 플러그인은 IDA 7.5 및 최신 기능 만 지원됩니다.
Lucid는 16 진전 디 컴파일러가있는 아키텍처에 대해 자동으로로드됩니다. 유사 코드 창의 어디에서나 마우스 오른쪽 버튼을 클릭하고 View microcode 선택하여 Lucid Microcode Explorer를 엽니 다.

기본적으로 마이크로 코드 탐색기는 활성 16 진전 의사 코드 창과 동기화됩니다.
Lucid는 전체 디 컴파일러 파이프 라인을 통해 미세 비계를 추적하는 것이 쉽지 않습니다. 마이크로 코드 성숙 레이어 목록을 통해 미세 비계를 선택하고 스크롤 (또는 클릭 해야하는 경우).

탐험가가 선택한 지시에 집중하는 동안 주변 마이크로 코드 풍경이 녹는 것을 지켜보십시오. 기본적으로 마법입니다.
커서 추적은 하위 수술 / 하위 비 점수 수준에서 작동 할 수 있습니다. 동일한 마이크로 인스트루션의 다른 부분에 커서를 배치하면 하위 경쟁자가 각각의 기원으로 추적 할 수 있습니다.

추적 주소의 지침이 최적화되면 Lucid는 커서를 동일한 대략적인 컨텍스트로 유지하려고 시도합니다. 정밀도 손실을 나타 내기 위해 커서 색상을 녹색에서 빨간색으로 변경합니다.
Hex-Rays Microcode가 성숙함이 증가함에 따라, 디 컴파일 파이프 라인은 트리 기반 구조를 형성하는 하위 비계 및 하위 수술로서 마이크로 코드를 중첩하기 시작합니다.

지침을 마우스 오른쪽 버튼으로 클릭하고 View subtree 선택 하여이 개별 나무를 볼 수 있습니다.
이것이 초기 릴리스이므로 아마도 많은 작은 기발함과 버그가있을 것입니다. 출시 당시 몇 가지 알려진 문제는 다음과 같습니다.
충돌이나 나쁜 행동에 직면하면 문제를 제기하십시오.
시간과 동기 부여 허용, 향후 작업은 다음을 포함 할 수 있습니다.
외부 기여, 문제 및 기능 요청을 환영합니다. 향후 릴리스를 위해 고려되기를 원한다면이 저장소의 develop 지점에 풀 요청을하십시오.