通过某软件学习简单本地签名检测方法

1.准备工作

帮一个朋友看一个软件的检测,说对软件的Application里面也加入了一些调试打印的方法,但是一直都走不了,软件就直接停止运行。

这是他的截图:




推辞不过,就打开电脑看一下了。

2.开始分析


打开先看AndroidManifest.xml配置清单文件,去了解我们需要知道的信息。







软件包名,是否有Application字段,启动Activity都是我们需要了解的内容。

结合朋友说的测试方法,以及看到软件的Application字段,我们先打开看一下这个类里面的流程。Application类是优先于MainActivity的,去做一些初始化的操作。

我们打开Application:







构造方法这里没什么内容,我们继续往下看:





结合朋友给我发的那张图他自己加入的打印方法,可以发现第一个方法vr.h(this)上面他没加打印,所以我们打开看一下这个方法.





看到这个,既有Signature的获取方法,又有killProcess方法,我们就可以直接确定这里是验证的地方了。

好吧,都不用调试就直接判断了,对朋友的分析也是佩服了,就差这一行代码舍不得看,把下面的几个方法都加入调试信息了。



3.测试

我们直接将那个h(context)方法返回void.




可以看到直接测试通过。



4.思考

虽然写这个判断需要很多行代码,但是过验证的方法,最终是都可以归结到一个判断上面的。

然后我们这里补充一下在java层的常用方法:

这个是从网上摘抄的:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值