오늘 목표
- nox에 깐 frida 앱을 변조하여 1,2번이 초록불이 되게끔 만들게 하는 것.
frida 앱 1번
-1. Change class challenge_01's variable 'chall01' to:1 => 즉 저 chall01이라는 것의 값을 0에서 1로 바꾸라는 뜻이다.
이걸 어떻게 바꿀까?
먼저 이걸 바꾸려면 FRIDA를 잘 사용해야한다. ++ADB에 대한 이론
ADB?
- Android Debug Bridge = 안드로이드 기반 기기들의 디버깅에 사용되는 프로그래밍 도구.
간단히 말해서 기기와 통신할 수 있도록 지원하는 다목적 명령줄 도구다.
우리는 fridaLAB을 가상화 기기인 NOX에 깔아서 하는데 이 안드로이드와 지금 window와 연결해주는 다리라고 이해하고 있다.
FRIDA?
- JS injection을 이용하여 Windows, macOS, Linux, iOS등등의 기반의 네이티 앱에 대해 후킹이 가능한 파이썬 라이브러리라고 한다.
그냥 안드로이드 앱의 정보를 외부 자바파일을 이용해서 안드로이드 앱에 넣음으로써 변조하는 느낌? 으로 이해하였다.
이제 이 frida를 어떻게 이용해서 value를 1로 바꿀까?
답은 간단했다.
자바파일 생성
일단 저 1번에 나오는 chall01이 있는걸 확인하기 위해 jadx로 challenge_01을 확인해보았다.
일단 challenge_01의 코드를 보니까 어떠한 외부함수에 그 value값이 있는 모양이다.
그래서 저 앱의 위치와 challenge_01를 이용해서 value를 1로 바꾸는 코드를 어디서 얻어왔다.
이제 이 파일과 frida를 이용해서 chall01의 value를 1로 바꿀것이다.
여기 이거 frida server을 연 이유.
-> 이걸 열어야 js injection을 통해 앱을 변조시킬 수 있기 때문이다.

프리다 명령어(의 구조)로는
frida -U -l (그 변조된 파일 위치)(C:\Users\chois.DESKTOP-J62I0IH\Desktop\theif.js(그 변조할 파일 이름) ) FridaLab(or fridaLab의 주소)
라고 적으면 바로 그 앱의 value를 변조할 수 있는것이다.
그 명령어를 실행한 결과,
성공했다고 한다.
녹스도 초록색으로 바뀌었다.
= chall01 해결
frida 앱 2번(challenge02)
- run chall02() -> 즉, chall02함수(메소드)를 실행하라는 이야기다.
그러면 1번과 비슷하게 아예 외부 자바스크립트 파일에서 chall02를 실행하면 된거 같다.
후킹 프로그램
먼저 chall02의 코드를 분석해보았다.
이 코드를 보건데, chall02()메소드를 실행시키면 completeArr[1]에 1이라는 값을 집어 넣도록 하는것 같다.
이제 이 메소드를 작동시키는 프로그램을 만들어 보자.
이 코드를 가지고 1번에서 실행시켰던 frida코드를 실행시키면,
풀린것을 확인할 수 있다.
녹스에서 보면
2번까지 녹색으로 바뀐것을 확인할 수 있었다.