android代码混淆安卓编程 如何进行代码混淆

android代码混淆  时间:2021-06-23  阅读:()

android源码被混淆了怎么还原

APK混淆以后是不可逆的,以目前的技术无法还原,楼主还是多想想怎么编程吧,别想着用别人辛辛苦苦写的代码,大家都不容易啊。

APK混淆以后 也是可以反编译的 但是都是一些类 abcdef...很难懂的,这就是混淆了类名甚至包名,当然再重新编译还是通过,但是自己收获不大,没有逻辑概念。

android 代码混淆 依赖工程需要加混淆吗

代码混淆有两种重要功能。

其一,混淆代码。

其二,优化代码。

进行代码混淆的程序被称为代码混淆器(混淆工具)。

进行代码混淆的意义主要在于对代码进行一定程度的加密。

在android 2.3之后,sdk中就已经集成了混淆器proguard(目录在sdk oolsproguard),所以我们可以很方便的直接在工程中开启代码混淆。

eclipse android工程开启混淆功能,我们需要手动在项目文件.properties(我的是project.properties文件)中添加下面的代码 # To enable ProGuard to shrink and obfuscate your code, ment this (available properties: sdk.dir, user.home): proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 某些方式创建的项目中可能已经有如上两行了,只是默认被注释掉了,只要把proguard.config这一行解注释就好了。

这样代码混淆功能就开启了,在打签名包时,项目会自动进行代码混淆。

cocos2dx android 代码混淆

1. 下载cocos2dx 2.2.1   去cocos2dx官网下载就好,最好是2.2.1版本。

3.0版本变化比较大,也没测试过。

  3. 创建工程   使用cocos2dx目录下的tools/project-creator/create_project.py创建一个工程。

  4. 编译android版本   网上很多文章说,编译cocos2dx的Android版本时需要安装cygwin之类的,其实这对于目前的ndk版本来说是不必要的,因为高版本的ndk都集成了cygwin的一些功能。

我这里使用的是ndk r9d。

下面来说一下操作步骤。

  我编译的习惯是直接在jni目录下预先ndk-build命令,因为在Windows下使用.sh结尾的文件太怪异了。

首先来看一下build_native.sh干的工作:   这是build_native.sh中实际工作的部分。

可以看到它使用NDK_ROOT下的ndk-build来编译,还导入了NDK_MODULE_PATH, 这个NDK_MODULE_PATH是为Android.mk中的import-module提供路径选择。

  现在来导入NDK_MODEL_APTH, 在Android.mk的import-module之前加上cocos2dx中的几个路径:   $(call import-add-path, G:/cocos2dx)   $(call import-add-path, G:/cocos2dx/cocos2dx/platform/third_party/android/prebuilt)   运行ndk-build, 编译。

  编译时可能出现这样的错误:error: GLES2/gl2.h: No such file or directory,这是因为低版本的Android版本不支持opengl es2.0,在Application.mk中加上:   APP_PLATFORM := android-17   5. 生成apk包   在eclipse下打开创建的工程,导入相关的包后,在AndroidMenifest.xml中加入:   android:debuggable="true"   表明这是一个可以调试的包。

运行,结果出现:   这是因为该工程默认使用build_native.sh编译:   因为build_native.sh现在已经没用了,所以把它改成:   这个意思是,直接使用NDK_ROOT环境变量下的ndk-build.cmd来编译工程,编译成debug版本,编译成armeabi和armeabi-v7a两种指令格式的库,执行这个命令的目录是工程目录下的jni文件夹。

debug版本和armeabi-v7b主要是为了后面使用visualGDB调试做准备。

  再编译,就可以生成apk包了。

  VisualGDB调试   1. 下载并安装VisualGDB, 安装完成后,在Visual Studio的目录中可以看到Android选项:   2. 配置VisualGDB, 在Android -> Setup SDK/NDK location   主要配置JDK,SDK,NDK,ANT路径   3. 设置要调试的apk包。

