美文网首页
寻找消失的类名

寻找消失的类名

作者: fenfei331 | 来源:发表于2022-07-22 14:46 被阅读0次

    一、目标

    前几天有个朋友问了我一个新手问题,frida提示: 找不到 p009cn.com.chinatelecom.gateway.lib.C1402a 这个类

    main.png

    1:main

    原因是,jadx反编译的时候,为了反混淆,会把类名做个处理,加上几个数字,这样好让你分辨,不会满眼都是变量a。

    实际上他已经提示你了,这个类的真实类名是 cn.com.chinatelecom.gateway.lib.a

    本以为事情就这么过去了,谁知道没过两天,在一个夜黑风高的的晚上,我也遇到了这个问题。

    二、步骤

    类名是奇怪字符

    老江湖也遇到新问题了,这个类名是什么鬼?

    step1.png

    1:step1

    现在的App太不讲武德了,混淆我也就忍了,搞出个鬼画符,是什么操作?

    这个符可不好打出来,常规操作是直接把类名复制到js里面,结果不好使,frida依然抱怨 找不到这个类。

    查了一下js文档,有个 encodeURIComponent() 函数,可以把这种鬼画符通过 UTF-8 编码的转义 然后打印出来。

    但是这个类名的转义字符是啥呢?

    遍历之

    我们可以找个取巧的方式,把这个包下的类都遍历出来,这样不就可以知道这个类名的UTF-8 编码的转义了吗?

    Java.enumerateLoadedClasses({
        onMatch: function(className) {
            if(className.indexOf('com.google.android.material.tooltip') >=0 ){
                console.log(className.toString());
                console.log(encodeURIComponent(className.toString()));
            }
        },
        onComplete:function(){
        }
    });
    

    跑一下,符显形了。

    show1.png

    1:show1

    Hook之

    拿到了转义编码之后如何hook呢? 这时候就需要 decodeURIComponent函数了

    var hookCls = Java.use(decodeURIComponent('com.google.android.material.tooltip.%DB%A4%DB%A4%DB%9F%DB%A6'));
    

    这次frida就不抱怨找不到类名了。

    成员函数名

    找到了类名当然不是我们的目的,我们的目的是星辰大海,哦不,是hook成员函数呀。

    step2.png

    1:step2

    不出所料,它的方法名,依然是鬼画符。

    这时候我们就需要去遍历方法名了

    var hookCls = Java.use(decodeURIComponent('com.google.android.material.tooltip.%DB%A4%DB%A4%DB%9F%DB%A6'));
    var methods = hookCls.class.getDeclaredMethods();
    
    for (var i in methods) {
        console.log(methods[i].toString());
        console.log(encodeURIComponent(methods[i].toString().replace(/^.*?.([^\s.()]+)(.*?$/, "$1")));
    }
    

    结果倒是没问题,就是分辨起来还有点麻烦。只能从成员函数的入参和返回值来分辨我们想要hook的成员函数

    show2.png

    1:show2

    Hook这个成员函数的代码如下

    hookCls[decodeURIComponent("%DB%9F%DB%A3%DB%A5%DB%9F%DB%A3")]
               .implementation = function () {
                            console.log("m1344 =============== ");
                            return "xxx";
    
               }
    

    搞定,收工~

    三、总结

    为了抵抗分析,App能想的办法都想了。只能比谁藏的更深,找的更快了。

    ffshow.png

    总把平生入醉乡

    相关文章

      网友评论

          本文标题:寻找消失的类名

          本文链接:https://www.haomeiwen.com/subject/mzvmirtx.html