Androidandroid 代码混淆还原如何还原?只需要一段代码而已。

博客访问: 259509
博文数量: 116
博客积分: 927
博客等级: 大尉
技术积分: 870
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Android平台
最近在做一些android的项目,对apk文件能够被反编译这一情况有点头大,就花了点时间,研究了下关于apk被反编译的一些解决方法。
&Java的字节码一般是非常容易反编译的,而android采用java编写,生成的apk安装文件实际上就是一个压缩格式,后缀改为.zip,解压
缩,再借用其他工具就能被反编译出来,目前android程序所谓的去广告版、汉化版都是通过反编译修改源码再编译发布的。为了能对源代码就行一些必要的
保护,我们可以对编译好的class文件进行混淆处理。这里我使用了两种解决方案,不过都是通过ProGuard来实现的。ProGuard的就是一个混
淆器。混淆器通过删除从未用过的代码和使用晦涩名字重命名类、字段和方法,对代码进行压缩,优化和混淆。混淆后的结果是一个比较小的.apk文件,该文件
比较难进行逆向工程。
& & & ProGuard是一个SourceForge上非常知名的开源项目。官网网址是:
&&&&方案一:
&目前android
SDK工具集里面已经自带有ProGuard代码混淆,不过,ProGuard混淆默认没有启动,我们可以通过添加一行配置打开混淆。创建新的
Android工程时,如果在工程目录看到了ProGuard的配置文件proguard.cfg,说明你的工程已经加入了ProGuard,这时候只需
要打开project.properties文件,在文件最后加入下面红色部分。
#&This&file&is&automatically&generated&by&Android&Tools.&&
#&Do&not&modify&this&file&--&YOUR&CHANGES&WILL&BE&ERASED!&&
#&This&file&must&be&checked&in&Version&Control&Systems.&&
#&To&customize&properties&used&by&the&Ant&build&system&use,&&
#&"ant.properties",&and&override&values&to&adapt&the&script&to&your&&
#&project&structure.&&
#&Project&target.&&
target=android-4&&
proguard.config=proguard.cfg&&
& & & 这样,ProGuard就启动了,在打包生成apk的时候变会自动进行代码混淆及优化。通过下面的方式导出,并添加android签名就可以直接发布了。
& & & &对该APK进行反编译,打开产生的jar包可以看到,多了好多a、b、c之类的类文件。说明混淆结果已经成功。
关于proguard.cfg的配置
& & & &稍微深入想一下混淆后的结果,会发现如果一些提供给外部的类、方法、变量等名字被改变了,那么程序本身的功能就无法正常实现。那么Proguard如何知道哪些东西是可以改名,而哪些是不能改变的呢?
& & & &这个就是靠proguard.cfg文件来进行配置的。Android工程中默认自动生成的proguard.cfg已经针对Android的一般情况进行了配置,我们打开这个配置文件。内容大概如下:&
-optimizationpasses&5&&
-dontusemixedcaseclassnames&&
-dontskipnonpubliclibraryclasses&&
-dontpreverify&&
-verbose&&
-optimizations&!code/simplification/arithmetic,!field/*,!class/merging/*&&
-keep&public&class&*&extends&android.app.Activity&&
-keep&public&class&*&extends&android.app.Application&&
-keep&public&class&*&extends&android.app.Service&&
-keep&public&class&*&extends&android.content.BroadcastReceiver&&
-keep&public&class&*&extends&android.content.ContentProvider&&
-keep&public&class&*&extends&android.app.backup.BackupAgentHelper&&
-keep&public&class&*&extends&android.preference.Preference&&
-keep&public&class&com.android.vending.licensing.ILicensingService&&
-keepclasseswithmembernames&class&*&{&&
&&&&native&;&&
-keepclasseswithmembernames&class&*&{&&
&&&&public&(android.content.Context,&android.util.AttributeSet);&&
-keepclasseswithmembernames&class&*&{&&
&&&&public&(android.content.Context,&android.util.AttributeSet,&int);&&
-keepclassmembers&enum&*&{&&
&&&&public&static&**[]&values();&&
&&&&public&static&**&valueOf(java.lang.String);&&
-keep&class&*&implements&android.os.Parcelable&{&&
&&public&static&final&android.os.Parcelable$Creator&*;&&
&它主要保留了继承自Activity、Application、Service、BroadcastReceiver、
ContentProvider、BackupAgentHelper、Preference和ILicensingService的子类。因为这些子
类,都是可能被外部调用的。
& & & &另外,它还保留了含有native方法的类、构造函数从xml构造的类(一般为View的子类)、枚举类型中的values和valueOf静态方法、继承Parcelable的跨进程数据类。
& & & &在实际的一个工程项目中,可能Google自动生成的配置不能胜任我们的混淆工作。所以,我们往往需要自己编写一些ProGuard配置。这方面的资料在官网的Manual -> Usage里有详细说明。做android的同学可以研究一下。
& & & &通过将比较敏感的包导出为.jar格式,然后再将混淆过的.jar文件导入原来的工程中作为第三方类库进行调用。
先导出自己工程里面的包为.jar格式,例如为Demo.jar。下图:
& & & &之后,在官网下载ProGuard,然后找到ProGuard/lib/proguard.jar文件。新建文件夹,将ProGuard.jar和Demo.jar放到同一个目录,打开命令行,定位到这个文件夹,执行下面的命令。
java&-jar&proguard.jar&-injars&Demo.jar&-outjars&MyDemo.jar&-libraryjars&D:android/android-sdk/platforms/android-8/android.jar&-printmapping&sdk.map&-keep&"public&class&*&{public&*;}"&&
具体参数的作用,大家查一下官方文档吧。
文件下载地址(ProGuard 及下面的反编译工具):
附:android反编译方法。
1、将要反编译的APK文件后缀改为.zip,解压。得到如下图文件。
2、取出classes.dex文件,拷贝至dex2jar目录。
3、在dex2jar目录运行下列命令行:dex2jar.bat classes.dex,回车。
4、会发现该目录生成了classes.dex.dex2jar.jar文件
5、使用jd-gui.exe打开该文件,便可得到反编译的源码。下图:
阅读(1334) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。Android代码混淆及项目发布方法记录
Android代码混淆及项目发布步骤记录
本来整理了一份Android项目混淆与发布的文档,突然想到何不写篇博客,分享一下呢,如是便有了本文。
Android代码混淆及项目发布步骤记录
一、清理代码中的调试信息,如Log、System.out
二、在清单文件中修改版本为当前版本,如果需要更新数据库,则需要在配置类或配置文件中修改程序数据库版本。
三、在清单文件中将项目的debugable设置为false
四、创建签名证书keystore文件
五、在项目中的project.properites文件中添加语句proguard.config=proguard-project.txt来指定混淆规则文件
六、配置proguard-project.txt文件
七、如果项目引用了Library Project,则Eclipse应该会在project.properties文件中自动生产android.library.reference.1..n=../LibraryProjectName
八、如果项目中包含svntmp(通常位于项目的bin文件夹下),在打包时应及时删除,否则会导致打包失败。
九、项目打包,安装测试(最好是使用现有生成包进行升级测试)
附:示例proguard-project.txt文件及相应说明:
# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html
# Optimizations: If you don't want to optimize, use the
# proguard-android.txt configuration file instead of this one, which
# turns off the optimization flags.&Adding optimization introduces
# certain risks, since for example not all optimizations performed by
# ProGuard works on all versions of Dalvik.&The following flags turn
# off various optimizations known to have issues, but the list may not
# be complete or up to date. (The &arithmetic& optimization can be
# used if you are only targeting Android 2.0 or later.)&Make sure you
# test thoroughly if you go this route.
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
-optimizationpasses 5
-allowaccessmodification
-dontpreverify
#-dontoptimize
# The remainder of this file is identical to the non-optimized version
# of the Proguard configuration file (except that the other file has
# flags to turn off optimization).
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-keepattributes Signature
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keepattributes *Annotation*
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
-keepclasseswithmembernames class * {
&&& native &methods&;
# keep setters in Views so that animations can still work.
# see http://proguard.sourceforge.net/manual/examples.html#beans
#-keepclassmembers public class * extends android.view.View {
#&& void set*(***);
#&& *** get*();
# We want to keep methods in Activity that could be used in the XML attribute onClick
-keepclassmembers class * extends android.app.Activity {
&& public void *(android.view.View);
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
-keepclassmembers enum * {
&&& public static **[] values();
&&& public static ** valueOf(java.lang.String);
-keep class * implements android.os.Parcelable {
& public static final android.os.Parcelable$Creator *;
-keepclassmembers class **.R$* {
# The support library contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version.&We know about them, and they are safe.
-keep class * extends android.view.View{*;}
-keep class * extends android.app.Dialog{*;}
-keep class * implements java.io.Serializable{*;}
#-ignorewarnings
-libraryjars libs/locSDK_4.1.jar
-libraryjars libs/pinyin4j-2.5.0.jar
-libraryjars libs/libammsdk.jar
-libraryjars libs/WebtrendsAndroidClientLib.jar
#-libraryjars libs/afinallib.jar
#-libraryjars libs/stickylistheaders_lib.jar
-keep class android.support.v4.** {*;}
-keep class com.emilsjolander.** {*;}
-keep class org.kobjects.** {*;}
-keep class org.kxml2.** {*;}
-keep class org.xmlpull.** {*;}
-keep class net.tsz.** {*;}
-keep class com.hp.** {*;}
-keep class com.baidu.** {*;}
-keep class net.sourceforget.** {*;}
-keep class com.tencent.** {*;}
-dontwarn demo.**
-keep class demo {*;}
-keep class com.wly.xxx.bean.** {*;}
-keep class com.wly.xxx.tool.DbModelUtils{*;}
-keep class com.wly.xxx.tool.JsonUtils{*;}
-keep class com.wly.xxx.activity.InsuranceQuotesActivity
-keep public class com.wly.xxx.activity.InsuranceQuotesActivity$MyJavaScriptInterface
-keep public class * implements com.wly.xxx.activity.InsuranceQuotesActivity$MyJavaScriptInterface
-keepclassmembers class com.wly.xxx.activity.InsuranceQuotesActivity$MyJavaScriptInterface {
&&& public *;
&&&&&& private *;
文件说明:
0.以上文件拷贝自笔者现在开发的项目,出于项目保护的目的,已将工程包名替换com.wly.xxx,读者可以根据自己的项目加以修改!
1.蓝色内容具有通用性质,可以复制黏贴;
2.橙色内容用于指定程序中用到的jar文件(可以看到引用的Library Project不需包含,因为他们已经在project.properties文件中指定了)。
3.红色内容用于表示保留(不混淆)引用的jar包中的内容。
4.草绿色内容用于表示保留本地的bean文件下的实体类不被混淆。
5.紫色内容用于表示保留本地涉及反射的类不被混淆。
6.绿色内容用于特别处理Web JS与本地原生组件之间的调用过程不被混淆
Android代码混淆及项目发布步骤记录
本来整理了一份Android项目混淆与发布的文档,突然想到何不写篇博客,分享一下呢,如是便有了本文。 Android代码混淆及项目发布步骤记录 一、清理代码中的调试信息,如Log、System.out 二、在清单文件中修改版本为当前版本,如果需要更新数据库,则需要在配置类或配置文件中修改程序数据库版本。 三、在清单文件中将项目的debugable设置为f
Android 混淆代码总结
为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件,这个对混淆代码很重要,如果你不小心删掉了,没关系,从其他地方拷贝一个过来 2. 最重要的就是在proguard-project.txt添加混淆的申明了:
Android项目外接高德地图代码混淆注意事项
现在好多项目中都添加了第三方jar包,但是最大的问题就是打包的时候代码混淆报错,以下是高德地图混淆报错解决方案: 在proguard-project.txt中添加如下代码:
-libraryjars
libs/android-support-v4.jar -dontwarn android.support.v4.**
日积月累:Proguard进行Android代码混淆
在实际的开发成产品apk的发布过程中,我们经常会使用到代码混淆技术。不过在讲解如何进行代码混淆之前,我先跟大家演示一下反编译的过程,这样才能让大家明白为什么需要进行代码混淆。
一、代码反编译
1.准备工作
首先我们准备好一个项目的apk文件(未进行混淆打包)、dex2
android如何代码混淆
从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。 来看看android-sdk-windows\tools\lib\proguard.cfg的内
Android之如何混淆代码和相关配置
昨天,客户想看一下目前项目开发到什么程度了,于是需要将项目签名打包成apk,结果打包的时候出错了,吃惊,什么情况。等成功打包以后,安装起来发现部分功能又报错了,囧,所幸最后还是解决了。在这里记录一下遇到的错误和解决方法。 1.如何混淆 将代码混淆起来,这样可以防止在apk被人反编译后而被别人直接看到源码,混淆方法很简单,当我们创建好项目时,已经自动为我们生
android代码签名和混淆打包
研究了一下android的apk的签名和代码的混淆打包,如果不混淆打包,那么apk可以直接被人反编译出来查看源码,混淆打包虽然还是能看懂,但是没有那么好懂了,至少要话费些时间 如果不混淆,反编译后的代码如下:
基本上就是源码。 如果混淆后,反编译后的代码如下:
代码中出现很多的a、b、c之类的变量命名,所以要读懂就具有一定的困难了!
下面先说一下apk的
android代码混淆以及如何判断一个apk代码是否被混淆过
1、proguard原理
java代码编译成二进制class文件,这个class文件也可以反编译成源代码,除了注释外,其他的code基本都可以看到。为了防止重要code被泄露,我们往往需要混淆,即把方法名,变量名,类名,包名等这些java元素的名称改成让人意想不到的名称,这样代码结构就没有变
Android 代码混淆proguard技术介绍
由于各种反编译工具的泛滥,作为Android程序员在2.3版本以前只能通过手动添加proguard来实现代码混淆
proguard这个工具是一个java代码混淆的工具
在2.3版本的sdk中 我们可以看到在android-sdk-windows/tools/下面多了一个proguard文件夹 google已经把proguard技术放在了and
用proguard混淆的Android代码 如果反编译成smali代码,或者java代码用Jd-GUI看,发现很多类都是abcde之类的,AndroidManifest.xml里面的主Activity也找不到了,估计被混淆成abcde了,大家有什么好的办法找到相应的关键代码呢?
------解决方案-------------------- 被混淆的代码肯定是这样的,要不混淆意义何在啊,就算只是a
Android项目引入actionbarsherlock作为library后混淆之后的异常
现象: Android APP中,引入actionbarsherlock 开源库作为滑动菜单,调试运行没有问题,项目混淆打包后,程序运行异常退出,截获异常log为:
&span style=&white-space:pre&& &/span&java.lan
ProGuard 代码混淆 APK无法安装 我用ProGuard做了代码混淆,用反编译工具看了混淆后生成的apk,确实混淆后函数名都变化了,但问题是混淆后生成的apk没法在手机上安装运行了,安装不了。请问是怎么回事呢?谢谢
我是想测试这个混淆功能,所以工程很简单,就一个helloAndroid,没有其他应用,按照网上说的方法,在default.properties文件里面添加上了proguar
Ant自动编译打包&发布 android项目
Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了。
1 Ant自动编译打包android项目
android 通过eclipse混淆代码 打包 + proguard 总结
android应用程序的混淆打包
1.在工程文件project.properties中加入下proguard.config=proguard.cfg,如下所示:
target=android-8 proguard.config=proguard.cfg
android 通过eclipse混淆代码 打包 + proguard 总结
android应用程序的混淆打包
1.在工程文件project.properties中加入下proguard.config=proguard.cfg,如下所示:
target=android-8 proguard.config=proguard.cfg
Android 混淆打包不混淆第三方jar包
项目因为要发布,所以要混淆打包。 混淆打包流程: 1.在proguard-project.txt文件中添加不需要混淆的类和第三方的jar包
这个是保持自己包中不需要混淆的类,如果有些类调用了jni也不需要混淆,不然会出错。还有如果项目中有其他项目作为library引入,那这些项目的一些类也不能混淆。
基于微信api Android程序签名+代码混淆
微信开放平台真是独特啊!!!微信的ap调用确实别新浪微博,人人,QQ互联这些方便很多,也不用判断绑定什么的,让人眼前一亮。但是到代码混淆这一步,我真瞎了,网上关于微信签名混淆资料讲的让人摸不着头脑,捣鼓了很久终于弄明白了。第一步:申请APP_ID,然后还需要填那个“应用类型” ---下载地址地址无关紧要;重点
Android项目打包开启proguard的混淆优化带来的问题
文章来源:http://www.itnose.net/detail/6043297.html更多文章:http://www.itnose.net/type/85.html
1.引入一个sdk以后,打包报错: [INFO] Unexpected error while evaluating instru
android混淆代码后崩溃日志中不显示行号的问题
问题已解决。原因是在混淆代码时默认会去掉class文件中的调试信息(源码的行号、源文件信息等),需要在混淆配置文件中申明保持这些信息: -renamesourcefileattribute SourceFile-keepattributes SourceFile,LineNumberTable
Android混淆打包
在这之前,看了下proguard官网介绍,并搜了下相关资料。
ProGuard简介
ProGuard是一个SourceForge上非常知名的开源项目。官网网址是:http://proguard.sourceforge.net/。
Java的字节
android开发之应用打包签名混淆流程
项目做的差不多了,要签名,然后混淆防治被反编译,记录下流程
默认各种环境都是配置好了的。
主要分以下几步
1、生成ant打包所需的配置文件
2、生成应用签名的keystore,对apk签名
3、编写混淆文件,混淆代码,防止反编译
第一步,生成ant打包的配置文件
在项目根目录下执行指令:android updat
一个简单的iPhone项目及代码
版权所有,欢迎转载,转载请注明 : SinFrancis http://mdev.cc
iphone NIB文件 -& android xml布局文件
iphone delegate class + controller class -& android Activity
【笔记】Android项目添加项目引用方法
刚才在做phoneGap时,想试图自己添加phoneGap的lib组件(jar的源码),找了好多种方法,下面这种成功了 项目邮件 Properties, Android ,Add... ,然后Dependencies就能看到了
Android中关于Proguard的一些记录
Proguard 是Android tools包中提供用来对代码进行压缩,优化和进行混淆的工具,它能够移除无用的代码,对类名,方法名,字段名进行重命名,但不改变代码的结构,从而达到对代码混淆的作用。而这样做的好处是我们可以得到一个更小的apk文件和一份更难以被反编译的代码。 在项目中使用Proguard,必须在project.properties修
Android Studio中为项目新建及添加Library
写在前面: Android Studio已经发布有一段时间了,目前版本为1.0.2 之前在Beta的时候,就开始尝试做项目了,比Eclipse功能强大很多 近一段时间以来,一直在忙于项目,很少写东西了,o(╯□╰)o不是一个好习惯呀 看到网上很多人在找Android Studio里项目如何添加Library的问题 不知道是高手不屑于回
ProGuard 代码混淆 APK无法安装 我用ProGuard做了代码混淆,用反编译工具看了混淆后生成的apk,确实混淆后函数名都变化了,但问题是混淆后生成的apk没法在手机上安装运行了,安装不了。请问是怎么回事呢?谢谢
我是想测试这个混淆功能,所以工程很简单,就一个helloAndroid,没有其他应用,按照网上说的方法,在default.properties文件里面添加上了proguar
项目报错查询记录
saiku数据查询结果错误,是hive中源数据的3倍。 问题定位:
saiku执行的mdx有问题 SELECT NONEMPTY{[Measures].[Downloads]}ONCOLUMNS, NONEMPTYFILTER(CrossJoin(Cross
android 密钥 混淆的问题 KEY密钥在代码里写死的话,对APK进行反编译,可以轻松的找到KEY密钥这串字符串,反编译也一样。
打包apk时无有办法可以混淆定义的常量,如publicstaticfinalStringKEY=&absdeikdkdlodoododd&;这种,我发现,我混淆后,还是可
Android开发记录19-朋友圈动态发布时间计算
Android开发记录19-朋友圈动态发布时间计算
转载请注明:IT_xiao小巫,http://blog.csdn.net/wwj_748
如果觉得博文不错,请移步到2014年博客之星投票地址:http://vote.blog.csdn.net/blogstar2014/details?username=wwj_748#con
Android崩溃日志-混淆前后映射表
在proguard.cfg中加入:
-printmapping ${dstdir}/mapping.txt
proguard-project.txt和project.properties混淆代码
【转】利用android proguard混淆代码防止反编译,优化代码 网上虽然有很多相关博客,不过貌似都不是最新版的。。于是百度+谷歌+github上的开源demo,终于成功的配置了android proguard。 最新版的android sdk的默认配置已经可以满足我们的大多数要
Android使用Gradle进行打包混淆,包括依赖Library
下面的脚本100%能用,只要你的版本和路径配置正确 环境:Eclipse Windows 7 Gradle:2.3 Android项目里面包含了多个Library 主项目配置:
settings.gradle 文件配置library库
include 'lib_01' include 'lib_02' proj
代码混淆后 运行apk有误
我知道差不多是因为混淆了不该混淆的代码,也试了网上的说法可是报错依旧求大神帮助
------解决方案-------------------- support.v4和v7的都不要去混淆
------解决方案-------------------- 直接重新build吧,,,
------解决方案----------
Android实战技巧之十四:混淆与反编译
混淆 Android Studio:
只需在build.gradle(Module:app)中的buildTypes中增加release的编译选项即可,如下:
buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-andro
之前的android项目报错,新建android项目报错,代码中找不到错误
很久没有做过android的项目了,又打开一年前的东西,结果发现里面的android项目全部有个红叉,也找不到错误。新建一个项目也报错,首先确定自己的环境应该没问题,然后通过查看网上的资料,发现可能是debug的keystore到期啦。 通过网上资料的引导,做以下操作: 1、进入C:\Documents and Set
Activiti 学习记录3 之Activiti源代码及默认h2数据库连接
问题:对于开源的框架很重要的问题是找到其源代码,有源代码我是绝对不会看javadoc。那么Activiti5.9的源代码在哪里? 在官网上发布的安装包中。 下载地址:http://activiti.org/downloads/activiti-5.9.zip 源代码包在目录 activiti-5.9.zip\activi
Android 混淆异常 Please correct the above warnings first.
混淆的时候异常说第三方jar包里有错误 但是之前还可以正常混淆 唯一的改动就是把工程的project build target由4.1改成了2.2 改回来又能打包了 不知道是什么原因
Android打混淆ProGuard工具的使用
由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看android官网对该工具的介绍以及网络上其它相关资料,再加上自己的亲手实践,算是有了一个基本了解。下面将自己的理解和认识简要的做个笔记,有异议或者不解的,可以直接留言。 什么是ProGuard工具? ProGuard是android提供的一个免费的工具,它能
android studio混淆打包
在项目工程里的build.gradle里配置混淆,找到buildType buildTypes { release {
文章来源:javascriptOnlineObfuscator&&/JavascriptOnlineObfuscator Javascript 代码混淆的目的 Javascript 是一种解释执行的脚本语言,主要应用于 Web 领域的客户端的浏览器中;由于 Javascript 解释执行的特性,代码必须明文下载到客户端,并且

我要回帖

更多关于 代码混淆还原 的文章

 

随机推荐