博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Proguard混淆代码(1)
阅读量:6068 次
发布时间:2019-06-20

本文共 2384 字,大约阅读时间需要 7 分钟。

【意义】混淆代码,可以加大别人反编译的难度,从而最大化的保护自己的代码安全。

【场景】我写了一个发短信的程序,回调给游戏一个发短信是否成功的参数,如果成功,游戏就给加道具。本意:只想暴露给游戏 doPay()接口,但不想让别人知道我内部的代码及发送短信的内容,所以我就要混淆我的代码,只保留doPay()接口不被混淆~

工程目录结构:

1 分析:

PaymentForSms.java  中,有 doPay方法 

public static void doPay(Context context,String uid,String productName,String productPrice,SmsResultCallback callback)

具体实现:

准备: Eclipse ,Ant包(网上随便一搜,一大堆,类似java jdk安装方法),android sdk自身带的 proguard.jar工具 + build.xml + progard.cfg

实现:

接下来,重点就是 build.xml 和 progard.cfg的编写了。。。代码中,有详细注释。如果不明白的,可以 一下,就非常清晰了...

 

build.xml

build.xml
混淆代码 ...
proguard.cfg
#jar包所在地址-injars temp.jar   #jar包输出地址-outjars proguard_sdk.jar#引用的库的jar,用于解析injars所指定的jar类-libraryjars D:/android-sdk-4.2/tools/support/annotations.jar-libraryjars libs/android-support-v4.jar-libraryjars D:/android-sdk-4.2/platforms/android-8/android.jar-optimizationpasses 7#混淆时不会产生形形色色的类名-dontusemixedcaseclassnames#指定不去忽略非公共的库类-dontskipnonpubliclibraryclasses-verbose-dontoptimize#不预校验-dontpreverify#优化-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*#检查引用是否正确,如果在-libraryjars中定义了,无需在次声明-dontwarn android.net.http.**#取消打印日志-assumenosideeffects class android.util.Log {    public static *** d(...);    public static *** v(...);    public static *** i(...);}#不需要混淆的类  1、暴露的接口     2、自定义的Callback  3、用到第三方库的时候 -keep public class com.rekoo.listener.SmsResultCallback {*;}-keep public class com.rekoo.single.sms.PaymentForSms {*;}-printmapping  proguard.map

 

混淆代码,就比较简单了~ build.xml右键-Run as - Ant build

刷新工程,工程目录下面,就生成了 proguard_sdk.jar 混淆jar包了。。打开看一下,就ok了。。。如有问题,请留言

 

转载于:https://www.cnblogs.com/codeAnimal/p/4104321.html

你可能感兴趣的文章
微信小程序 - 提取字体图标与其优化
查看>>
amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules
查看>>
java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和Sy...
查看>>
读取 classes下的配置文件
查看>>
Django Mysql SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
查看>>
EMQ 学习---订阅$SYS主题,捕获客户端上下线消息
查看>>
开源->一步步实现cnblogs博客采集工具->详细设计
查看>>
(转)各类排序算法总结
查看>>
NSXMLParser和GDataXMLNode两种解析方式
查看>>
cocos2d里面如何实现MVC(四)
查看>>
Contoso 大学 - 使用 EF Code First 创建 MVC 应用
查看>>
Hadoop FS Shell
查看>>
Managing Toll-Free Bridging
查看>>
DataSet/DataTable中数据导入到Excel
查看>>
读《20个月赚130亿》有感
查看>>
NotePad++中JSLint的使用
查看>>
Core Data入门-备用
查看>>
java生成doc和jar
查看>>
《海贼王》
查看>>
30个优秀旅游网站案例
查看>>