시간이 소모되어 기록.
Ghidra 는 미국 국가 안보국(NSA)에서 만들어 오픈 소스로 공개한 역어셈블리어 프레임워크 라고 한다.
(출처: https://ndb796.tistory.com/323 [안경잡이개발자:티스토리])
아래 항목중 막히는 부분이 있다면 챗GPT(본인은 유료 사용)에게 물어보면 알려줄 것이다.
무료로 쓸 경우 구글 제미나이는 코드분석에는 괜찮으나, 이런 안내에는 꽝이다.
■■ 필요한 툴들 및 준비 (좀 많음)
쓰려면 JDK(자바 개발킷) 가 설치되어 있어야 한다. 옛날엔 JRE 라는, 개발없이 쓰기만 하는 사람용 파일이 있었으나 JDK로 통합되어서 어쩔수 없이 JDK를 설치해야 한다.
* 주의사항 : Ghidra와 GDB 압축푸는 폴더는 루트폴더면 안된다. 하위폴더 하나 만들어 거기에 압축을 푼다.
* Ghidra 다운로드 깃허브 : https://github.com/nationalsecurityagency/ghidra
(압축만 풀면 되는 편한 방식임)
* 오라클 JDK 다운로드 페이지 : https://www.oracle.com/java/technologies/downloads/#java11-windows
아래 과정은 전부 Ghidra 와 Duckstation 을 연결할때 오류를 수정하기 위해 하는 것이다.
안한다면 항목마다 오류를 보게 될것이다.
■ Noward GDB 압축 풀기 + 파이썬 및 pip 설치
Ghidra와 Duckstation(덕스테이션) 과의 연결을 하기 위해서는 GDB 라는 게 필요한데, 그냥 GDB는 안되고, 다음 조건을 만족해야 한다.
- PS1의 MIPS 3000 어셈블리 해석이 될 것 + 파이썬 지원 + xml 지원
=> noword GDB 라는게 있었다
* noward GDB 깃허브 : https://github.com/noword/GDB-Windows-Binaries 의 Code 버튼 -> Download ZIP 을 눌러 다운받고 압축해제.
실행파일을 보면 파이썬3.10 까지만 지원되는걸 알 수 있다.
정확히 파이썬 3.10 을 설치해야 한다. (높은 버전도 될것 같긴 한데 안해봄. 해보면 수정)
* 파이썬 3.10 다운로드 : https://www.python.org/downloads/release/python-3100/
(시간지나면 정책에 의해 링크 잘릴수도 있음. 그러면 어쩔수없이 나중버전 설치해야 할듯)
=> 파이썬 설치시 폴더는 본인이 custom으로 지정 추천, 설치폴더의 python310.lib 을 noward GDB 압축푼 폴더(실행파일이 있는 폴더) 에 넣는다.
인스톨러 첫 화면에서 '자동으로 PATH 등록' 비슷한 옵션에 체크한다. 만일 빼먹었다면, 고급시스템설정 환경변수 -> 사용자변수 PATH 에 파이썬이 설치된 폴더와 하위폴더인 \Scripts\ 를 추가해야 한다.
* pip (패키지 인스톨러) 설치
파이썬 설치시 \scripts\ 폴더에 pip 이 없으면 설치해야 하는데, cmd 에서 다음을 입력
python.exe -m ensurepip --upgrade
그럼 pip 파일이 생길 것이다.
■ CMD에서 'Powershell' 실행하여 권한변경
Powershell 에서 다음을 실행하여 Y를 누른다.
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
■ Ghidra 에 포함된, 필요한 파이썬 패키지 설치