使用ANT、Proguard混淆、发布与反编译Android应用

常用的java反编译工具介绍 Java反编译工具是软件开发和逆向工程领域的重要工具,它们可以帮助开发者理解、分析和修改编译后的Java字节码文件。不同的工具有不同的特点和优势,选择合适的工具取决于具体的需求和偏好。然而,使用这些工具时必须谨慎,并遵守相关的法律法规。 阅读详情


FirstStep:下载ANT

1、 下载后解压到D:\Program Files\apache-ant-1.9.1

2、 新建ANT_HOME环境变量(D:\Program Files\apache-ant-1.9.1)

3、 将ANT加入到path 路径(%ANT_HOME%\bin)

 

 

第二步:拷入proguard.cfg到android项目,与标准版多了-dontwarnandroid.support.**   

-keep class android.support.**{*;}两句,如果运行不出错,可用标准版

 

-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 classcom.android.vending.licensing.ILicensingService

 

-keep classandroid.support.** {*;}

 

-keepclasseswithmembernames class * {

    native <methods>;

}

-keepclasseswithmembers class * {

    public <init>(android.content.Context,android.util.AttributeSet);

}

-keepclasseswithmembers class * {

    public <init>(android.content.Context,android.util.AttributeSet, int);

}

-keepclassmembers class * extendsandroid.app.Activity {

   public void *(android.view.View);

}

-keepclassmembers enum* {

    public static **[] values();

    public static ** valueOf(java.lang.String);

}

-keep class *implements android.os.Parcelable {

  public static finalandroid.os.Parcelable$Creator *;

}

 

 -dontwarnandroid.support.**

 

 

第三步:项目操作

1、 除主函数外建A、B两java类

2、 进入workspace 输出android update project --name c -t 14 -p c更新项目,其中c为项目名,14为版本号 在项目中新增了build.xml、local.properties两文件

 

 

第四步:申请keystore 请用管理员身份打开命令提示符

 

 

第五步:将生成的android.keystore拷入项目key目录,新建ant.properties文件,输入proguard.config=proguard.cfg

 

key.store=key/android.keystore

key.alias=android.keystore

 

key.store.password=xxxxxx

key.alias.password=xxxxxx

 

 

第六步:用命令提示符进入该项目下输入ant release (若最后出现Build succesfull及bin目录下生成有apk,则成功)

 

第七步:下载反编译所需要的文件dex2jar、jd-gui,将之前生成的c-release.apk改名为c-release.zip,解压后取出其中的classes.dex,将之拷入dex2jar目录下,用命令提示符进入dex2jar目录并输入dex2jar.bat classes.dex,成功后将生成classes_dex2jar.jar,之后用jd-gui打开classes_dex2jar.jar即可看见其源文件(若混淆后的则悲剧了)

 

proguard6.2.2.zip proguard6.2.2(201912月8日版本)最新版,解决java版本太高无法匹配的问题,解压后替换AndriodSDK\sdk\tools\proguard目录即可,亲测可用.注意不支持中文目录 立即下载

相关推荐

使用ant批量打包并且实现proguard-project.txt混淆代码

使用ant批量打包并且实现proguard-project.txt混淆代码需要在项目里面配置一些参数,这个zip文件里有比较好的参考,虽然里面可能有些混淆配置有出入,但可以拿来借鉴,不过实际问题多看warn提示然后对应解决

反编译(对jar包进行反编译)

对jar包进行反编译(有时候我们拿到一些项目只有封装好的jar,想要进行修改或者了解一些方法的使用,需要反过来推出我们要的文件)把jar的压缩包拖进去就可以了可以看到java.............

DHeartLi的博客 4836

WEB Maven 项目 ProGuard 混淆方案

WEB Maven 项目 ProGuard 混淆方案 POM文件,包含详细混淆注释 具体请参考博客: http://blog.youkuaiyun.com/wltj920/article/details/48970869#comments

利用Ant与Proguard混淆

