워게임/FridaLab FridaLab Write Up - Challenge 01. challenge_01 클래스의 chall01 변수의 값을 1로 변경해라 작성자 - LRTK 코드 설명 MainActivity challenge_01 chall01이라는 이름의 클래스 변수가 int 타입으로 선언만 되어있다. MainActivity에서 호출되는 getChall01Int 메소드에선 chall01 클래스 변수에 값을 지정하지 않았기 때문에 chall01 클래스 변수에 지정된 값은 0으로 지정되어 리턴하게 된다. MainActivity에서 getChall01Int 메소드의 반환 값과 1을 비교하였는데, 이는 틀리기 때문에 동작하지 않는다. Write Up Java.perform(function () { console.log("\n* Hooking Start *") var challenge01 = () => { var chall_01 = Java.use("uk.rossmarks.fridalab.challenge_01") chall_01.chall01.value = 1 console.log("\nchallenge_01 solved!") } challenge01() }) Java.use 함수를 통해 후킹할 클래스를 지정한 후 chall01의 값을 1로 변경하였다. 후킹 스크립트를 Frida를 통해 FridaLab 앱의 프로세스에 삽입 후 CHECK 버튼 클릭 시 Challeng 01의 글자 색이 초록색으로 변하는 것을 확인 할 수 있다. 사용된 API Java.perform(Fn)Frida에 요청된 Hooking 대상이 onResume()이 호출된 후 Function이 실행되는 것이다.즉, Hooking 대상이 Dalvik VM에 실행되는지 확인 후 Function을 호출한다는 뜻이다.Frida에 요청된 Hooking 대상이 Dalvik VM에 실행되지 전에 Function을 호출하는 것은 Java.performNow(Fn)이다. Java.use(Class Name)변수와 메소드에 접근할 수 있는 클래스 객체를 반환하는 메소드이다. 공유하기 게시글 관리 MSS 저작자표시 비영리 '워게임 > FridaLab' 카테고리의 다른 글 FridaLab Write Up - Challenge 05. 항상 chall05()에 "frida"를 전송하라. (0) 2022.12.15 FridaLab Write Up - Challenge 04. chall04()에 "Frida"를 전달하라. (0) 2022.12.15 FridaLab Write Up - Challenge 03. Chall03()의 리턴 값을 True로 만들어라. (0) 2022.12.15 FridaLab Write Up - Challenge 02. chall02()를 실행 시켜라. (0) 2022.12.15 FridaLab Write Up - Download & Install (0) 2022.12.15 Contents 당신이 좋아할만한 콘텐츠 FridaLab Write Up - Challenge 04. chall04()에 "Frida"를 전달하라. 2022.12.15 FridaLab Write Up - Challenge 03. Chall03()의 리턴 값을 True로 만들어라. 2022.12.15 FridaLab Write Up - Challenge 02. chall02()를 실행 시켜라. 2022.12.15 FridaLab Write Up - Download & Install 2022.12.15 댓글 0 + 이전 댓글 더보기