dhroid - dhroid ioc模块对 加密混淆问题
大家应该已经看过ioc的知识
在ioc基础中中
视图事件都是通过注解实现的
问题1
如果有某个属性只声明了一下,其他代码没有引用由于混淆时会进行属性优化,将没用的属性去掉,这时需要处理
处理方法:在混淆配置文件中保留属性
问题2
混合代码时方法名都会变成a,b,c等,这样ioc事件可能就找不到方法
如下面的注解
InjectView(id=R.id.listView,itemClick="toEditStudent",itemLongClick="toDeleteStudent")
处理方法
在写代码时要有规范所有方法 所有事件方法都是以 on或to开头
在配置 混淆配置文件 对以on 和to的方法名保留
事件总线OnEvent 注解的方法也需要这样处理 ,不然方法可能被注释掉
当然现在还有更好的选择 使用第三方工具进行加密
爱加密的加密功能还是很牛的
http://www.ijiami.cn/treg?regCode=1003705
爱加密最后生成的classe.dex只有2k
我和他们客服聊了下
他说
原本的DEX文件被隐藏了的
现在这里的只是它们做的一个壳
这个基础版做了两部分处理,一是对apk内部每一个文件进行唯一值验证,只要apk内部的任何一个文件被修改 此文件的唯一值必定变化。运行时检测到变化程序将卡死。另一个就是DEX加壳隐藏
有点像帮他们做广告的嫌疑啊 当然你也可以先混淆后在让爱加密的加密
附上我的混淆配置文件
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontoptimize
-ignorewarnings
#工程中用到的第三方包
-libraryjars libs/android-support-v13.jar
#工程中用到的第三方包
-libraryjars libs/baidu_moni.jar #不混淆第三方包
-keep class android.support.v13.**
#忽略第三方包导致的异常
-dontwarn android.support.v4.**
#忽略第三方包导致的异常
-dontwarn android.support.v13.**
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.support.v4.app.Fragment -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 * implements android.os.Parcelable
-keep public class * extends OrmLiteSqliteOpenHelper
-keep public class net.duohuo.dhroid.net.cache.Cache
-keep public class net.duohuo.dhroid.net.cache.CacheManager
-keep public class * extends net.duohuo.dhroid.util.Perference -keep public class com.android.vending.licensing.ILicensingService -keep class net.duohuo.dhroid.net.cache.CacheManager{ *; }
-keep class net.duohuo.dhroid.net.cache.Cache{ *; }
-keep class com.j256.ormlite.dao.*{ *; }
-keep class com.j256.ormlite.db.*{ *; }
-keep class com.j256.ormlite.table.*{ *; }
-keep class com.j256.ormlite.stmt.*{ *; }
-keep class com.j256.ormlite.support.*{ *; }
-keep class com.j256.ormlite.misc.*{ *; }
-keep class com.j256.ormlite.field.*{ *; }
-keep class com.j256.ormlite.logger.*{ *; }
-keep class com.j256.ormlite.android.*{ *; }
-keep class com.j256.ormlite.android.apptools.*{ *; } -keep class com.google.gson.*{ *; }
-keep class com.google.gson.stream.*{ *; }
-keep class com.google.gson.reflect.*{ *; }
-keep class com.google.gson.internal.*{ *; }
-keep class com.google.gson.annotations.*{ *; }
-keep class com.google.gson.internal.bind.*{ *; }
-keep class net.duohuo.dhroid.util.*{ *; }
-keep class net.duohuo.ivory.util.*{ *; }
-keep public class * extends com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper{ *; } -keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
} #保存itemclick的回调
-keepclassmembers class *{
public void on*(android.widget.AdapterView, android.view.View,int,long);
public void to*(android.widget.AdapterView, android.view.View,int,long);
public void on*( android.view.View);
public void to*( android.view.View);
public void on*();
public void to*(); }
#保存所有的属性
-keepclassmembers class * {
<fields>; } -keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
dhroid - dhroid ioc模块对 加密混淆问题的更多相关文章
- 加密混淆.Net程序
记录在这里,以便学习使用! 一 加密混淆.Net程序 打开Intellilock进处此界面 点击add按钮加入你要操作的程序集, Merge Assemblie 可以合并当前程序集列表中的程序集为一个 ...
- SWF加解密资源索引之加密混淆篇【转】
============================ SWF加解密资源索引之加密混淆篇 ============================ [心得] swf加密混淆器(带源码) http:/ ...
- hashlib 模块:加密
import hashlib # 基本使用 cipher = hashlib.md5('需要加密的数据的二进制形式'.encode('utf-8')) print(cipher.hexdigest() ...
- Spring IOC模块的简单介绍
首先,本人正在学习spring,这是一点心得体会,所以本文中会有不足.错误之处,欢迎各位大佬进行指点. 其次对于框架而言,知道反射是很重要,所以建议在学会反射了后在去看看框架. Spring:是企业级 ...
- Python模块02/序列化/os模块/sys模块/haslib加密/collections
Python模块02/序列化/os模块/sys模块/haslib加密/collections 内容大纲 1.序列化 2.os模块 3.sys模块 4.haslib加密 5.collections 1. ...
- 手写“SpringBoot”近况:IoC模块已经完成
jsoncat:https://github.com/Snailclimb/jsoncat (About 仿 Spring Boot 但不同于 Spring Boot 的一个轻量级的 HTTP 框架) ...
- vue项目配置 `webpack-obfuscator` 进行代码加密混淆
背景 公司代码提供给第三方使用,为了不完全泄露源码,需要对给出的代码进行加密混淆,前端代码虽然无法做到完全加密混淆,但是通过使用 webpack-obfuscator 通过增加随机废代码段.字符编码转 ...
- KRPano资源分析工具使用说明(KRPano XML/JS解密 切片图批量下载 球面图还原 加密混淆JS还原美化)
软件交流群:571171251(软件免费版本在群内提供) krpano技术交流群:551278936(软件免费版本在群内提供) 最新博客地址:blog.turenlong.com 限时下载地址:htt ...
- 使用Dotfuscator加密混淆程序以及如何脱壳反编译
混淆演示 首先介绍如何使用Dotfuscator对.net程序加密码混淆/加壳 C#或vb.net编写的应用程序或DLL. 这里随便创建了一个C#的命令行控制台程序.程序很简单,对当前的时间进行了AE ...
随机推荐
- 1 salt执行模块开发
saltstack自带的模块已经很多了,但是有些时候我们需要自己开发出自己的模块来满足自己的需求,那就要自己开发了,下面请看例子 创建_modules目录在file_roots下面 我们需要在file ...
- centos7 Minimal安装没有ifconfig
centos7 Minimal 安装后 ip addr 系统的网卡没有分配IP地址 网卡为ens33 cd /etc/sysconfig/network-scripts vi ifcfg-ens33 ...
- 解决计算机改名无法连接TFS的问题
闲着没事改了下计算机名字,结果造成TFS无法连接. 报错讯息如下: ---------------------------Microsoft Visual Studio---------------- ...
- vim中文手册
http://vimcdoc.sourceforge.net/doc/help.html
- springboot+elasticsearch配置实现
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- python 有class外壳不一定是oop,到底怎么oo?
1.继承 封装 多态是面向对象的三大特点,当年在考c++期末考试时候这三个特点还是作为填空题出现的. 而且老师也反复唠叨继承封装 多态,这三个词语是背得滚瓜烂熟了,但因为不是特别专业的计算机科班,学得 ...
- IOS私有API的使用(转)
最近在做企业级程序,需要搞设备的udid等信息,但是ios7把udid私有化了,不公开使用.所以研究了一下ios的私有api. 调查了一下文章,发现这方面的文章不多,国内更是不全,高手们都懒得写基 ...
- 5 -- Hibernate的基本用法 --2 1 Hibernate 下载和安装
1. 下载Hibernate压缩包 2. 解压:文件结构 ⊙ documentation : 该路径下存放了Hibernate的相关文档,包括Hibernate的参考文档和API文档等. ⊙ lib ...
- MongoDB聚合管道
通过上一篇文章中,认识了MongoDB中四个聚合操作,提供基本功能的count.distinct和group,还有可以提供强大功能的mapReduce. 在MongoDB的2.2版本以后,聚合框架中多 ...
- 【SVN】自动定时更新
程序或脚本:"C:\Program Files\TortoiseSVN\bin\svn.exe" 参数:update E:\XXXXProjects\Code 参考:https:/ ...