Android -> Debug a Custom APK file   4 设置完成后,在代码中设置断点,点击Debug, 开始调试   5. 等apk安装完成后,程序会运行到断点出,就可以开始用Visual Studio调试了

关于Android studio 怎么使用代码混淆的问题

展开全部 1,android studio 1.3之后的版本就没有Generate Signed APK —Run ProGuard 这个选项了! 要在build.grandle 把 minifyEnabled 改成Ture 就可以了! minifyEnabled true 下面是我使用的代码: #指定代码的压缩级别 -optimizationpasses 5 #包明不混合大小写 -dontusemixedcaseclassnames #不去忽略非公共的库类 -dontskipnonpubliclibraryclasses #优化 不优化输入的类文件 timize #预校验 -dontpreverify #混淆时是否记录日志 -verbose # 混淆时所采用的算法 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* #保护注解 -keepattributes *Annotation* # 保持哪些类不被混淆 #-keep public class * extends android.app.Fragment #如果有引用v4包可以添加下面这行 -keep public class * extends android.support.v4.app.Fragment #忽略警告 -ignorewarning #####################记录生成的日志数据,gradle build时在本项目根目录输出################ #apk 包内所有 class 的内部结构 -dump class_files.txt #未混淆的类和成员 -printseeds seeds.txt #列出从 apk 中删除的代码 -printusage unused.txt #混淆前后的映射 -printmapping mapping.txt #####################记录生成的日志数据,gradle build时 在本项目根目录输出-end################ ################混淆保护自己项目的部分代码以及引用的第三方jar包library######################### #-libraryjars libs/xUtils-2.6.14.jar #-libraryjars libs/alipaysdk.jar #-libraryjars libs/alipaysecsdk.jar #-libraryjars libs/alipayutdid.jar #-libraryjars libs/wup-1.0.0-SNAPSHOT.jar #-libraryjars libs/weibosdkcore.jar #三星应用市场需要添加:sdk-v1.0.0.jar,look-v1.0.1.jar #-libraryjars libs/sdk-v1.0.0.jar #-libraryjars libs/look-v1.0.1.jar #我是以libaray的形式引用了一个图片加载框架,如果不想混淆 keep 掉 -keep .nostra13.universalimageloader.** { *; } #忽略警告 mon.** #保留一个完整的包 -keep mon.** { *; } #如果引用了v4或者v7包 -dontwarn android.support.** ############混淆保护自己项目的部分代码以及引用的第三方jar包library-end################## #-keep public class * extends android.view.View { # public (android.content.Context); # public (android.content.Context, android.util.AttributeSet); # public (android.content.Context, android.util.AttributeSet, int); # public void set*(...); #} #保持 native 方法不被混淆 -keepclasseswithmembernames class * { native ; } #保持自定义控件类不被混淆 #-keepclasseswithmembers class * { # public (android.content.Context, android.util.AttributeSet); #} #保持自定义控件类不被混淆 #-keepclasseswithmembers class * { # public (android.content.Context, android.util.AttributeSet, int); #} #保持自定义控件类不被混淆 #-keepclassmembers class * extends android.app.Activity { # public void *(android.view.View); #} #保持 Parcelable 不被混淆 -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } #保持 Serializable 不被混淆 -keepnames class * implements java.io.Serializable #保持 Serializable 不被混淆并且enum 类也不被混淆 -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; !static !transient ; !private ; !private ; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } #保持枚举 enum 类不被混淆 如果混淆报错,建议直接使用上面的 -keepclassmembers class * implements java.io.Serializable即可 #-keepclassmembers enum * { # public static **[] values(); # public static ** valueOf(java.lang.String); #} -keepclassmembers class * { public void *ButtonClicked(android.view.View); } #不混淆资源类 -keepclassmembers class **.R$* { public static ; } #避免混淆泛型 如果混淆报错建议关掉 #–keepattributes Signature #移除log 测试了下没有用还是建议自己定义一个开关控制是否输出日志 -assumenosideeffects class android.util.Log { public static boolean isLoggable(java.lang.String, int); public static int v(...); public static int i(...); public static int w(...); public static int d(...); public static int e(...); }

