Android安全-代码安全4-逆向工具对抗

在逆向分析 Android 应用程序时,一般会使用 apktool,baksmali/smali,dex2jar,androguard,
jdGUI 以及 IDA Pro 等。因此可以考虑使得这些工具在反编译 APK 时出错来保护 APK,这些工
具大部分都是开源的,可以通过阅读其源代码,分析其在解析 APK、dex 等文件存在的缺陷,
在开发 Android 应用程序时加以利用。可以参考 Tim Strazzere 的 Dex Education:Practicing Safe
Dex,相应的 Demo,看雪上的中文翻译,不过其中的很多技巧已经失效了。DexLabs 的 Dalvik
Bytecode Obfuscation on Android 介绍了垃圾字节码插入的技术。

使用 apktool 进行重打包时,对于后缀为 png 的文件,会按照 png 格式的文件进行打包
处理,因此如果在项目开发时,有意将一个非 png 格式文件的文件名改为后缀为 png 的文件,
则使用 apktool 进行重打包时会出错。可以利用这种方法来对抗重打包。

转自:http://bbs.pediy.com/showthread.php?t=183116

时间: 2024-08-07 21:25:53

Android安全-代码安全4-逆向工具对抗的相关文章

Android漏洞——将Android恶意代码隐藏在图片中

研究人员发现了Android上又一个严重的安全漏洞:将Android恶意代码隐藏在图片中(Hide Android Applications in Images). 在该漏洞向外界公开之前,Google已经发布了补丁.不过,仍然有大量Android手机用户没有选择升级. 恶意程序研究人员Axelle Apvrille和逆向工程师Ange Albertin开发了一种定制的工具AngeCryption(Python脚本)加密恶意程序的APK文件(Android application package

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

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

Android Studio添加Parcelable序列化小工具(快速提高开发效率)

Android Studio添加Parcelable序列化小工具(快速提高开发效率) Android Studio是google专门为开发Android提供的开发工具,在它内部可以直接的添加一些非常好用的开发小工具,这里就讲解怎样添加这些小工具,并且向大家推荐一个非常有用的对象传递时,必须要把对象序列化的接口Parcelable小工具; 这里先介绍下 Android中实现序列化的两个选择:一是实现Serializable接口(是JavaSE本身就支持的),一是实现Parcelable接口(是An

Android bluetooth介绍(二): android 蓝牙代码架构及其uart 到rfcomm流程

关键词:蓝牙blueZ  UART  HCI_UART H4  HCI  L2CAP RFCOMM  版本:基于android4.2之前版本 bluez内核:linux/linux3.08系统:android/android4.1.3.4作者:xubin341719(欢迎转载,请注明作者,请尊重版权谢谢)欢迎指正错误,共同学习.共同进步!!一.Android Bluetooth Architecture蓝牙代码架构部分(google 官方蓝牙框架) Android的蓝牙系统,自下而上包括以下一些

Android日志:代码混淆,使用说明

上一篇介绍了Google官方的一些解释,这一篇主要介绍如何实战(Eclipse开发)使用Googel提供的这个工具.如对代码混淆的概念不是很了解的建议先看上一篇--Android日志:代码混淆,官方文档介绍-----来自Google最新文档 主要先简单的介绍三个主要文件,在sdk下的proguard里面:  我的SDK路径为H:\Android\android-sdk-windows\tools\proguard proguard-android.txt//系统配置好一些默认选项,考虑的比较详细

Android 性能优化 五 性能分析工具dumpsys的使用

Android提供的dumpsys工具可以用于查看感兴趣的系统服务信息与状态,手机连接电脑后可以直接命令行执行adb shell dumpsys 查看所有支持的Service但是这样输出的太多,可以通过dumpsys | grep "DUMP OF SERVICE" 仅显示主要的Service的信息 一.列出dumpsys所有支持命令 > adb shell $ dumpsys | grep "DUMP OF SERVICE" 以下是在我个人三星S3手机上的输

学Android开发 这19个开发工具助你顺风顺水

学Android开发 这19个开发工具助你顺风顺水 要想快速开发一个Android应用,通常会用到很多工具,巧妙利用这些工具,能让我们的开发工作事半功倍,节省大量时间,下面大连Android开发培训小编就为大家介绍下这19个开发工具都有神马用途. 1.XAppDbg XAppDbg是一个可以在运行中改变代码中参数的一个应用开发工具.这个工具可以为你省下大量的时间,因为你不用为应用的每次小改变而重新编译运行你的程序. 2.ChkBugReport 这个工具可以快速地检查输出的Android错误报告

利用无效字节码指令引发逆向工具崩溃(二)

上一节我们介绍了一种利用无效字节码指令引发逆向工具崩溃的方法.可惜的是大部分反编译工具已经修复了该bug.但是如果我们插入有效的字节码指令,但是后跟无效的数据引用,结果会是怎么样呢? 使用C32asm,以十六进制的方式打开dex文件.按快捷键"Ctrl + G",定位到"0003A2A4" 把"62 00 02 04 1A 01 8E 07 6E 20 19 10 10 00"改为"12 01 38 01 03 00 1A 00 FF

利用无效字节码指令引发逆向工具崩溃(一)

由于大部分逆向工具都是线性读取字节码并解析,当遇到无效字节码时,就会引起反编译工具字节码解析失败.  我们可以插入无效字节码到DEX文件,但要保证该无效字节码永远不会被执行(否则您的程序就会崩溃了!). 首先我们新建一个测试类.为了绕过Dalvik运行时代码验证,BadCode.java要保证不被调用.(否则运行app,会出现java.lang.verifyerror异常) 然后生成apk,用ida打开classes.dex.并找到BadCode类的aaa方法.选中的三行代码对应"System.