전에 썼었는데 지워져 버려서 다시 씀.
우선 frida와 frida-gadget은 구동하는 환경에 따라 실행 방식을 변경하는 형식임.
frida : frida-server를 device안에서 실행시켜 앱과 연동하는 방식 (루팅 된 환경)
frida-gadget : 별도의 frida-server를 device에서 먼저 실행시키지 않고 lib를 추가하여 앱 실행 시 frida-server가 구동하는 방식 (비 루팅 환경에서도 쓸 수 있음.)
1. lib파일 추가
frida-gadget 파일을 다운받아 앱 내부에 삽입.
이름을 'libfrida.so' 와 비슷한 형식으로 바꿔 줌.
2. manifest 파일에 permission 추가
<uses-permission android:name="android.permission.INTERNET" />
위에 작성한 코드를 manifest 파일에 추가.
3. 앱에서 가장 먼저 실행되는 부분에 코드 추가
우선 먼저 실행되는 smali파일을 찾는 것이 중요함.
adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'"
위의 명령어를 앱 실행과 동시에 cmd를 통해 입력하면 현재 실행 중인 뷰가 참조하는 smali파일의 위치를 알 수 있음.
const-string v1, "frida"
invoke-static {v1}, Ljava/lang/system;->loadLibrary(Ljava/lang/String;)V
찾은 smali파일에 가장 먼저 코드가 실행될 수 있도록 위의 코드를 추가.
*파일 이름과 코드 내 명칭은 통일되어야 함*
4. 앱 리패키징
apktool b -o [out] [decompiled folder]
위의 apktool을 이용하여 해도 괜찮지만 apk easy tool을 이용하는 방법도 괜찮음. (블로그 내 포스팅된 글 참조)
5. frida 실행
이전에 frida관련 글을 보고 실행시켜 줘도 되고 frida를 실행시켜 코드를 수정할 경우 아래의 명령어를 실행시켜주면 됨.
frida -U gadget
끝!
'Android' 카테고리의 다른 글
Frida를 이용한 SSL Pinning 우회 [Hooking] (0) | 2019.12.27 |
---|---|
Frida를 이용한 Method 변조 (탈옥 우회) (0) | 2019.12.26 |
XposedInstaller/Just trust me를 활용한 SSL Pinning 우회 (0) | 2019.12.24 |
인증서 설치를 통한 SSL Pinning 우회 (0) | 2019.12.23 |
frida와 frida-server 진단환경 구성 (0) | 2019.11.05 |