代码混淆

Java代码混淆工具入门——Allatori~ Allatori 是什么 Allatori是第二代java代码混淆工具,为你的产品知识产权提供全方位的保护。通过代码混淆,让代码逆向工程几乎变得不可能。 除了代码混淆作用,Allatori还可以最小化应用代码大小,提高应用启动速度。 使用案例 创建一个mixup的maven工程如下图 如上图 在根目录下创建allatori文件夹,放入配置文件allatori.xml,创建lib文件夹,在其下面放入allatori.jar和allatori-annotations.jar。 <config> 阅读详情
1.查看项目中有没有proguard.cfg。
详细讲解Android对自己的应用代码进行混淆加密防止反编译
2.如果没有那就看看这个文件中写的什么吧,看完后将他复制到你的项目中。
-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 ;
}
 
-keepclasseswithmembers class * {
    public (android.content.Context, android.util.AttributeSet);
}
 
-keepclasseswithmembers 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 *;
}
3.复制到项目中后打开project.properties文件
详细讲解Android对自己的应用代码进行混淆加密防止反编译


4.打开后在项目中加上一句话:proguard.config=proguard.cfg
详细讲解Android对自己的应用代码进行混淆加密防止反编译
5.这样就开始按照正常的签名对自己的应用进行签名,生成后的apk经过反编译后就会和源代码有很大的不一样,不过这一步你会遇到很多问题,根本就签名不成功。例如:①如果工程引入了android-support-v4的jar类库,那么在工程打包混淆时,就会出现报错提示你:You may need to specify additional library jars (using '-libraryjars')。②引用第三方包等问题
 
6.那就详细讲解5中出现的问题
如果工程引入了android-support-v4的jar类库,那你就在proguard.cfg里的后面,添加如下内容:
-libraryjars /android-support-v4.jar
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
-keep public class * extends android.support.v4.**
-keep public class * extends android.app.Fragment
然后你再打包看看,应该可以正常生成apk安装包了。
 
如果出现:"类1 can't find referenced class 类2" 字面上的意思就是类1找不到类2的引用;它会建议你:"You may need to specify additional library jars (using '-libraryjars').";
需要使用-libraryjars加上项目中使用到的第三方库就OK了。
例如:-libraryjars /android-support-v4.jar
注意:这里引用方式是当前工程的根目录(也可以配置其他目录),也就是说,你要把第三方jar放到当前目录下,否则就会警告说找不到jar文件!
 
如果出现: can't find superclass or interface android.os.Parcelable$ClassLoaderCreator,碰到这样的情况,可以使用-dontwarn com.xx.yy.**,不对错误提出警告。
注意:使用这个方式的话,要确保自己没有用到这个库里面的类!否则就会抛ClassNotFoundException!
 
如果在工程中确实用到了该类,采用上面方式还是不行。这个时候就要再增加一项:-keep class com.xx.yy.** { *;},让当前类不混淆。
 
总结:
对于引用第三方包的情况,可以采用下面方式避免打包出错:
-libraryjars /aaa.jar
-dontwarn com.xx.yy.**
-keep class com.xx.yy.** { *;}
最后打包成功,祝君成功混淆加密!
 
7.附上完整的proguard.cfg
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
 
-dontwarn com.slidingmenu.**
-keep class com.slidingmenu.** { *;}
 
-libraryjars /libs/android-support-v4.jar
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
-keep public class * extends android.support.v4.**
-keep public class * extends android.app.Fragment
-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 ;
}
 
-keepclasseswithmembers class * {
    public (android.content.Context, android.util.AttributeSet);
}
 
-keepclasseswithmembers 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 *;
}
idea使用Allatori混淆java代码 摘要 我们平时开发的java项目大多是生成一个jar包运行,而jar包可以通过jd-gui进行解析,然后看到我们的源代码,如果我们写了大量的代码别人直接通过这样的方式把我们的辛苦成果直接窃取了那是多么难过的事情,因此我们很有必要对jar包做一些混淆代码的操作,让别人无法直接看懂我们的代码。本文将教会你如果把jar包进行混淆 一.创建java项目,并运行 1.创建并运行工程: 点... 阅读详情

相关推荐

HarmonyOS 代码混淆

针对工程源码的混淆可以降低工程被破解攻击的风险,缩短代码的类与成员的名称,减小应用的大小。DevEco Studio提供代码混淆的能力并默认开启,API 10及以上版本的Stage模型、编译模式为release时自动进行代码混淆。// 混淆前// 混淆后导出的类 “Test1” 是一个顶层作用域名,当 “Test1” 被动态使用时,它是一个属性。因为没有开启-enable-property-obfuscation选项,所以名称混淆了,但属性没有混淆。

