美文网首页
关于Activity混淆

关于Activity混淆

作者: 顺几 | 来源:发表于2018-11-15 11:53 被阅读12次

    不参与混淆的类或者组件,只要是为了让应用在执行过程中能准确找到对应的类。像四大组件,我们知道一般情况下Activity的子类是不能混淆的,但是呢,并不是说完全不能混淆。

    以下为摘抄内容,出自:逆向一款收费版的开发工具

    我们知道一般情况下Activity的子类是不能混淆的,但是呢这句话说的不完全。确切的说应该是在Manifest文件中注册的Activity是不能混淆的。因为Manifest文件中要写一个Activity的class的路径的字符串。如果原始的类被混淆了,而字符串没有修改,那么Android系统在做安全验证的时候就会找不到Activity,那么就没办法通过安全验证。但是设想一下如果我们的继承关系是这个样子的:

    MainActivity--->BaseActivity ---->Activity

    那么试问,这个BaseActivity是不是可以混淆,经过验证这个是可以混淆的。因为BaseActivity 不需要在Manifest文件中注册,而MainActivity需要。那么我们变通一下。把这个继承链加长

    a--->MainActivity--->BaseActivity ---->Activity

    这个时候,a 类的实现是这个样子的:

    public class  a  extends  MainActivity{}

    其实a里面啥也没有,就是个占位符,这个a并不是混淆生成的,而是我们本来就把这个类命名为a。并且在Manifest文件里面我们就注册这个a类。那么试问这个时候,MainActivity 和 BaseActivity是不是就可以参与混淆。而这个时候我们的所有业务依然在MainActivity里面实现,a仅仅是个看起来像是混淆名字的占位符而已。。。。

    相关文章

      网友评论

          本文标题:关于Activity混淆

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