inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

프리다(Frida)를 이용한 안드로이드 앱 모의해킹

챌린지 풀어보기, 다섯번째

js 메소드

317

Barro

작성한 질문수 6

0

overload()메소드가 자바스크립트에서는 없는 메소드 인것 같은데 어떤 역할을 하는건가요? java.lang.String을 넣은 이유가 뭔지 모르겠습니다. 

원래 메소드 implementation시 인자 없을 때는 chall_05.chall05().implementation = function() {} 작성하는 것은 이해합니다.

메소드에 매개변수가 있을 때는 overload() 메소드를 써야하는 건가요? 

모의해킹 android frida

답변 1

0

김태영

안녕하세요. 보안프로젝트 김태영입니다.

 

overload() 메서드를 이해하려면 먼저 "자바 오버로딩" 개념에 대해 알고 계시면 좋습니다.

 

"자바 오버로딩"이란 클래스 내에 같은 이름을 가진 메서드가 여러 개 존재하고, 각 메서드마다 서로 다른 매개변수를 가지고 있는 메서드를 정의하는 것입니다.

 

만약에 A라는 클래스 내에 B라는 이름을 가진 메서드가 3개가 아래와 같이 존재한다고 생각해봅시다.

이름이 같은 3개의 메서드를 각각 호출하기 위해선 매개변수로 구분하여 호출이 가능합니다.

1>> B(String str)

2>> B(String str, int num)

3>> B(int num1, int num2)

overload("java.lang.String")로 지정하면 첫 번째 메서드가 호출이되고, overload("java.lang.String", "int")로 지정하면 두 번째 메서드가 호출됩니다.

 

챌린지 다섯번째 문제에서 chall05 메서드는 MainActivity 클래스 내에 한 개만 존재하므로 위에서 다룬 방법으로 호출하지 않더라도 가능합니다.

다만, 해당 문제에서 overload()를 사용을 해보기 위해 넣은 것이었습니다.

다시 정리하면, chall05 이름을 가진 메서드는 MainActivity 클래스 내에 한 개만 존재하므로 

chall_05.chall05().overload("java.lang.String").implementation = function(arg) {}

또는

chall_05.chall05().implementation = function(arg) {}

로 작성 가능합니다.

 

감사합니다.

jadx에 alert 문구가 없는 경우

0

185

0

프리다 12.6.11 설치 오류

0

510

2

파이썬 바인딩 오류 문의

0

338

2

스크립트를 넣으면 에러가 발생합니다.

0

330

1

프리다랩 8번 질문

0

317

1

프리다를 녹스로 옮기는 과정에서 문제가 생깁니다ㅜㅜ

0

407

2

pip install frida-tools 버전 문제

0

1344

1

Anaconda에서 진행하는 이유

0

306

1

강의 기본 명령어 활용에서

0

520

1

APK, 특정 클래스에서 사용되는 함수의 호출 그래프

0

509

2

chrome.js는 어디서 다운 받나요?

0

435

1

frida 오류..?

0

760

1

질문입니다.

0

825

1

챌린지 02번 문제와 static 메소드 강의 질문 사항

0

427

1

pin brute force 시 앱 종료

0

555

1

frida -U [연결 프로세스] 후 에러

0

2113

1

FRIDA 활용-암호 복호화

0

522

1

프리다랩06번 스크립트 질문

0

668

1

frida sslPinning 질문

1

578

2

java.choose

0

301

1

frida usb 인식

0

401

1

선생님 구글메일로 질문메일 하나보냈습니다 답변부탁드립니다.

0

301

1

get_usb_device 에러 문의

0

739

2

frida-server 파일이 디렉토리로 저장됩니다.

0

641

1