[목차]
1. FridaLab 설명
2. 연습 환경 구성 (jadx)
1. FridaLab 설명
FridaLab은
Ross Marks가 만든
프리다 연습 놀이터로
총 8개의 문제로 구성되어 있으며
각 문제는 다음과 같다.
(1) Change class challenge_01's variable 'chall01' to 1
> 클래스 challenge_01의 변수 chall01을 1로 변경하기
: 하드코딩 된 변수를 변경하는데 목적이 있음
(2) Run chall02()
> Chall02() 메서드 실행하기
: 사용하지 않는 메서드를 어떻게 불러와 실행시킬 것인가?
(3) Make chall03() return true
> chall03() 메서드가 true 반환하게 만들기
: 함수 반환 값 수정 (implementation)
(4) Send "frida" to chall04()
> chall04() 메서드에 frida 문자열 전송하기
: 함수에 전달되는 인수 값 수정 후 전송 (일회성)
(5) Always send "frida" to chall05()
> chall05() 메서드에 frida 문자열 항상 전송하기
: 함수에 전달되는 인수 값 수정 후 전송 (항시)
(6) Run chall06() after 10 seconds with correct value
> 올바른 값으로 10초 후 chall06() 메서드 실행하기
: 라이브 변수 조작
(7) Bruteforce check07Pin() then confirm with chall07()
> chall07Pin() 메서드를 브루트 포스 해서 chall07() 메서드로 확인하기
(8) Change 'check' button's text value to 'Confirm’
> check 버튼의 텍스트를 Confirm으로 변경하기
: 화면 출력 데이터 변조
(2) 앱 설치
> 단말기 연결 여부 확인 후
(쉘 붙은 김에 프리다 서버도 함께 실행)
> 앱 설치
c:> adb install
> 정상 설치 확인 후 앱 실행
> CHECK 버튼을 눌러보면
> 해결되지 않은 문제는 빨간색으로 표시되며
문제가 해결될 때마다 해당 항목은
녹색으로 변경된다!
(3) 패키지 명 확인
> uk.rossmarks.fridalab
(4) 디컴파일 도구 설치 (jadx)
프리다로 후킹(변조) 하고 싶은 포인트가
어느 부분인지 확인하려면 진단할 앱(apk 파일)이
어떤 클래스를 가지고 있고 어떤 구조로
이루어져 있는지 파악이 필요하며
이를 위한 디컴파일 작업이 요구된다.
디컴파일러 도구의 경우
jd-gui 디컴파일러를 사용하기도 하지만
본 실습에서는 jadx(gui 버전)라는
도구를 사용하는데
jd-gui 디컴파일러의 경우
dex2jar라는 도구로 dex 파일을
jar 파일로 추가 변환해야 하는 작업을
진행해야 하기 때문에 번거로운 반면
jadx 디컴파일러는
dex2jar로 변환 작업 없이
APK 체로 넣어도 디컴파일이 진행되며
리소스 부분도 동시에 확인이 가능해
APK를 처음 분석하는 사람도 쉽게 사용이 가능하다.
> 다운 경로
호스트 윈도우에 jre가 설치되어 있으면 no-jre을,
jre가 없는 경우 with-jre를 다운로드하면 되는데
jre가 설치되어 있지 않아도 포터블로 이용이
가능하기 때문에 no-jre-win.exe 버전 다운!
> 실행 테스트
정상 실행됨!
정리하면
jadx는 APK 파일에서
자바 소스코드를 생성해 보여주는 도구로
CLI / GUI 버전 둘 다 있으며
진단할 AKP 파일의 소스코드를 확인 후
프리다 payload를 제작할 때 유용하게 쓰인다.
[도움 출처]
: 보안프로젝트 김태영 팀장
'APP 진단 > Android 2' 카테고리의 다른 글
9. 프리다 연습 - FridaLab (2) 문제 풀이 (6-8번) (0) | 2022.12.13 |
---|---|
8. 프리다 연습 - FridaLab (2) 문제 풀이 (1-5번) (0) | 2022.12.11 |
6. Python 바인딩 (0) | 2022.12.09 |
5. 프리다 기본 실습 2 (0) | 2022.12.07 |
4. 프리다 기본 실습 (1) | 2022.12.03 |