0Pricing
Ethical Hacking Academy · 강의

Frida를 활용한 동적 분석

Frida와 후킹

Frida를 활용한 동적 분석은(는) CoddyKit의 무료 Ethical Hacking Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ethical Hacking Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ethical Hacking Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

Frida란 무엇입니까

Frida는 동적 계측 도구 모음입니다. 실행 중인 앱에 JavaScript 엔진을 주입하여 다시 컴파일하지 않고도 런타임에 동작을 검사하고 수정할 수 있게 합니다.

동적 모바일 침투 테스트에서 가장 중요한 도구입니다.

Frida의 작동 방식

Frida는 작은 에이전트(기기에서 실행되는 frida-server)와 사용자 컴퓨터의 클라이언트로 구성됩니다. 대상 프로세스의 함수에 후킹하는 JavaScript를 작성합니다.

스크립트로 인수를 읽고, 반환 값을 변경하며, 메서드를 직접 호출할 수 있습니다.

설정

일치하는 frida-server 바이너리를 루팅된 기기에 푸시하거나(루팅되지 않은 기기에서는 frida-gadget이 포함된 패치된 APK를 사용) 실행합니다.

그런 다음 데스크톱 도구가 USB를 통해 연결됩니다.

adb push frida-server /data/local/tmp/
adb shell /data/local/tmp/frida-server &

앱 열거

Frida CLI 도구로 설치된 앱과 실행 중인 프로세스를 나열하여 연결을 확인하십시오.

이를 통해 frida-server에 연결할 수 있는지 확인하고 대상으로 삼을 패키지 이름을 얻을 수 있습니다.

frida-ps -Uai

후킹이란 무엇입니까

후킹은 함수의 실행을 가로채어 그 함수 전이나 후에, 또는 함수 대신에 사용자 코드를 실행하는 것을 의미합니다. 입력을 기록하거나 출력을 검사하거나 동작 전체를 바꿀 수 있습니다.

Android에서는 실행 중인 앱 내부의 Java 메서드와 네이티브 함수에 후킹합니다.

간단한 Java 후킹

Java.perform 내부에서 클래스를 선택하고 메서드를 고른 다음 해당 메서드의 implementation을 재정의합니다. 인수를 기록한 후 원래 메서드를 호출할 수 있습니다.

이 예제는 JSON에서 안전하게 처리되도록 백틱이 아니라 작은따옴표를 사용한다는 점에 유의하십시오.

Java.perform(function(){
  var Login = Java.use('com.app.Login');
  Login.check.implementation = function(pw){
    console.log('pw=' + pw);
    return this.check(pw);
  };
});

검사 우회

로직을 우회하려면 메서드를 재정의하여 원하는 값을 반환하게 하십시오. 예를 들어 루트 검사나 라이선스 검사가 false(감지되지 않음) 또는 true(승인됨)를 반환하도록 강제할 수 있습니다.

이렇게 하면 기기를 신뢰하는 클라이언트 측 보안을 무력화할 수 있습니다.

RootCheck.isRooted.implementation = function(){ return false; };

SSL 고정 우회

앱은 프록시를 거부하기 위해 SSL 고정을 사용합니다. Frida 스크립트(널리 사용되는 Objection이나 범용 고정 우회 스크립트 등)는 고정 로직에 후킹하여 HTTPS 트래픽을 가로챌 수 있게 합니다.

프록시를 통해 앱의 API 호출을 검사하는 데 필수적인 방법입니다.

frida -U -f com.app -l ssl-bypass.js

Objection

Objection은 Frida를 기반으로 하며, 스크립트를 작성하지 않고도 SSL 고정 우회, 키 저장소 덤프, 활동 목록 조회, 앱 저장소 읽기 같은 즉시 사용할 수 있는 명령을 제공합니다.

평가 중에 수행하는 일반적인 작업을 빠르게 처리할 수 있습니다.

objection -g com.app explore

생성 방식과 연결 방식

Frida는 실행 중인 프로세스에 연결하거나, 처음부터 스크립트를 불러온 상태로 앱을 새로 생성할 수 있습니다(-f).

시작 중 수행되는 변조 방지 검사처럼 일찍 실행되는 코드에 후킹해야 할 때는 생성 방식이 필요합니다.

frida -U -f com.app -l hook.js --no-pause

frida-trace로 추적하기

frida-trace는 패턴과 일치하는 함수에 대한 후킹 코드를 자동으로 생성하고 연결하여 모든 호출을 기록합니다. 앱이 실제로 어떤 메서드를 사용하는지 알아내는 데 유용합니다.

Java 메서드나 네이티브 함수를 대상으로 지정한 다음, 생성된 처리기를 수정하여 특정 인수를 검사할 수 있습니다.

frida-trace -U -f com.app -j '*Crypto*!*'

빠른 확인

Frida의 핵심 기능을 떠올려 보십시오.

정리

이제 Frida를 사용한 동적 분석을 이해하셨습니다.

  • Frida는 JS 엔진을 주입하여 실행 중인 앱의 함수에 후킹합니다.
  • frida-server를 설정하고, frida-ps로 앱을 열거한 다음 Java 메서드에 후킹합니다.
  • 메서드를 재정의하여 검사와 SSL 고정을 우회하며, Objection으로 이를 자동화할 수 있습니다.
  • 생성 모드를 사용하여 시작 초기에 실행되는 코드를 포착합니다.

다음에는 안전하지 않은 저장 방식과 통신을 살펴봅니다.

자주 묻는 질문

“Frida를 활용한 동적 분석” 강의는 무료인가요?

네 — “Frida를 활용한 동적 분석” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ethical Hacking Academy 강의 전체를 잠금 해제할 수 있습니다. Ethical Hacking Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“Frida를 활용한 동적 분석”에서 뭘 배우나요?

Frida와 후킹 브라우저에서 직접 실행하는 실습 코드로 Ethical Hacking Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Ethical Hacking Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Ethical Hacking Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“Frida를 활용한 동적 분석” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Ethical Hacking Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Ethical Hacking Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Android 앱 구조
  2. APK 정적 분석
  3. Frida를 활용한 동적 분석
  4. 안전하지 않은 저장소와 통신
← Ethical Hacking Academy(으)로 돌아가기