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

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

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

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

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

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

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

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

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

鲸云10美元,香港BGPRM 1核 1G 10Mbps峰值带宽 1TB流量,江西CN2-NAT 1核 512MB内存 100M带宽 ,

WHloud Official Notice(鲸云官方通知)(鲸落 梦之终章)]WHloud RouMu Cloud Hosting若木产品线云主机-香港节点上新预售本次线路均为电信CN2 GIA+移动联通BGP,此机型为正常常规机,建站推荐。本次预售定为国庆后开通,据销售状况决定,照以往经验或有咕咕的可能性,但是大多等待时间不长。均赠送2个快照 2个备份,1个默认ipv4官方网站:https:/...

TTcloud:日本独立服务器促销活动,价格$70/月起,季付送10Mbps带宽

ttcloud怎么样?ttcloud是一家海外服务器厂商,运营服务器已经有10年时间,公司注册地址在香港地区,业务范围包括服务器托管,机柜托管,独立服务器等在内的多种服务。我们后台工单支持英文和中文服务。TTcloud最近推出了新上架的日本独立服务器促销活动,价格 $70/月起,季付送10Mbps带宽。也可以跟进客户的需求进行各种DIY定制。点击进入:ttcloud官方网站地址TTcloud拥有自...

WHloud Date鲸云数据($9.00/月), 韩国,日本,香港

WHloud Date(鲸云数据),原做大数据和软件开发的团队,现在转变成云计算服务,面对海内外用户提供中国大陆,韩国,日本,香港等多个地方节点服务。24*7小时的在线支持,较为全面的虚拟化构架以及全方面的技术支持!官方网站:https://www.whloud.com/WHloud Date 韩国BGP云主机少量补货随时可以开通,随时可以用,两小时内提交退款,可在工作日期间全额原路返回!支持pa...

android代码混淆为你推荐
ico监管为何央行叫停代币发行?暴力破解rar求暴力破解rar压缩包软件selectintoACCESS中提示“不允许在select into语句中使用多值字段”全局钩子求助:全局钩子是怎么回事啊?下载的游戏为什么会安装钩子?求大神帮助方正证券官方网方正证券完美版下载腾讯合作伙伴大会从微信同程旅行买的机票怎么打印电子发票?爱码验证码平台接码验证码接收平台如何使用?flash序列号flash激活序列号是?如何查看qq特别关心我的人qq空间特别关心我的人怎么看windows7中文语言包windows7英文改中文 windows英文版怎么安装中文语言包
美国域名注册 什么是域名解析 fastdomain idc评测网 sockscap 好看的桌面背景图 admit的用法 域名和空间 爱奇艺vip免费试用7天 中国电信测速网 万网主机管理 韩国代理ip 秒杀品 atom处理器 cdn网站加速 netvigator zcloud pptpvpn bwg 遨游论坛 更多