大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、android源码被混淆了还原方法为:得到 classes.dex文件;直接用机器上的解压软件 打开 .apk 文件,解压出 classes.dex 文件。
在景宁畲族自治等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、成都网站设计 网站设计制作定制网站建设,公司网站建设,企业网站建设,品牌网站设计,全网营销推广,外贸网站制作,景宁畲族自治网站建设费用合理。
2、运行apktool.bat d xxx.apk,把apk反编译成smali 如果想要进一步查看源码,可下载smali2java 使用smali文件的文件名进行分析,如果存在1个或1个以上的资源类的smali文件,就可以证明该apk没有被混淆过。
3、布局混淆 布局混淆是指删除或者混淆软件源代码或者中间代码中与执行无关的辅助文本信息,增加攻击者阅读和理解代码的难度。
1、特定类的public函数不做实际的事情,只做简单处理后调用private函数。proguard对会对一些特定类的public函数不做混淆,以便被AndroidManifest.xml和各种layout引用。
2、第一个文件是描述文件,第二个文件是配置文件。如果要实现代码混淆,需要修改第二个文件。打开第二个文件,如下:其中红线部分说,如果你要实现代码混淆,你需要把下面一行给反注释掉。
3、新增内容如下,这里需要注意,网上很多demo,基本分为三部分,一部是保留app基础功能部分的内容不混淆;2是保持app对外接口,例如get、set、isxx、AIDL、public、native层的接口或者类;是第三方jar包或接口。
4、proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 某些方式创建的项目中可能已经有如上两行了,只是默认被注释掉了,只要把proguard.config这一行解注释就好了。
改为 call %java_exe% -jar %PROGUARD_HOME%\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9 就ok了。
因为是对接口名进行替换,如果出现混淆问题的话,log里面一定会有类似 这个时候只需要对相关接口进行例外(-keep)即可,然后用android-studio,直接打开或者dex2jar进行反解可以看到相关的接口是否被简单替换。
混淆是不会导致反编译失败的,只是说,代码变得难以读懂,而不会导致反编译失败! 混淆和反编译是两个互不相干的概念。
因为是对接口名进行替换,如果出现混淆问题的话,log里面一定会有类似 这个时候只需要对相关接口进行例外(-keep)即可,然后用android-studio,直接打开或者dex2jar进行反解可以看到相关的接口是否被简单替换。
对代码进行优化(使用adt插件导出的apk,还进行zipalign优化)缺省情况下,proguard会混淆所有代码,但是下面几种情况是不能改变java元素的名称,否则就会导致程序出错。
两种方式,一种开发工具eclipse,还有就是用apktool工具。 I、只要Run As Android Application 过,到工作目录的bin文件夹下就能找到与项目同名的apk文件。
布局混淆是最简单的混淆方法,它不改变软件的代码和执行过程。 数据混淆 数据混淆是修改程序中的数据域,而对代码段不作处理。常用的数据混淆方式有合并变量、分割变量、数组重组、字符串加密等。
缺省情况下,proguard会混淆所有代码,但是下面几种情况是不能改变java元素的名称,否则就会导致程序出错。
Project target.target=android-16 复制代码 以上的配置信息即是 project.properties 文件中内容,蓝色文字为我们在代码混淆过程中需要添加的配置信息,其中:sdk.dir 为你在当前机器上 SDK 的安装路径。
1、包名 package com.example.test类名 public class WebAppInterface{}加上完整的包名才行。
2、预防混淆 预防混淆一般是针对专用的反编译器设计的,目的就是预防被这类反编译器反编译。他是利用特定的反编译器或反混淆器的弱点进行专门设计。
3、在proguard-project.txt文件中添加不需要混淆的类和第三方的jar包 这个是保持自己包中不需要混淆的类,如果有些类调用了jni也不需要混淆,不然会出错。