안녕하세요 프린이입니다!! 고수분들께 질문드립니다!!
안녕하세요!!
안드로이드 애플리케이션 분석 중 루팅 탐지 로직이 네이티브 단에서 이루어지는 것으로 판단되어
해당 라이브러리 내 특정 함수의 레지스터 값을 변조하기 위하여
var 대상 라이브러리 = Module.findBaseAddress('대상 라이브러리');
console.log("대상 라이브러리 주소 값 : " + 대상 라이브러리);
위와 같이 Module.findBaseAddress 를 이용, 라이브러리의 주소를 추출하려고 시도하였지만
라이브러리를 찾지 못하고 계속 "NULL" 이 출력되었습니다.
그래서 애플리케이션 실행 시 흐름을 파악하기 위하여 LogFilter 를 이용한 분석 결과,
예를 들어 pid 2170번으로 애플리케이션 실행 된 후
하기 이미지와 같이 pid 6129번으로 후킹 대상 라이브러리가 로드되는 것을 확인하였습니다.
이후에 애플리케이션의 pid인 2170번이 6129번에 의해 종료되었다는 것도 확인할 수 있었습니다.
이를 통해 라이브러리 주소가 출력 되지 않은 이유가 Module.findBaseAddress 코드 실행 시
pid 2170 프로세스 내에서만 대상 라이브러리를 찾으려고 시도했기 때문일 것 같다는 결과를 도출해낼 수 있었습니다.
질문
1. 제가 해석한 로그의 의미가 맞나요??
2. FRIDA 코드를 이용하여 다른 프로세스(라이브러리가 로드되는) 접근 후 라이브러리 후킹도 가능한가요??
3. 애플리케이션 실행 시 라이브러리를 메모리에 올리고 애플리케이션 실행 및 루팅 탐지에 필요한 코드를 모두 실행시킨 후
삭제시켜서 FRIDA 코드로 후킹할 수 없다면 어떻게 후킹 할 수 있을까요??