首页
社区
课程
招聘
未解决 新人在frida hook的时候的一个问题
发表于: 2020-11-5 09:06 2158

未解决 新人在frida hook的时候的一个问题

2020-11-5 09:06
2158

如下面这段代码

1
2
3
4
5
6
7
8
9
10
11
public class EncryptUtil{
    static {
        System.loadLibrary("encryptsec");
    }
 
    public static String encryptString(String str) {
        return nativeEncryptString(str);
    }
 
    private static native String nativeEncryptString(String str);
}

如果自己对encryptString进行hook了,然后该方法体中返回值通过调用nativeEncryptString来进行返回,这样的写法就会导致程序崩溃

1
2
3
4
5
6
7
8
Java.perform(function () {
    var EncryptUtil = Java.use("com.XXXX.utils.EncryptUtil");
    EncryptUtil.encryptString.implementation = function (a) {
        send("EncryptUtil.encryptString​ args[0]: " + a);
        var result = this.nativeEncryptString​(a);
        return result;
    }
});

但是直接对nativeEncryptString该方法进行hook 然会返回值再次调用nativeEncryptString来进行返回,这样的写法就不会导致程序崩溃

1
2
3
4
5
6
7
8
Java.perform(function () {
    var EncryptUtil = Java.use("com.XXXX.utils.EncryptUtil");
    EncryptUtil.nativeEncryptString.implementation = function (a) {
        send("EncryptUtil.nativeEncryptString args[0]: " + a);
        var result = this.nativeEncryptString(a);
        return result;
    }
});

具体原因不懂,能否有大佬告知下?


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2020-11-5 11:20 被初学逆向编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 3139
活跃值: (588)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
Java.perform(function () {
    var EncryptUtil = Java.use("com.XXXX.utils.EncryptUtil");
    EncryptUtil.encryptString.implementation = function (a) {
        send("EncryptUtil.encryptString​ args[0]: " + a);
        var result = this.nativeEncryptString​(a);????????????????
        return result;
    }
});
明显代码有误,应该是var result = this.encryptString​(a);
2020-11-5 10:28
0
雪    币: 1282
活跃值: (1342)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
wx_GodA Java.perform(function () { var EncryptUtil = Java.use("com.XXXX.utils.EncryptUtil"); ...
不好意思,我这里忘记标注了,这两个函数都是在一个类中的
2020-11-5 11:19
0
游客
登录 | 注册 方可回帖
返回
//