qq_36158551的博客 1338

【FAQ】Java混淆器Allatori Java obfuscator常见问题集四

Allatori Java obfuscator是第二代Java代码混淆器,为你的知识产权提供全方位的保护。 1.Allatori如何混淆类文件? Allatori为Java代码逆向工程提供了前所未有的保护。Allatori使用所有“传统的”混淆技术。它会混淆调试信息并重命名所有可能的方法和字段名称。它具有高度可配置性,因此你可以选择要重命名的方法或方法组。它不仅限于私人方法。 另外,All...

Aote222的博客 724

【鸿蒙开发】—— 代码混淆

针对工程源码的混淆可以降低工程被破解攻击的风险,缩短代码的类与成员的名称,减小应用的大小。DevEco Studio提供代码混淆的能力并默认开启,API 10及以上版本的Stage模型、 编译模式为release 时自动进行代码混淆。

2401_88547687的博客 1287

Java打包混淆之Allatori

111

jy317358306的博客 6345

代码混淆技术

代码混淆技术 代码混淆亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。已经存在许多种功能各异的代码混淆器。 在编译的过程中,有以下流程:源程序 - > 前端 - > 中间代码 - > 代码优化器 - > 中间代码 - > 代码生成器 - > 目标程序,混淆,就是代码优化器的逆过程。混淆技术分为两类:一类是基于...

weixin_43906500的博客 3057

Android代码混淆

一、代码混淆作用: 防止反编译; 精简编译后的apk文件大小; 二、开启混淆: 在项目的build.gradle中开启混淆: 将minifyEnabled的值改为true即开启:其中debug为测试版本,release为发布版本 三、混淆说明: 开启混淆后Android会用自带的混淆进行代码混淆,如在安装Android SDK的目录下的proguard-android.txt或proguard-android-optimize.txt文件为默认混淆文件。对于自己定义的混淆需要在proguar

走马川行雪的博客 5582

关于allatori代码混淆技术的一次实践

allatori官方网站:https://allatori.com/ proguard官网: https://www.guardsquare.com/proguard.

Carson073的博客 4161

别再拿空气标定法糊弄了!手把手教你搞定水下相机标定(附Python代码)

本文详细解析水下相机标定的关键技术,揭示传统空气标定法失效原因,并提供基于单视点模型(SVP)的完整Python解决方案。通过折射效应分析、标定板设计优化和代码实战演示,帮助读者掌握水下标定核心方法,有效提升水下视觉系统测量精度。

weixin_30530939的博客 208

代码混淆是什么?代码混淆的方法有哪些?

本文主要给大家盘点代码混淆的一些基础知识,希望能对大家有所帮助!

励志做最业余的专业博主,控件产品可以私我~ 7412

GPU八卡A100使用INT4-W4A16量化大模型实验

