Notice
Recent Posts
Recent Comments
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
07-15 17:05
Today
Total
관리 메뉴

해킹공주의 일상

[Frida] Java.use 와 Java.choose 차이점 본문

모의해킹/MOBILE

[Frida] Java.use 와 Java.choose 차이점

7.3.7 2022. 11. 29. 14:51

1. Java.use

: static 변수 및 메소드는 프로그램 실행 시 메모리에 자동으로 올라오므로 인스턴스를 생성해서 호출할 필요가 없다. 이때는 Java.use 를 사용해서 후킹한다.

 

 

- 다음 코드는 위 코드에서 chall07 값을 변조하는 코드이다.

Java.perform(function() {
    var chall_07 = Java.use("uk.rossmarks.fridalab.challenge_07"); 
    chall_07.chall07.value=1;
    
    chall_07.check07Pin.overload("java.lang.String").implementation = function(){
    var retval = this.check07Pin.call(this);
    console.log("ret :" + retval)
    
    // do something
    }
});

 

2. Java.choose

: static 변수가 아닐 때에는 인스턴스를 생성한 후에 호출해야한다. 이때는 Java.choose를 사용해서 후킹한다.

 

- 다음 코드는 위 코드에서 chall03 함수를 실행하는 코드이다.

Java.perform(function() {
    var Main;
    Java.choose("uk.rossmarks.fridalab.MainActivity",
    { 
        onMatch:function(instance){
            main=instance;
            main.chall03();
        },
        onComplete:function(){
        }
    });
});
Comments