470798745 发表于 2021-2-13 13:43

已经快一周了 就差最后的签名校验了 怀疑是在so文件中做的签名校验

一开始我以为是在java层做的签名校验,全局搜索signature找到这里调用系统的获取签名的方法。

修改后发现不行, 在这里下了断点后调试发现根本没有在这里停下来过。就怀疑是.so文件做校验处理。
只有一个.so 文件,另一个是空的

拖到ida里面看export表里的函数名,好家伙都是天文(小菜鸡一个。。)

看论坛里的教程搜索signature来到这个位置

同样把BEQ跳转改了一下还是不行。。。最后实在没有法子了想求助一下论坛的大佬们,有没有什么思路
应用链接:
链接:https://pan.baidu.com/s/1HnOPbkcp1ENlMqXtHJGCAQ
提取码:o6yr
复制这段内容后打开百度网盘手机App,操作更方便哦

芽衣 发表于 2021-2-13 13:43

我还是帮你hook好了

https://qoop.lanzouj.com/itWLVln5rbc

芽衣 发表于 2021-2-13 16:44

像这个一键hook不行吗?没必要手改那么麻烦

470798745 发表于 2021-2-13 19:52

芽衣 发表于 2021-2-13 16:44
像这个一键hook不行吗?没必要手改那么麻烦

一键hook是编xposed模块吗? 如果那样子的话给别人用的话不就是对方手机要root

芽衣 发表于 2021-2-13 21:19

470798745 发表于 2021-2-13 19:52
一键hook是编xposed模块吗? 如果那样子的话给别人用的话不就是对方手机要root

不是啊,安卓有很多工具可以一键hook签名的,mt管理器或者np管理器都可以。

芽衣 发表于 2021-2-13 21:24

而且我看你给的那个so图表,感觉像是获取签名的函数,这里不能改的,你应该找一下调用。

lies2014 发表于 2021-2-13 21:32

运行后不是有签名被篡改的提示吗,这个提示是在com/uzmap/pkg/uzcore/r$a.smali显示的,去那里找找线索吧

470798745 发表于 2021-2-13 21:52

lies2014 发表于 2021-2-13 21:32
运行后不是有签名被篡改的提示吗,这个提示是在com/uzmap/pkg/uzcore/r$a.smali显示的,去那里找找线索吧

这里我已经排查过了,在这个入口之前就有做签名的判断了,这里只是做一个错误的输出,我尝试过用没有签名的版本是不会走到这里的。。而且这个是一个单独的线程,找不到调用的位置。

470798745 发表于 2021-2-13 21:55

芽衣 发表于 2021-2-13 21:24
而且我看你给的那个so图表,感觉像是获取签名的函数,这里不能改的,你应该找一下调用。

调用的位置都被混淆了。。我看不出是什么意思
部分代码:

package com.uzmap.pkg.uzcore.external;

import com.uzmap.pkg.uzapp.d;

/* access modifiers changed from: package-private */
public final class Enslecb {
    static {
      System.loadLibrary("sec");
    }

    private Enslecb() {
    }

    private static native String bbs(byte[] bArr, int i);

    private static native String bmd(byte[] bArr, int i);

    private static native String bs(String str, int i);

    private static native String km(Object obj);

    private static native String md(String str, int i);

    private static native String oc(Object obj);

    private static native String og();

    private static native byte[] oh(byte[] bArr, String str);

    private static native byte[] ohs(byte[] bArr, String str);

    private static native String pm(Object obj);

    private static native byte[] rc(byte[] bArr, String str);

    private static native boolean sm(Object obj);

    protected static synchronized String xbde(byte[] b) {
      String bbs;
      synchronized (Enslecb.class) {
            bbs = b == null ? "" : bbs(b, 1);
      }
      return bbs;
    }

    protected static synchronized String xben(byte[] b) {
      String bbs;
      synchronized (Enslecb.class) {
            bbs = b == null ? "" : bbs(b, 0);
      }
      return bbs;
    }

    protected static synchronized String xbmd(byte[] b, int h) {
      String bmd;
      synchronized (Enslecb.class) {
            bmd = b == null ? "" : bmd(b, h);
      }
      return bmd;
    }

    protected static synchronized String xde(String s) {
      String bs;
      synchronized (Enslecb.class) {
            if (s == null) {
                s = "";
            }
            bs = bs(s, 1);
      }
      return bs;
    }

470798745 发表于 2021-2-13 22:45

芽衣 发表于 2021-2-13 22:06
我还是帮你hook好了

https://qoop.lanzouj.com/itWLVln5rbc

万分感谢!但是我还是想知道您是用什么hook呢? 想学习一下
页: [1] 2
查看完整版本: 已经快一周了 就差最后的签名校验了 怀疑是在so文件中做的签名校验