관리 메뉴

Information Security

FridaLab - Change 'check' button's text value to 'Confirm' 본문

모바일/Frida

FridaLab - Change 'check' button's text value to 'Confirm'

HackingPractice 2020. 12. 16. 18:06

FridaLab 앱의 [CHECK] 버튼을 [Confirm]으로 바꾸는 문제인 것 같다.

boolean은 참/거짓으로 return한다. findViewById 메서드를 사용하고 있으며, 값을 가져와서 getText() 메서드를 사용한다. equals() 메서드를 통해 Confirm 문자열과 비교 후, 동일하다면 문제를 해결할 수 있다.

그림 8-1 chall08

객체 클래스가 Button인 것을 확인할 수 있고 반환 자료형은 button, 최종 값은 String이 되어야 한다.

그림 8-2 button

check 값이 2131165231로 설정되어 있는 것을 확인할 수 있다.

그림 8-3 Check

Java.cast(handle, klass)

- Java.use로부터 받은 클래스라는 이름이 담긴 변수가 존재 -> 이 값을 handle에 준다. (checkid)

- button 객체로 만들기 위해 klass 변수를 만든다.

- klass를 handle에 지정

그림 8-4 소스코드

setText() 인자값으로 매치될 수 있는 6개의 오류를 보여준다. int형과 많은 인자 값을 주는 오류를 제외하고 나면 'java.lang.CharSequence'가 나온다. 이 오류를 해결하기 위해 string과 관련된 객체인 'Java.lang.String'을 사용한다.

그림 8-5 오류 메시지

$new()

- Java.use로 사용한 클래스로 반환된 객체를 인스턴스화 시켜준다.

- 지정한 "Confirm"이 들어가서 전체적으로 동작하여 Java.lang.String에 대한 형태로 변경 후 setText() 메서드에서 이용하게 된다.

그림 8-6 String

새로운 쓰레드에서 UI를 변경할 때 나는 에러다.

그림 8-7 에러

check에서 CONIFRM으로 변경된 것을 알 수 있다.

그림 8-8 정답