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已经改变原有的模式了,你在项目文件中找到这两个文件,一般在项目根目录里。

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

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

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

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

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

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

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

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

Hostiger 16G大内存特价VPS:伊斯坦布尔机房,1核50G SSD硬盘200Mbps带宽不限流量$59/年

国外主机测评昨天接到Hostigger(现Hostiger)商家邮件推送,称其又推出了一款特价大内存VPS,机房位于土耳其的亚欧交界城市伊斯坦布尔,核50G SSD硬盘200Mbps带宽不限月流量只要$59/年。 最近一次分享的促销信息还是5月底,当时商家推出的是同机房同配置的大内存VPS,价格是$59.99/年,不过内存只有10G,虽然同样是大内存,但想必这次商家给出16G,价格却是$59/年,...

10gbiz首月半价月付2.36美元,香港/洛杉矶VPS、硅谷独立服务器/站群服务器

收到10gbiz发来的7月份优惠方案,中国香港、美国洛杉矶机房VPS主机4折优惠码,优惠后洛杉矶VPS月付2.36美元起,香港VPS月付2.75美元起。这是一家2020年成立的主机商,提供的产品包括独立服务器租用和VPS主机等,数据中心在美国洛杉矶、圣何塞和中国香港。商家VPS主机基于KVM架构,支持使用PayPal或者支付宝付款。洛杉矶VPS架构CPU内存硬盘带宽系统价格单核512MB10GB1...

六一云互联(41元)美国(24元)/香港/湖北/免费CDN/免费VPS

六一云互联六一云互联为西安六一网络科技有限公司的旗下产品。是一个正规持有IDC/ISP/CDN的国内公司,成立于2018年,主要销售海外高防高速大带宽云服务器/CDN,并以高质量.稳定性.售后相应快.支持退款等特点受很多用户的支持!近期公司也推出了很多给力的抽奖和折扣活动如:新用户免费抽奖,最大可获得500元,湖北新购六折续费八折折上折,全场八折等等最新活动:1.湖北100G高防:新购六折续费八折...

android代码混淆为你推荐
视频托管我想做一些游戏教学视频,放到网上收费该可以吗?scriptmanagerajax ToolkitScriptManager与ScriptManager的区别代发邮件什么是商务邮件代发?怎么用电脑发短信怎么样用电脑给手机发短信?5e5e5e如何更改bootstrap navbar的颜色 03 Topics 03 Ruby Chinanetbios协议现在怎么还有用NetBios协议的,这个协议和TCP/IP协议有什么关系,为什么获取网卡的信息还要音乐代码网页中怎么写自动播放mp3音乐的代码selectintooracle有select into临时表的用法吗医院排队系统医院排队机和医院排队机的区别有哪些?短信套餐中国移动发短信有什么套餐比较好
域名主机空间 服务器租用托管 新网域名解析 godaddy域名解析教程 万网免费域名 便宜服务器 tier shopex空间 panel1 亚洲小于500m qingyun admit的用法 佛山高防服务器 南通服务器 免费phpmysql空间 彩虹云 百度云加速 独立主机 域名转入 成都主机托管 更多