Apiscout
이 프로젝트는 Windows API 가져 오기 복구를 단순화하는 것을 목표로합니다. 입력대로 알려진 환경에 대한 임의의 메모리 덤프를 처리 할 수 있습니다 (참고 : 참조 DB는 먼저 APISCOUT/DB_BUILDER를 사용하여 구축해야합니다).
출력은 일부 메타 정보가 포함 된 식별 된 Windows API 참조 및 Apivector 지문의 주문 목록입니다.
- Scout.py- 도서관과 함께 일하는 방법에 대한 좋은 개요를 제공해야합니다.
- Ida_scout.py- Ida Pro에서 사용하기위한 편의 GUI 래퍼입니다.
- ghidrascout.java- apiscout ( @mari-mari에 의해 기여)를위한 Ghidra 플러그인입니다.
- match.py- Apivectors가 서로와 일치하는 방법과 지문 모음을 보여줍니다.
- Collect.py- 일치하는 데 사용할 수있는 Winapi 지문 (Apivectors) 데이터베이스를 작성합니다.
- Export.py- Apivectors를 시각화하는 APIQR 다이어그램을 생성합니다.
- Update.py- Malpedia에서 가장 최근의 Apivector DB를 당기십시오 (Malpedia 계정 / API 토큰 필요).
코드는 Python 2 및 3과 완전히 호환되어야합니다.
Apiscout을 더 자세히 설명하는 블로그 게시물이 있습니다 : http://byte-atlas.blogspot.com/2017/04/apiscout.html.
또한 Apivectors가 어떻게 구성되고 저장되는지 설명하는 다른 블로그 게시물 : https://byte-atlas.blogspot.com/2018/04/apivectors.html.
또한 Botconf 2018에서 https://journal.cecyf.fr/ojs/index.php/cybin/article/view/20/23에 대한 평가를 포함하여 Apiscout 방법론을 설명하는 논문을 발표했습니다.
버전 역사
- 2023-03-27 : v2.0.2- @7a6570 (thx !!)에 의해 기여한 Idascout 및 세트 처리에 대한 버그 픽스.
- 2023-01-02 : v2.0.1- @malware-kitten (thx !!)에 의해 기여한 Python 3.10을 사용한 LIEF 기반 가져 오기 테이블 구문 분석에 대한 버그 픽스.
- 2022-08-01 : v1.2.0- @mari-mari (thx !!)가 기여한 Ghidra 용 플러그인 추가
- 2022-09-20 : v2.0.0- (잠재적으로 파괴) 크롤링 결과는 이제 주어진 Winapi에 대한 호출 참조 세트와 하나의 추가 출력 필드를 가지고 있습니다. 이것은 @renzhexigua (thx !!)가 기여한
scout.py 의 JSON 출력에도 포함되어 있습니다. - 2022-08-01 : v1.2.0- @mari-mari (thx !!)가 기여한 Ghidra 용 플러그인 추가
- 2022-01-17 : v1.1.9- apiscout이 파이썬 패키지로 설치 될 때 IDA 7.5+와 함께 작업하기 위해
ida_scout.py 고정했습니다. - 2021-10-04 : v1.1.8- @blattm (thx!)에 의해 제공된 관찰에 기초한 Winapi 컨텍스트의 확장.
- 2021-08-30 : v1.1.7- Numpy에 의해 제기 된 APIQR의 고정 감가 상각 경고.
- 2021-07-31 : v1.1.6- 더 이상 고정 된 LIEF 버전을 유지하는 것이 필요하지 않습니다. (thx to @cccs-rs!)
- 2021-01-10 : v1.1.5-Python3 Lief 패키지 버전 0.10.1에 고정되었습니다 (thx to @akhribfarouk!)
- 2020-12-09 : v1.1.4-Python3 DatabaseBuilder의 Python3 수정 (Thx to @dump-guy!)
- 2020-07-13 : v1.1.3- 종속성이 설치되도록 "install_requires"를 setup.py에 추가했습니다.
- 2020-06-30 : V1.1.0- 이제 수입 테이블 구문 분석에 LIEF를 사용합니다. 가져 오기 테이블 구문 분석을 사용할 때 Apivector를 생성하지 않는 버그가 수정되었습니다. Apiscout은 이제 PYPI를 통해도 제공됩니다.
- 2020-03-03 : Malpedia에서 가장 최근의 Apivector DB를 가져 오기 위해 스크립트를 추가했습니다 (Malpedia 계정 / API 토큰이 필요).
- 2020-03-02 : IDA 7.4 (thx to @jenfrie)로 포팅되었습니다.
- 2020-02-18 : DB Builder는 이제 Python 3.7 (thx to @elanfer)까지 호환됩니다.
- 2019-10-08 : IDA 7.3에서 API보기의 파손 된 해결 방법 (이를 지적하기위한 thx에서 @enzok).
- 2019-08-22 : IDA에서 누락 된 유형 정보가 충돌로 이어지는 버그를 수정했습니다 (이제 오류 메시지가 대신).
- 2019-08-20 : 셀프 필터를 추가하여 실수로 API 참조로 취급 될 수있는 메모리 이미지에 대한 포인터를 제거합니다.
- 2019-06-06 : IDA Pro의 주석이 달린 API에 대한 적절한 유형 재구성에 대한 지원이 추가되었습니다 (THX TO @FLXP0C)
- 2019-05-15 : 벡터 계산에 대한 Numpy 지원이 추가되었습니다 (@garanews에서 제공 한 구현-THX!)
- 2019-05-15 : 섹션 크기의 잘못된 해석으로 인해 버퍼가 단축되는 PE Mapper의 버그를 수정했습니다.
- 2019-01-23 : QOL 개선 : 모듈로 사용될 때 자동화 된 데이터 폴더 배포, 로거 초기화 (thx to @jdval)
- 2018-08-23 : PE 헤더가 (빈) 섹션 데이터로 덮어 쓰는 PE 맵퍼의 버그를 수정했습니다.
- 2018-08-21 : 참조를 위해 크롤링하는 대신 가져 오기 테이블 정보를 사용할 수있는 기능이 추가되었습니다.
- 2018-07-31 : 편의 기능을 고정하여 벡터를 작성/내보내기/내보내기에서/로 내보내기 위해 테스트 범위를 추가했습니다.
- 2018-07-23 : 경고 : Apivector 형식의 변경-공간 효율성이 훨씬 더 높은 정렬 된 Apivectors (20%+).
- 2018-06-25 : IDA Pro 7.0+와 비 호환성을 고정했습니다 (THX to @NazyWam!)
- 2018-05-23 : 추가 의미 컨텍스트 그룹이 추가되었습니다 (thx to Quoscient.io)
- 2018-03-27 : Windows API 참조 수의 휴리스틱 추정이 추가되었습니다
- 2018-03-06 : APIQR 벡터 결과 시각화 (C-1024)
- 2017-11-28 : 결과 정보를 풍부하게하기 위해 자체 가져 오기 테이블 파서 추가
- 2017-08-24 : Ida Pro의 다중 세그먼트 지원 (thx to @nazywam!)
- 2017-05-31 : Windows 7 SP1 64 비트 가져 오기 DB (Malpedia와 호환)
크레딧
이 아이디어는 이전 에이 리팩토링 된 릴리스에 도달 할 때까지 여러 번 반복을 거쳤습니다.
Thorsten Jenke와 Steffen 덕분에 이전의 노력 과이 방법의 개념 증명을 평가했습니다.
APIQR 다이어그램의 시각화에 대한 그의 작업에 대한 Steffen Enders에게 더 감사드립니다.
또한 Pefile의 Ero Carrera와 Ida Python Askusingform 템플릿의 Elias Bachaalany에게도 감사합니다. :)
또한 Andrea Garavaglia에게 감사의 말을 전하며 공연 벤치 마크에 대한 감사는 적용된 매칭에서 급격한 속도를 높입니다!
요청을 당기는 것을 환영합니다! :)