코드 분석

MainActivity

chall03 메소드는 false를 리턴하고 있었다.

해당 리턴 값인 false를 true로 리턴하는 것으로 변경하는 것이 Challenge 03 문제이다.

 

Write Up

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

  var challenge03 = () => {
      var MainActivity = Java.use("uk.rossmarks.fridalab.MainActivity")
      MainActivity.chall03.overload().implementation = () => true

      console.log("challenge_03 solved!")
  }

  // Hooking Function Call
  challenge03()
})
 

간단하게 Overload 메소드를 이용하여 chall03 메소드가 호출하였을 때 true를 리턴하도록 오버로딩을 하였다.

쉽게 이해하자면, chall03 메소드가 true를 리턴하도록 덮어쓰기를 하였다고 생각하면 된다.

 

사용된 API

  1. Class.Method.overload().implementation
    하나의 클래스에서 동일한 이름을 가진 메소드가 존재 시 각각 인자의 개수 및 타입에 따라 다르게 후킹할 때 사용되는 API이다

 

복사했습니다!