365bet官方伴您365天开心!
当前位置: > 365bet备用 >

Android 混淆问题排查

时间:2019-11-12 01:35来源:原创 作者:admin 点击:

  近期在开辟过程当中,突然出现混淆后依次出现运转时异常,编译是正常的,不混淆也是正常的,

  毛病信息以下提醒

  1、经过下面的毛病信息起首会去排查文件可否注册了Appliction,发明都是注册好的。

  2、思考到封闭混淆正常,开启混淆异常,那么就定位到时混淆的后果

  3、既然是混淆后果那就检查混淆设备文件,基本的设备都曾经防混淆了

  4、接上去的思路就是经过反编译来检追究竟出了啥额后果

  我们看到下面反编译的代码

  在这里拔出图片刻画

  我们的秉承的application被混淆了

  那么在’proguard-rules.pro’中参与一句

  运转后报错以下:

  看到毛病信息变更了,心里应当高兴,看来离处理后果更近一步了。

  在这里拔出图片刻画

  我们继续反编译,看到秉承的接口照样有后果的,固然认为不是这个惹起的然则强制症,把接口防混淆,参与以下代码:

  运转后依然是异样的毛病信息,反编译后代码以下:

  在这里拔出图片刻画

  此时对比代码剖析,应当是以下后果形成的,

  混淆前:

  混淆后:

  看来也被混淆了,接上去在’proguard-rules.pro’中参与一句

  接上去就是见证奇不美观的时辰,果真运转正常,我们看一下混淆后的代码

  在这里拔出图片刻画

  综上,我们可以剖析出来是我们的包下面的文件都被混淆了,因而我们把和合二为一 不外依照事理来讲这个不应当被混淆,系统会做处理,猜想能够是某个设备招致系统的一些设备掉效,至于该工程为啥这么奇葩待后续剖析。

  所以以后碰到混淆的后果就依照提醒一步一步排查,必然要反编译文件来剖析后果,否则没法定位启事。

  还有第一次混淆后建议反编译检查一下包外面的代码,有没有需求混淆的中间代码被keep掉落了。

------分隔线----------------------------