본문 바로가기
Hack/Mobile

Frida 설치 및 Error 해결 방법

by Becoming a Hacker 2020. 9. 21.
반응형

 

설치 방법

 


Frida 설치

pip install frida

 

버전을 지정하여 설치 (ex : 12.2.27)

pip install frida==12.2.27

 

frida 설치 후 frida-ps 와 같은 명령어가 실행되지 않는 경우

pip install frida-tools

Error 해결 방법


Error 1 : Failed to spawn: unable to access zygote64 while preparing for app launch; try disabling Magisk Hide in case it is active

 

frida를 이용하여 안드로이드 앱을 attach 할 땐 문제가 발생하진 않았지만 spawn을 할 땐 에러가 발생하였습니다.

 

Magisk Hide를 비활성화 한 경우에도 똑같은 에러가 발생하였으며, /system 경로에 frida를 넣어준 뒤 실행해야 정상적으로 이용이 가능하였습니다.

 

1. /system 폴더 remount (Read Only 권한으로 되어있기 때문에 remount 필요)

# mount -o rw,remount /system

 

2. frida-server 파일 이동 및 실행

# mv ./frida-server /system
# /system/frida-server &

Reference : https://py0zz1.tistory.com/130?category=867529

 

 

Error 2 : TypeError: cannot read property ~ of undefined (Class Name을 제대로 인식하지 못한 경우)

 

IOS 앱에 존재하는 클래스명을 뽑아내는 코드입니다.

for(var className in ObjC.classes){
	if(ObjC.classes.hasOwnProperty(classname)){
    	console.log(className);
    }
}

 

해당 코드를 이용하여 뽑아낸 클래스명에 존재하는 메소드를 확인하는 코드입니다.

var className = "MyApp.JailbreakViewController";
var methods = eval("ObjC.classes." + className + ".$methods");

 

MyApp.JailbreakViewController 같이 클래스명에 .이 존재하는 경우 cannot read property JailbreakViewController 에러가 발생하였습니다.

 

이는 ClassName.MethodName으로 인식하였기 때문인데 위의 코드를 아래와 같이 변경하는 것으로 에러를 해결할 수 있었습니다.

var className = "MyApp.JailbreakViewController";
var methods = eval("ObjC.classes['" + className + "'].$methods");

Reference : https://github.com/frida/frida/issues/336

 

반응형

댓글