本实验旨在探索在环境下,对大语言模型进行权重量化的可行性、效率与性能影响。通过采用工具集成 GPTQ 算法,实现对所有线性层的权重量化(W4A16 方案最终通过lm-eval工具在GSM8K任务上对压缩模型进行评估。

goodgood_UP的博客 1908

mpu6050原理图_STM32控制 MPU6050 六轴陀螺仪资料汇总

一般使用MPU6050的步骤是先驱动I2C总线,然后初始化MPU6050,从MPU6050读取数据,最后是数据的处理。本文档详细介绍有关MPU6050 三维角度传感器电子陀螺仪使用说明。附件内容提供该 MPU6050模块原理图,配套STM32代码,相关数据手册及参考文档。实物连接图:MPU6050 六轴陀螺仪特点:使用芯片:MPU-6050供电电源:3-5v(内部低压差稳压)通信方式:标...

weixin_39911056的博客 4758

​springboot代码混淆及反混淆代码工具

在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。混淆是一种技术,用于使脚本更难以被人类阅读,但从技术角度来看,它可以发挥相同的功能,尽管性能可能会较慢。这通常是通过使用混淆工具自动实现的,该工具将代码作为输入,并尝试以更难以阅读的方式重写代码,具体取决于其设计。例如,代码混淆器通常将代码转换成代码中使用的所有单词和符号的字典,然后在执行期间尝试通过引用字典中的每个单词和符号来重建原始代码。

2301_79527134的博客 1097

Excel地理探测器实战:5分钟搞定空间分异性分析(附完整数据集)

本文详细介绍了如何使用Excel地理探测器插件进行空间分异性分析。通过5分钟实战教程,手把手指导数据格式准备、软件操作及四大探测器(分异及因子、交互作用、风险区、生态探测器)的结果解读,帮助规划师、研究者快速验证地理因素对现象分布的影响,大幅降低GIS分析门槛。

peace的博客 607

springboot代码混淆及反混淆代码工具

在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。混淆是一种技术,用于使脚本更难以被人类阅读,但从技术角度来看,它可以发挥相同的功能,尽管性能可能会较慢。这通常是通过使用混淆工具自动实现的,该工具将代码作为输入,并尝试以更难以阅读的方式重写代码,具体取决于其设计。例如,代码混淆器通常将代码转换成代码中使用的所有单词和符号的字典,然后在执行期间尝试通过引用字典中的每个单词和符号来重建原始代码。

不写代码没饭吃的博客 1281

武汉理工大学数据结构综合实验——连连看游戏综合实践

文章目录实验目的主要仪器设备及耗材一、实验要求二、分析与设计(非线性结构)1.数据结构的设计2.核心算法设计一条直线消子两条直线消子三条直线消子初始化游戏地图搜寻路径提示和重排3.测试用例设计4.测试效果总结 实验目的 (1)线性结构实验目的 调研连连看游戏,了解连连看游戏的功能和规则等 掌握集成开发工具VS2019的使用和C++的基础编程 了解MFC框架 了解线性结构,掌握数组的遍历、消子和胜负判断等算法 了解企业软件开发过程,应用迭代开发思路进行项目开发,养成良好的编程习惯和培养软件工程化思维 .

mo_zhe的博客 7611

微信小程序|基于小程序实现定位打卡功能

此文主要在小程序内实现打卡功能,可根据用户位置与公司设定的打卡范围实时判断打卡是否合法,并在后台对打卡记录进行管理。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 1万+

Flutter 代码混淆 混淆Dart代码

代码混淆 Flutter的代码混淆 flutter的代码混淆就是混淆dart代码。 代码混淆是修改应用程序二进制文件的过程,以使人们更难以理解。混淆将函数名和类名隐藏在已编译的Dart代码中,从而使攻击者很难对您的专有应用程序进行反向工程。 Flutter代码混淆的做法 Flutter版本小于1.16 Android 将以下行添加到<ProjectRoot> /android/gradle.properties: extra-gen-snapshot-options=--obfuscate 有

卓原的进化之旅 6225

未连接互联网的银河麒麟v10安装g++,各种报错,如何处理?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 1803

代码的混淆与反混淆

目前正在自学nms

qq_24992377的博客 2439

LDRA Testbed软件静态分析_常见问题及处理

通过前面的几篇文章,LDRA Testbed软件静态分析的内容基本讲解完了,本篇文章将针对使用Testbed进行软件静态分析的常见问题进行介绍。 到此为止,LDRA Testbed软件静态分析的内容已经全部讲完,如果有问题,欢迎私信提问(不经常登录,回复可能不及时,见谅)。下一篇文章将开始讲解如何使用Testbed进行单元测试。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 2585

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android混淆——混淆代码总结

转自http://blog.youkuaiyun.com/lovexjyong/article/details/24652085        http://blog.youkuaiyun.com/catoop/article/details/47208833 混淆的概念: 对编译好的class文件进行混淆处理。 ProGuard是一个混淆代码的开源项目。它的主要作用就是混淆,当然它还能对字节

chuntiandejiaobu10的专栏 4501

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

聊聊如何进行代码混淆

​前言什么是代码混淆代码混淆,是指将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆常见手段1、名称混淆将有意义的类,字段、方法名称更改为无意义的字符串。生成的新名称越短,字节代码越小。在名称混淆的字节代码中,包,类,字段和方法名称已重命名,并且永远不能恢复原始名称。不幸的是,控制流程仍然清晰可见。故而需要流混淆2、流混淆用于if, switch, while,for等关键字,对字节码进行细微的修改,模糊控制流,而不改变代码在运行时的行为。

m0_74760716的博客 1387

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

代码混淆的原理是什么?常见代码混淆方法介绍

混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义,通过进行代码混淆可以有效提升应用被逆向破解的难度。移动应用代码安全非常重要,代码逆向会导致代码逻辑被获取,进一步导致控制流被hook,安全防线被破,给APP安全带来巨大风险,因此开发者一般都会进行代码混淆保护。:对字节码进行优化,移除无用的指令。Java代码混淆,针对一些逆向的IDE环境是有一定效果的,可以考虑做一些中文混淆,这个很容易实现且有效果。

励志做最业余的专业博主,控件产品可以私我~ 3341
上一篇: 安卓Home键封装监听
下一篇: 关于layout-weight,这个理解的很深刻啊
僤尐僤
博客等级 码龄14年 10粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值