IDA Pro 6.0 은 Qt 프레임 워 크 를 사용 하여 크로스 플랫폼 의 UI 인터페이스 를 실현 했다.
이 블 로그 에 서 는 PySide 를 사용 하여 IDA Pro 에 UI 인터페이스 를 만 드 는 방법 을 설명 할 것 입 니 다.
ipq_intro
배경
초기 버 전의 IDA Pro 에 서 는 create 를 사용 할 수 있 습 니 다.tform() / display_tform()API 는 사용자 정의 UI 를 만 들 지만 코드 는 플랫폼 에 지정 되 어 있 습 니 다.MS 윈도 에서 프로그래머 는 부모 창의 HWND 를 받 은 다음 사용자 정의 컨트롤 로 채 운 다음 사용자 정의 WindowProc()에서 온 창 메 시 지 를 처리 합 니 다.
이전 에는 MS 윈도 UI 가 하나 밖 에 없 었 기 때문에 사용 자 는 다른 플랫폼 에서 복잡 한 UI 를 만 들 수 없 었 고 ADA Pro SDK/폼 과 관련 된 함수,예 를 들 어 AskUsingForm()을 사용 해 야 했다.
IDA Pro 6.0 을 통 해 C++플러그 인 작성 자 는 Qt SDK 를 직접 사용 하여 크로스 플랫폼 UI 를 개발 할 수 있 습 니 다.IDA Pro SDK 의 qwindow 를 참고 하 세 요.
스 크 립 트 작성 자 는 Python Qt 바 인 딩 을 사용 하여 같은 결 과 를 얻 을 수 있 습 니 다.
Qt 프레임 의 Python 바 인 딩
우 리 는 PySide 와 PyQt 를 평 가 했 는데 이 두 개가 IDA Pro 6.0 에 연결 되 어 정상적으로 작 동 할 수 있 음 을 발견 했다.(우 리 는 CDQT 를 사용 해 야 한다.NAMESPACE=QT 를 컴 파일 하고 QWidget*을 C++에서 Python 으로 전달 하 는 방법 을 추가 해 야 합 니 다.
PyQt 가 더욱 성숙 하고 많은 사용자 에 게 사용 되 었 지만 저 희 는 PySide 를 선 택 했 습 니 다.잘 작 동 되 고 허가증 제한 이 적 습 니 다.
IDAPython 과 PySide 를 사용 하여 Hello World UI 를 작성 합 니 다.
IDAPython 에서 UI 를 만 들 기 위해 서 는 idaapi.PluginForm 클래스 를 계승 해 야 합 니 다.이 종 류 는 본질 적 으로 create 를 포장 했다.tform()/display_tform()은 일부 보조 함수(예 를 들 어 QWidget*를 Python 에 전달 하고 PySide 는 부모 위 젯 으로 사용 할 수 있 습 니 다)를 제공 합 니 다.
예제 코드 는 이 스 크 립 트 를 실행 한 후에 우 리 는 이 폼 을 얻 었 습 니 다.물론 이 폼 은 다른 내 장 된 폼 처럼 멈 출 수 있 습 니 다.이 예 는 매우 간단 하지만 사용 자 는 이제 더욱 정교 하고 복잡 한 UI 를 만 들 수 있다.이상 하 지 는 않 지만 지금 은 스 크 립 트(IDAPython)를 사용 하 는 플러그 인 개발 이 이전 보다 더 재 미 있 습 니 다.
ipq_hello_code
IDA Pro 6.0 이 Qt 프레임 워 크 를 사용 하여 크로스 플랫폼 UI 를 구현 한 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 IDA Pro Qt 크로스 플랫폼 콘 텐 츠 는 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Xmind 8 Pro 최신 활성화 시퀀스 번호최근 에 마 인 드 맵 을 그 려 서 정 리 를 해 야 해서 Xmind 8 을 다운 받 았 습 니 다.열 면 내 보 내 려 고 합 니 다.일반 버 전 은.txt 텍스트 문서 만 내 보 낼 수 있 기 때문에 pj 를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.