android 代码混淆有什么用

混淆后你的函数就变成了一些混乱的词组成的名字了 这样即使别人反编译了你的程序,他可能也看不懂你的代码 比如你原来有一个函数叫myMethod混淆后可能就变成a了,这样谁也不知道这个函数是什么用意啊

安卓编程 如何进行代码混淆

安卓在eclipse中的ADT已经改变原有的模式了,你在项目文件中找到这两个文件,一般在项目根目录里。

第一个文件是描述文件,第二个文件是配置文件。

如果要实现代码混淆,需要修改第二个文件。

打开第二个文件,如下: 其中红线部分说,如果你要实现代码混淆,你需要把下面一行给反注释掉。

就是把红线第二行前面的#号给去掉就好了。

补充:编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到相应结果的过程。

为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。

这种人和计算机之间交流的过程就是编程。

编程:设计具备逻辑流动作用的一种"可控体系"【注:编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程】 例子:①比如编写一段代码程序②编写一个控制设备体系

香港九龙湾(27元) 2核2G 20元 香港沙田

弘速云是创建于2021年的品牌,运营该品牌的公司HOSU LIMITED(中文名称弘速科技有限公司)公司成立于2021年国内公司注册于2019年。HOSU LIMITED主要从事出售香港VPS、美国VPS、香港独立服务器、香港站群服务器等,目前在售VPS线路有CN2+BGP、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。可联系商家代安装iso系统。国庆活动 优惠码:hosu10-1产品介绍...

小欢互联19元/月起, 即日起至10月底 美国CERA 促销活动 美国/香港八折

小欢互联成立于2019年10月,主打海外高性价比云服务器、CDN和虚拟主机服务。近期上线了自营美国CERA机房高速VPS,进行促销活动,为客户奉上美国/香港八折优惠码:Xxc1mtLB优惠码适用于美国CERA一区/二区以及香港一区/二区优惠时间:即日起至10月底优惠码可无限次使用,且续费同价!官网:https://idc.xh-ws.com购买地址:美国CERA一区:https://idc.xh-...

Hosteons - 限时洛杉矶/达拉斯/纽约 免费升级至10G带宽 低至年$21

Hosteons,一家海外主机商成立于2018年,在之前还没有介绍和接触这个主机商,今天是有在LEB上看到有官方发送的活动主要是针对LEB的用户提供的洛杉矶、达拉斯和纽约三个机房的方案,最低年付21美元,其特点主要在于可以从1G带宽升级至10G,而且是免费的,是不是很吸引人?本来这次活动是仅仅在LEB留言提交账单ID才可以,这个感觉有点麻烦。不过看到老龚同学有拿到识别优惠码,于是就一并来分享给有需...

android代码混淆为你推荐
mergefield合并邮件,最后怎么生成呢?动态图片格式常见的动态图像文件格式有哪些?刷ip流量如何刷自己网站的IP流量netbios协议tcp/ip、ipx/spx、netbios这三个通信协议的区别sms是什么短信确认码是什么全局钩子求助:全局钩子是怎么回事啊?下载的游戏为什么会安装钩子?求大神帮助yui3YUI最详细的资料东兴证券网站东兴证券超强版下载,东兴证券超强版v6下载官方网站,东兴证券软件下载gbk内码怎么查GBK内码?泛微协同办公系统谁能告诉我泛微OA,协同性是体现在哪几个方面的?泛微有哪些优势??
重庆服务器租用 域名解析服务器 google电话 电信测速器 踢楼 z.com 视频存储服务器 60g硬盘 phpmyadmin配置 美国免费空间 中国网通测速 电信托管 彩虹云 starry 数据库空间 阿里云手机官网 金主 江苏徐州移动 cdn服务 accountsuspended 更多