2020. 5. 19. 10:48ㆍ2020/Android App Hacking
[1] C언어로 작성된 프로세스가 동작중이다.
[2] 해당 프로세스에 프리다를 통해 자바 스크립트를 삽입한다.
[3] 인터프리터가 C언어 파일을 읽은 뒤 자바 스크립트를 읽고 동작이 진행된다.
실행파일로 컴파일 후 실행시킨다. $ clang hello.c -o hello
$ frida -l agent.js hello
hello프로세스에 프리다 명령어를 실행시켜 agent.js 자바스크립트 코드를 삽입한다.
Interceptor.attach( Target, Callbacks );
Target: 함수의 주소를 지정한다. (우리는 f함수의 주소를 알고 있기에 f함수를 조작할 수 있다.)
** ptr("0x80491d0") <- 함수 f의 주소
Interceptor.replace( Target, replacement );
목표 함수, 메서드를 다른 함수, 메서드로 교체할 수 있다.
Module.findExportByName( moduleName | null , exportName ) : 특정 모듈로부터 사용하는 함수를 검색
new NativeCallback( func, returnType, [argType] );
첫번째 인자에 위치한 함수를 실행시키는 콜백 생성
replace메서드가 실행되고 sleep함수가 새롭게 생성된 함수로 변경된다.
자바 스크립트 코드에서 새로운 함수를 선언하여 사용할 수 있다.
new NativeFunction( address, retType, argvType )
첫 번째 인자에 위치한 함수를 호출하는 native 함수를 생성한다. 변수 g에 함수가 저장되고 g(11111)은 즉 f(11111)이 된다.
'2020 > Android App Hacking' 카테고리의 다른 글
UnCrackable_level2.apk 풀이, Frida Native Library 후킹 (0) | 2020.05.20 |
---|---|
Uncrackable_level1.apk 풀이, Frida 후킹 (0) | 2020.05.20 |
Android Hacking: Ettercap 사용법 (0) | 2020.02.13 |
Android Hacnking: Setup (0) | 2020.02.13 |
안드로이드 앱 조작(Tampering) 및 역공학(Reverse Engineering) #2 (0) | 2020.02.03 |