重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
android源码被混淆了还原方法为:得到 classes.dex文件;直接用机器上的解压软件 打开 .apk 文件,解压出 classes.dex 文件。
创新互联建站主要从事成都网站建设、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务舒兰,十年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
运行apktool.bat d xxx.apk,把apk反编译成smali 如果想要进一步查看源码,可下载smali2java 使用smali文件的文件名进行分析,如果存在1个或1个以上的资源类的smali文件,就可以证明该apk没有被混淆过。
布局混淆 布局混淆是指删除或者混淆软件源代码或者中间代码中与执行无关的辅助文本信息,增加攻击者阅读和理解代码的难度。
混淆是针对代码而言的,让别人不容易读懂而已,你这不是混淆了,应该是加密 其实如果你有重要信息,完全没必要放到AndroidManifest.xml中,放到其他地方啊。
特定类的public函数不做实际的事情,只做简单处理后调用private函数。proguard对会对一些特定类的public函数不做混淆,以便被AndroidManifest.xml和各种layout引用。
第一个文件是描述文件,第二个文件是配置文件。如果要实现代码混淆,需要修改第二个文件。打开第二个文件,如下:其中红线部分说,如果你要实现代码混淆,你需要把下面一行给反注释掉。
新增内容如下,这里需要注意,网上很多demo,基本分为三部分,一部是保留app基础功能部分的内容不混淆;2是保持app对外接口,例如get、set、isxx、AIDL、public、native层的接口或者类;是第三方jar包或接口。
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 某些方式创建的项目中可能已经有如上两行了,只是默认被注释掉了,只要把proguard.config这一行解注释就好了。
设置minifyEnabled true,就会在打包的时候进行代码混淆处理. 其中proguard-android.txt不用管,在sdk目录里面,主要是配置了proguard.cfg文件。
两种方式,一种开发工具eclipse,还有就是用apktool工具。 I、只要Run As Android Application 过,到工作目录的bin文件夹下就能找到与项目同名的apk文件。
运行apktool.bat d xxx.apk,把apk反编译成smali 如果想要进一步查看源码,可下载smali2java 使用smali文件的文件名进行分析,如果存在1个或1个以上的资源类的smali文件,就可以证明该apk没有被混淆过。
改为 call %java_exe% -jar %PROGUARD_HOME%\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9 就ok了。
因为是对接口名进行替换,如果出现混淆问题的话,log里面一定会有类似 这个时候只需要对相关接口进行例外(-keep)即可,然后用android-studio,直接打开或者dex2jar进行反解可以看到相关的接口是否被简单替换。
混淆是不会导致反编译失败的,只是说,代码变得难以读懂,而不会导致反编译失败! 混淆和反编译是两个互不相干的概念。
布局混淆 布局混淆是指删除或者混淆软件源代码或者中间代码中与执行无关的辅助文本信息,增加攻击者阅读和理解代码的难度。
然后就要去proguard-rules.pro写入我们的混淆的规则(如文件其名),防止重要的类被混淆移除了。
代码混淆有两种重要功能。其一,混淆代码。其二,优化代码。进行代码混淆的程序被称为代码混淆器(混淆工具)。进行代码混淆的意义主要在于对代码进行一定程度的加密。
代码混淆(code obfuscation)是指将计算机程序的代码,转换成一种功能上等价,所谓功能上的等价是指其在变换前后功能相同或相近。
设置minifyEnabled true,就会在打包的时候进行代码混淆处理. 其中proguard-android.txt不用管,在sdk目录里面,主要是配置了proguard.cfg文件。
代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。
安卓在eclipse中的ADT已经改变原有的模式了,你在项目文件中找到这两个文件,一般在项目根目录里。第一个文件是描述文件,第二个文件是配置文件。如果要实现代码混淆,需要修改第二个文件。
布局混淆是最简单的混淆方法,它不改变软件的代码和执行过程。 数据混淆 数据混淆是修改程序中的数据域,而对代码段不作处理。常用的数据混淆方式有合并变量、分割变量、数组重组、字符串加密等。
缺省情况下,proguard会混淆所有代码,但是下面几种情况是不能改变java元素的名称,否则就会导致程序出错。
Project target.target=android-16 复制代码 以上的配置信息即是 project.properties 文件中内容,蓝色文字为我们在代码混淆过程中需要添加的配置信息,其中:sdk.dir 为你在当前机器上 SDK 的安装路径。
代码混淆有两种重要功能。其一,混淆代码。其二,优化代码。进行代码混淆的程序被称为代码混淆器(混淆工具)。进行代码混淆的意义主要在于对代码进行一定程度的加密。
简单来说,Android 进行ProGuard,可以起到压缩,混淆,预检,优化的功能,虽然不能说更安全但还是一个不容忽视的环节。
特定类的public函数不做实际的事情,只做简单处理后调用private函数。proguard对会对一些特定类的public函数不做混淆,以便被AndroidManifest.xml和各种layout引用。