当前的web项目有引用到子工程项目,而且多个子工程项目也有引用到其它的工程项目,现要求利用Ant自动将web项目打包成war包,其中引用到的子工程项目需打成jar包,而且必须是混淆后的jar包。其中混淆代码的工具选择了开源的Proguard(http://proguard.sourceforge.net/),可以运行proguard自带的proguardgui.jar(图形化用户界面)生成prog

chenrunhua的专栏 1万+

C++版Cesium实战:从OpenGL到3DTiles的全流程开发指南

本文提供了一份C++版Cesium全流程开发指南,详细阐述了如何利用OpenGL和Qt从零构建高性能、可离线部署的三维GIS应用。内容涵盖开发环境搭建、OpenGL渲染引擎初始化、Cesium核心坐标系与场景管理移植,并重点解析了3DTiles数据的解析、异步加载与渲染优化等硬核实战技术,旨在帮助开发者实现与现有C++工业软件的深度集成。

weixin_28077113的博客 164

电力电子新手必看:COT控制模式的工作原理与典型应用场景解析

本文深入解析了COT控制模式的工作原理及其在电力电子领域的典型应用。COT控制(恒定导通时间控制)通过固定导通时间机制,解决了传统滞环控制的问题,特别适用于需要快速瞬态响应和高效率的应用场景,如CPU/GPU供电和便携设备电源管理。文章详细介绍了COT控制的核心流程、技术特点及设计实践中的关键考量,帮助电力电子新手快速掌握这一技术。

weixin_30745553的博客 521

使用ant执行ProGuard混淆Jar

ProGuard是一个集Java的压缩、优化、混淆三个功能一工具。提供了命令行、UI方式。以下是使用ant方式的样例   &lt;proguard printseeds="on" ignorewarnings="true" optimize="true"&gt; &lt;injar file="${out.jar}" /&gt; &lt;outjar file=

三问飞絮 356

Aspice的理解

ASPICE 是由汽车行业的主要公司和组织合作开发的,包括德国汽车工业联合会(VDA)和国际汽车工作组(Automotive SIG)。其目标是通过标准化的软件开发流程,提高汽车电子系统的软件质量和可靠性。

hkj8808的博客 2014

ant+proguard签名打包 .jar

ProGuard是一个压缩、优化和混淆Java字节码文件的免费的工具,它可以删除无用的类、字段、方法和属性。可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无意义的名称来重命名已经存在的类、字段、方法和属性

yangChong 2040

树莓派5安装ROS1避坑指南:从系统配置到cmake报错全解决

本文详细介绍了在树莓派5上安装ROS1的完整流程,包括系统配置、环境变量设置、cmake报错解决等关键步骤。针对树莓派5的ARM架构特性,提供了从基础安装到高级调试的系统级解决方案,帮助开发者高效部署ROS1并避免常见编译陷阱。特别针对cmake报错问题,给出了深度解析和实用修复方法。

spark7igniter的博客 233

S7-1200PLC V90伺服绝对值编码器校准功能块

S7-1200PLC通过111报文和EPOS模式实现位置轴轴控功能(FB284封装)-优快云博客文章浏览阅读173次。EASY_SINA_POS的详细使用介绍请参考下面文章链接:S7-1200PLC使用标准报文111和EPOS模式实现V90 PN总线伺服定位(Easy_SINA_Pos)_西门子sinapos-优快云博客文章浏览阅读132次。文章浏览阅读7k次。先简单说下如何获取FB284,一般有2种方法,Startdrive软件可以操作大部分西门子的驱动器,建议安装调试方便,缺点就是软件太大。

RXXW_Dor的博客 967

Android中使用Ant打包(混淆打包)

有时候为了保护代码不被非法查看或使用时,我们都会对应用或游戏的代码进行混淆打包,就是将类名和方法名换成abcde等没有意义和很难阅读的名字. 像如下图片中的效果,但是有些是不能混淆的.因为配置文件中使用了.将应用中的所有类变成a,b,c,d,e等等的类,方法名也全部变成a,b,c,d,e的,让反编译出来的全部很难阅读.需要实现这些效果一般要用于以下的几个上图中的目录与文件说明 : pr

happyq的专栏 9894

一文掌握 MongoDB 详细安装与配置(Windows / Linux / macOS 全平台)

本文详细介绍了MongoDB社区版7.0+在Windows、Linux和macOS三大操作系统上的完整安装、配置与安全加固流程。主要内容包括:各平台推荐安装方式(Windows使用MSI安装包、Linux通过官方仓库、macOS通过Homebrew)、基本配置参数说明、服务启动方法以及关键安全措施(如创建管理员用户和启用身份验证)。文章还提供了系统最低要求、下载地址、数据目录设置建议以及生产环境使用注意事项,适合开发、测试及生产环境部署参考。

数据知道的博客 6708

ProGuard完全指南:Java字节码终极优化与混淆工具详解

ProGuard是一款免费的Java字节码优化工具,集成了代码压缩、优化、混淆和预验证四大核心功能,能够显著减小应用体积、提升运行效率并增强代码安全性。无论是Android应用开发还是Java桌面程序优化,ProGuard都是不可或缺的工具。 ## 🚀 ProGuard核心功能解析 ### 1. 代码压缩(Shrinking) 压缩阶段会自动检测并移除未使用的类、字段、方法和属性。通过递归分

gitblog_00298的博客 1236

29、机器人动力学中的欧拉 - 拉格朗日与哈密顿力学

本文深入探讨了机器人动力学中的欧拉-拉格朗日与哈密顿力学框架,涵盖向量流形上的辛结构、哈密顿方程的几何代数表述、泊松括号与积分不变量等核心概念。文章详细推导了机电系统中拉格朗日量与哈密顿量的构建方法,并结合牛顿-欧拉算法给出了局部哈密顿量和动量导数的迭代计算流程,适用于多关节机器人的动力学建模与控制设计。通过应用案例展示了理论在双关节机器人手臂中的实际运用,最后展望了其在优化控制、鲁棒性提升及智能融合方向的潜力。

perl8的博客 129

uniapp - 解决报错 canvasToTempFilePath: fail canvas is empty 画布为空错误,生成海报相册、二维码、条码、裁剪/拼合操作图片报错,加了this还是报错

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,canvasToTempFilePath:失败画布为空,报错,canvasToTempFilePath:failcanvasisempty,不支持2d,还是报错,this,加上this还是报错,vue3没有this怎么办?海报,保存到手机相册,生成二维码,显示条码,图像裁切,图片处理,canvas报错,无法解决,还是fail,依然报错,传了this也不好使,Uniapp小程序,如何解决这个问题

🏆 前端领域优质创作者 4706

Android Proguard介绍

ProGuard算是Android上的一大利器,主要进行java代码的裁剪压缩,优化,混淆以及预校验,在日常工作中有时会出现一些很奇怪的问题,明明我的代码里面有 这个类,属性或者接口,可是为啥到用的时候死活提示就没有了呢?这类奇葩问题在还没有接触ProGuard的亲面前可谓是相当无语,当你知道有ProGuard之后一切 都迎刃而解了,都是ProGuard在做优化裁剪的时候可能没有human b

AnnaLoad的专栏 1730

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android代码混淆技术

代码混淆技术的目的简而言之,由于Java程序比较容易被反编译,为了防止别人反编译源代码,窃取应用程序中的核心技术,或者说是为了增加反编译的难度,可以通过代码混淆技术增加对源代码的保护。 一、ProGuard简介         ProGuard是一个免费的java类文件压缩、优化、混淆器。         它探测并删除没有使用的类、字段、方法和属性。它删除没有用的说明并使用字节码

tianxiangshan的专栏 3925

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

android 通过eclipse混淆代码 打包 + proguard 总结

android应用程序的混淆打包 1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示: target=android-8 proguard.config=proguard.cfg Eclipse会通过此配置在工程目录生成proguard.cfg文件  2 . 生成keysto

Porfirio 494

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

代码混淆技术android,Android 源码混淆技术初试; 混淆内部类

在使用keep 保留混淆模块的时候,如果预计activity里面的内部类需要这样去keep:-keep public classcom.xx.XXXOuterClassActivity$* {*;}下方的方式只能对一个文件进行混淆,如果需要批量处理的话,例如打各个渠道包的混淆apk,那么就要使用ant 或maven了;转自:http://blog.youkuaiyun.com/Zengyangtech/art...

weixin_36124631的博客 547

使用proguard混淆android代码

当前是有些工具比如apktool,dextojar等是可以对我们android安装包进行反编译,获得源码的。为了减少被别人破解,导致源码泄露,程序被别人盗取代码,等等。我们需要对代码进行混淆,android的sdk中为我们提供了ProGrard这个工具,可以对代码进行混淆(一般是用无意义的名字来重命名),以及去除没有使用到的代码,对程序进行优化和压缩,这样可以增加你想的难度。最近我做的项目,是我去

码农明明 2063

ant混淆编译java web,Android中使用ant混淆编译

搞了好几天,查看了上百个网站,最后摸索出一套很简单的ant混淆编译的方法。下面开始:1.拿一个普通项目来说,首先为它加上ant编译功能。android update project --name project_name -t 3 -p D:/temp/project_name此时会在项目根目录自动生成一个名为build.xml的ant脚本。上面的project_name是你的项目名称。2.加入混...

weixin_33593741的博客 212

android混淆加密技术总结

原理:是通过遍历apk中class文件,将其中的变量名词更换为其他名字,从而达到加密代码的效果,还有删去没有用到的代码部分,达到精简代码大小的效果。 工具:proguard (当然还有很多,例如ANT,apkprotect等) 过程:在android2.3之前,谷歌没有太重视反编译,所以没有对adt提供加密工具,2.3以后就提供比较普及的混淆加密工具,proguard工具,位置在S

可乐的小屋 1233

EasyWeChat 5.x 小程序手机号获取:getUserPhoneNumber 接口实战与源码解析

EasyWeChat 的「小程序」模块为 PHP 开发者封装了微信小程序服务端能力,其中手机号获取是电商、营销、会员体系中最常用的能力之一。本文以 5.x 分支的小程序手机号功能为核心,讲解如何通过 `$app->phone_number` 与 `getUtils()` 两条调用路径获取用户手机号,并深入 [Utils.php](https://link.gitcode.com/i/4b4f9e0

gitblog_00947的博客 569
上一篇: Android支付接入(五):机锋网
下一篇: linux lamp配置( yum安装 )
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值