코드 분석

MainActivity

MainActivity에서 CHECK 버튼 클릭 시 chall05()를 호출하는 것을 확인할 수 있다.

하지만, 호출 시 파라미터 값으로 문자열 "notfrida!"을 넘김으로 completeArr의 4번째 인덱스 값이 0으로 지정된다.

Write Up

Java.perform(() => {
  console.log("\n* Hooking Start *")

  var challenge05 = () => {
      var MainActivity = Java.use("uk.rossmarks.fridalab.MainActivity")
      MainActivity.chall05.overload('java.lang.String').implementation = function (arg) {
          this.chall05("frida")
      }

      console.log("challenge_05 solved!")
  }

  // Hooking Function Call
  challenge05()
})​

오버로딩을 통해 chall05()를 호출 시 chall05("frida")로 호출되도록 후킹하여 문제 해결을 하였다.

복사했습니다!