Frida 환경 설정 가이드 및 UnCreakable Level1 실습(후킹을 활용한 실습 문제 분석)

2026. 1. 15. 09:41·cs/sec
728x90

1.Python 설치

  • Use admin privileges when installing py.exe 선택
  • Add pytho.exe to PATH 선택

  • Disale path length limit 선택

 

 

cmd에서 python 버전 확인

python --version

 

2. Frida 설치

cmd창에서 진행

설치: pip install frida-tools
업그레이드: pip install frida-tools --upgrade
버전 확인: frida --version

 

1-1.frida 설치(버전 지정)

pip install frida=="16.5.2"

pip install frida-tools==13.6.0

frida --version

 

frida 버전 확인

frida --version

 

1.2 frida 설치(최신 버전) 최신 버전은 뒤에 버전을 안 붙여도 된다.(1-1했으면 안해도 된다)

pip install frida-tools

 

3. 안드로이드 ADB 설치

안드로이드 Android Debug Bridge 사용을 위한 SDK Manager 설치가 필요하다.

 

adb(platform-tools) 설치

https://developer.android.com/studio

 

Next > Next > Next > Install

 

Next를 누르고 License Agreement에서 Accept를 누른다.

 

환경 변수 설정하기

 

경로를 따로 설정하지 않았다면 아래로 환경변수를 설정한다.

C:\Users\사용자명\AppData\Local\Android\Sdk\platform-tools

참고) AppData는 숨김폴더라 숨김해체 후 볼 수 있다.

 

1) 시스템 환경변수 편집> 환경 변수

2) 시스템 변수 Path 편집

3) adb경로 추가

4) 적용 후 PC 재부팅

 

4. Frida 서버 설치 및 실행

Frida-release page에서 아키텍처에 맞는 frida- server 다운로드

server arm64

frida-server-16.5.2-android-arm64 다운로드(frida와 server 버전이 맞아야 한다.)

https://github.com/frida/frida/releases

 

안드로이드 내부로 프리다(Frida) 서버옮기기

adb push [프리다 서버]/data/local/tmp

adb shell //원격 쉘 접속

cd /data/local/tmp

 

adb push: 파일 올리기

adb pull: 파일 내리기

 

안드로이드프리다(Frida) 서버 백그라운드로 실행한다. 백그라운드로 안하면 진행이 안됨

chmod 755 [프리다서버]

./[프리다 서버]&

 

정리

adb shell
su
cd /data/local/tmp

ls -al
chmod 777 frida-server-16.5.2-android-arm64
ls -al

./frida-server-16.5.2-android-arm64 &

 

오류가 나면 휴대폰 설정-USB장치 해체하거나 adb kill하거나 cmd창을 새로 켜서 해본다.

frida-ps -Uai

frida-ps -Ua

 

5.jadx 설치

jadx를 설치한다.


frida 코드 알려주는 곳

https://codeshare.frida.re/

 

Frida CodeShare

Unleash the power of Frida. "If I have seen further, it is by standing on the shoulders of giants."      -Sir Issac Newton The Frida CodeShare project is comprised of developers from around the world working together with one goal - push Frida to its l

codeshare.frida.re

 

6. Scrpy 설치

scrcpy파일을 다운로드한다. (안드로이드 장치의 화면을 볼 수 있다.)

https://github.com/Genymobile/scrcpy/releases/tag/v3.3.4

adb install C:\Users\A3SC\Downloads\UnCrackable-Level1.apk

 

7. Uncreackable1 실습

Tip. js코드 틀
함수명이 같을 수도 있으니까 패키지.함수명을 쓴다.
Java.perform(function(){
   var root = Java.use("패카지명.클래스");
   root.함수.implementation = function(){
      var retval = this.a();
      console.log(retval)
      return false;
   }  
});

 

unCreakable1 1단계

1단계 정답코드

Java.perform(function(){
   var root = Java.use("sg.vantagepoint.a.c");
   root.a.implementation = function(){
      var retval = this.a();
      console.log(retval)
      return false;
   }  
});


