【Android应用保护技术探索之路系列】之二:对抗反编译

作者:郭孝星

微博:郭孝星的新浪微博

邮箱:[email protected]

博客:http://blog.csdn.net/allenwells

github:https://github.com/AllenWell

对于Android应用盈利模式而言,一般都是免费发布应用,然后通过广告来赚钱,应用本身没有任何授权访问机制来进行保护,对于任何一个想要逆向分析该应用的人都可以在网上直接下载,也就是说我们无法通过发布渠道来保证应用的安全性,那么我们只能从保护应用代码入手了。

对抗反编译就是指APK文件无法通过APKTool、BakSmail和dex2jar等工具进行反编译,或者反编译后,无法得到正确的反汇编代码。

对抗反编译工具的思路就是寻找反编译工具在处理APK或DEX文件时的缺陷,然后在自己写的程序中加以利用,让反编译工具在处理这些特制的APK或DEX文件中失效。

对抗反编译工具的方法

  • 阅读反编译工具源码:分析源码结构,查找反编译工具的缺陷。
  • 压力测试:收集大量大小不同的APK文件,编写批处理文件进行压力测试,观察反编译的报错信息,查找反编译工具的缺陷。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-08 12:53:04

【Android应用保护技术探索之路系列】之二:对抗反编译的相关文章

【Android应用保护技术探索之路系列】之一:Android应用保护技术开篇

作作者:郭孝星 微博:郭孝星的新浪微博 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell 本篇文章是[Android应用保护技术探索之路系列]的开篇文章,主要介绍在哪些环节去保护Android应用. 如果我们想逆向一个Android应用,我们一般会首先对其进行反编译,然后阅读反汇编代码,如果有必要还会对其进行动态调试,找到突破口后注入或直接修改反汇编代码,最后重新

Android中的软件安全和逆向分析[二]—apk反破解技术与安全保护机制

在Android应用开发中,当我们开发完软件之后,我们不希望别人能够反编译破解我们的应用程序,不能修改我们的代码逻辑.实际上,在应用程序的安全机制考虑中,我们希望自己的应用程序安全性高,通过各种加密操作等来增大竞争对手的反编译破解成本.设想,竞争对手开发一个同样的应用程序需要10天,而破解我们的软件程序需要100天,那么势必会打消黑客程序员破解我们应用程序的念头.如何增加对手的破解成本,就需要考验我们应用程序的安全性有多高,加密技术有多强.一个优秀的应用程序,不仅能为用户带来利益,同时也能保护自

Android笔记八.Intent对象的使用及.apk反编译

 Intent对象的使用及.apk反编译 Jiangdg_VIP http://blog.csdn.net/u012637501 前三节主要学习了Intent对象的作用.属性以及不同Activity之间值的传递,这节将着重学习Intent对象的用法.在我的语音识别项目中,通过使用Inteng对象来启动应用内组件.系统应用程序以及第三方应用程序(如QQ.微信等). 一.Intent对象开发方法 首先,我们还是先学习下Intent对象启动组件(应用)有哪几种方法: 1.利用Intent对象的Comp

Android实战技巧之十四:混淆与反编译

混淆 Android Studio: 只需在build.gradle(Module:app)中的buildTypes中增加release的编译选项即可,如下: buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 这个proguard-android.txt是sdk中groguard默认的文件,

Android APK加固技术方案调研

@author ASCE1885的 Github 简书 微博 CSDN 最近项目中需要实现自己的APK加固方案,因此就有了这一篇调研报告. 软件安全领域的攻防向来是道高一尺魔高一丈,攻防双方都处于不断的演变和进化过程中,因此软件加固技术需要长期持续的研究与投入. 目前成熟的第三方解决方案 1. 娜迦 针对Android平台下的APP被逆向分析,破解,植入木马病毒后,用户敏感信息泄露或者被钓鱼网站劫持,NAGA Android保护采用防止静态分析与防止动态调试全面防护的思路,在未保护程序运行的不同

iOS开发——装逼技术精选&关于反编译和防止反编译

关于反编译和防止反编译 反编译 内购破解 iOS应用需防反编译风险之一:插件法(仅越狱).iTools工具替换文件法(常见为存档破解).八门神器修改 网络安全风险 iOS应用需防反编译风险之二:截获网络请求,破解通信协议并模拟客户端登录,伪造用户行为,对用户数据造成危害 应用程序函数PATCH破解 iOS应用需防反编译风险之三:利用FLEX 补丁软件通过派遣返回值来对应用进行patch破解 源代码安全风险 iOS应用需防反编译风险之四:通过使用ida等反汇编工具对ipa进行逆向汇编代码,导致核心

Android Apk的反编译和加密

这几天在上海出差,忙里偷闲学习了一下Apk的反编译工具的基本使用.下面就简单介绍一下如何将我们从网上下载的Apk文件进行反编译得到我们想要获得的资源文件和源码. 一.Apk文件组成 Android的应用程序APK文件说到底也是一个压缩文件,那么可以通过解压缩得打里面的文件内容,不过很显然,当你去解压完去查看的时候,发现里面的很多东西和你想象中的不太一样.资源文件等xml文件基本打不开,即使打开了也都是乱码(而这正是Android进行加密过),有些应用会将图片资源等的也加密(如qq音乐). 而既然

android之apk反编译

今天就来详细的讲一讲apk的反编译过程,之前自己一直没彻底搞清楚. 一.准备工作 反编译首先要准备三个工具.这三个工具都是可以百度下载的.就是下图所示的三个工具. 这三个工具是有各自作用的: (1)apktool工具用来反编译apk中的res下的文件,即所有的xml文件(包括Manifest.xml). (2)dex2jar工具用来反编译apk中的.class文件,即android项目的所有java代码. (3)jd-gui-0.3.3工具不是用来反编译的,是用来查看使用dex2jar反编译得到

Android开发之反编译与防止反编译

防止反编译是每个程序员的必修课,因为当你辛辛苦的研发一个应用,被人家三下五除二给反编译了,是一件多么尴尬的事啊.那么如何防止反编译啊?这里就用Google Android自带的代码混编的方式来防止反编译.孙子兵法中讲得好:"知彼知己百战不殆",所以在讲解防止反编译之前,先让我们了解一下如何反编译一个应用. 一.反编译Android应用 实验环境: Windows8.1企业版.dex2jar-0.0.9.9 反编译工具包: Android反编译工具包(升级版) 1.将Apk反编译得到Ja