Java.perform(function(){
   var root = Java.use("sg.vantagepoint.a.c");
   root.b.implementation = function(){
      var retval = this.b();
      console.log(retval)
      return false;
   }  
});


Java.perform(function(){
   var root = Java.use("sg.vantagepoint.a.c");
   root.c.implementation = function(){
      var retval = this.c();
      console.log(retval)
      return false;
   }  
});

 

Tip

리소스 AndroidMainifest.xml을 보기
MainActivity - OnCreate - 함수를 타고 들어간다.
(안드로이드 생명주기 OnCreate가 먼저 시작)

 

알림창 Root detected!를 타고 들어가서 보기

 

후킹 방식도 여러 개

  • 리턴값을 변조 false를 true로 변경하거나
  • 함수를 안타게 할 수도 있다.
  • exit(0)을 종료0을 1로 변경하거나

.js파일이 있는 곳에서 실행한다. 

frida-ps -Uai // 프로세스 패키지 이름 확인

frida -U -f owasp.mstg.uncrackable1 -l test.js//js파일 실행

 

후킹 전

Root detected!

확인 누르면 창이 꺼짐

 

후킹 후

 

종료

exit()

 

unCreakable1 2단계

2단계 정답코드

Java.perform(function(){
   var secret = Java.use("sg.vantagepoint.uncrackable1.a");
   secret.a.implementation = function(str){
   
      return true;
   }  
});

vscode(추천) 또는 노트패드에 .js파일로 저장

1단계, 2단계 코드를 분리해 저장해서 돌렸지만 한 번에 같은 파일에 코드를 넣어도 상관없음

 

frida -U -f 패키지명 -l test.js //앱 다시 시작

frida -U -f 패키지명 -l test.js -l test2.js //코드 2개 동시

frida -U -F -p pid -l test.js // 앱 안꺼지고 후킹 실행
frida -U -f owasp.mstg.uncrackable1 -l test.js -l test1.js

 

후킹 후 

728x90
반응형

'cs > sec' 카테고리의 다른 글

UnCrackable Level3(후킹을 활용한 실습 문제 분석)  (1) 2026.01.15
UnCreakable Level2 실습(후킹을 활용한 실습 문제 분석)  (0) 2026.01.15
[모의해킹]도파민을 이용한 iOS 15.8 탈옥 후 Burp  (0) 2026.01.11
[모의해킹]안드로이드 Galaxy S10e 루팅(Rooting) with Magisk  (1) 2026.01.11
[실습] 쉘 코드의 GetPC 루틴 구현 및 디버깅 실습 (FSTENV 패턴)  (0) 2025.12.19
'cs/sec' 카테고리의 다른 글
  • UnCrackable Level3(후킹을 활용한 실습 문제 분석)
  • UnCreakable Level2 실습(후킹을 활용한 실습 문제 분석)
  • [모의해킹]도파민을 이용한 iOS 15.8 탈옥 후 Burp
  • [모의해킹]안드로이드 Galaxy S10e 루팅(Rooting) with Magisk
lakedata
lakedata
lakedata 님의 블로그 입니다.
  • lakedata
    lakedata 님의 블로그
    lakedata
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • cs (82)
        • dev (28)
        • sec (29)
        • ops (25)
      • 자격증 (32)
        • 정보처리기사 (20)
        • 정보보안기사 (1)
        • aws dva (6)
        • aws dop (2)
      • IT서적 (27)
        • 클린아키텍처 (10)
        • 객체지향의사실과오해 (7)
        • 오브젝트 (10)
      • 코테 (42)
        • 알고리즘 (20)
        • 백준 (13)
        • 프로그래머스 (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    SQL
    AWS
    Security
    알고리즘
    Spring
    docker
    CS
    Java
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
lakedata
Frida 환경 설정 가이드 및 UnCreakable Level1 실습(후킹을 활용한 실습 문제 분석)
상단으로

티스토리툴바