Obfuscapk是一款模块化的Python工具,它可以帮助研究人员在无需应用程序源代码的情况下对Android App进行混淆处理。Obfuscapk使用了apktool来对原始APK文件进行反编译,并构建出一个新的应用程序,最后再对反编译的smali代码、资源文件和Manifest文件应用混淆处理技术。混淆后的应用回保留原有的函数功能,但不同之处就在于,混淆后的应用源码会跟初始的应用源码有很大的区别。

工具架构

Obfuscapk基于模块化结构实现,以便进行功能扩展,而且还集成了一套插件系统。在Obfuscapk中,每一个混淆器都属于一个插件,并且都继承了一个抽象的基类,它们都需要实现obfuscate方法。当工具开始处理一个新的Android应用文件时,它回创建一个混淆对象来存储所有需要的信息,例如反编译的smali代码的位置,以及处理操作的状态。接下来,Obfuscapk会将混淆对象以参数的形式传递给obfuscate方法,最终发送给所有处于活动状态的插件或混淆器。

值得一提的是,广大研究人员可以根据自己的需要扩展和开发新的混淆器,研究人员可以直接向“src/obfuscapk/obfuscators”目录中添加混淆技术或插件元数据(.obfuscator文件)的实现源码。工具将会自动检测新的插件,因此无需进行额外配置。

工具安装

我们有两种方法来在自己的设备上安装和使用Obfuscapk,第一种就是使用Docker,另一种就是在Python 3.7环境下直接使用项目源码。在这两种方式下,首先要做的就是将项目源码拷贝到本地目录中:$ git clone https://github.com/ClaudiuGeorgiu/Obfuscapk.git

Docker镜像

依赖组件

我们建议大家使用这种方式来安装Obfuscapk,因为这种方式只需要安装Docker的最新版本即可:$ docker --version

Docker version 19.03.0, build aeac949

官方Docker Hub镜像

我们可以直接在Docker Hub上下载官方的Obfuscapk Docker镜像:$ # Download the Docker image.

$ docker pull claudiugeorgiu/obfuscapk

$ # Give it a shorter name.

$ docker tag claudiugeorgiu/obfuscapk obfuscapk

安装

如果你从Docker Hub下载了官方镜像,那么我们就可以直接开始使用了,否则你还需要执行下列命令来创建“Obfuscapk/src/ ”目录(该目录中包含了Dockerfile)来构建Docker镜像:$ # Make sure to run the command in Obfuscapk/src/ directory.

$ # It will take some time to download and install all the dependencies.

$ docker build -t obfuscapk

Docker镜像准备好之后,需要运行下列命令检测是否安装正确:$ docker run --rm -it obfuscapk --help

usage: python3.7 -m obfuscapk.cli [-h] -o OBFUSCATOR [-w DIR] [-d OUT_APK]

...

现在,Obfuscapk已经可以使用了。

源码安装

依赖组件

确保设备上已安装了apktool、jarsigner和zipalign,并且能够直接通过命令行工具使用:$ apktool

Apktool v2.4.0 - a tool for reengineering Android apk files

...

$ jarsigner

Usage: jarsigner [options] jar-file alias

jarsigner -verify [options] jar-file [alias...]

...

$ zipalign

Zip alignment utility

Copyright (C) 2009 The Android Open Source Project

...

如需安装和使用apktool,则要求最新版本的Java。apktool、jarsigner和zipalign的可执行程序路径需要在下列环境变量中进行配置:APKTOOL_PATH、JARSIGNER_PATH和ZIPALIGN_PATH。当然了,除了上述组件之外,你还需要安装Python 3.7。

安装

在项目主目录中运行下列命令即可完成依赖组件的安装:$ # Make sure to run the commands in Obfuscapk/ directory.

$ # The usage of a virtual environment is highly recommended, e.g., virtualenv.

$ # If not using virtualenv (https://virtualenv.pypa.io/), skip the next 2 lines.

$ virtualenv -p python3.7 venv

$ source venv/bin/activate

$ # Install Obfuscapk's requirements.

$ python3.7 -m pip install -r src/requirements.txt

接下来,运行下列命令确保工具安装正确:$ cd src/

$ # The following command has to be executed always from Obfuscapk/src/ directory

$ # or by adding Obfuscapk/src/ directory to PYTHONPATH environment variable.

$ python3.7 -m obfuscapk.cli --help

usage: python3.7 -m obfuscapk.cli [-h] -o OBFUSCATOR [-w DIR] [-d OUT_APK]

...

现在,Obfuscapk已经可以使用了。

工具使用

Docker镜像-本地目录中包含了待混淆的应用程序,需将其加载进容器中的“/workdir”目录中:$ docker run --rm -it -u $(id -u):$(id -g) -v "${PWD}":"/workdir" obfuscapk [params...]

源码-所有的命令都需要在“Obfuscapk/src/”目录中运行:$ python3.7 -m obfuscapk.cli [params...]

查看帮助信息:$ obfuscapk --help

obfuscapk [-h] -o OBFUSCATOR [-w DIR] [-d OUT_APK] [-i] [-p] [-k VT_API_KEY]

工具有两个强制参数,第一个是“”,即待混淆APK的路径;另一个就是需要使用的混淆技术列表:-w DIR:设置工作目录,并保存apktool生成的中间文件。

-d OUT_APK:设置目的文件的路径。

-i:设置是否在混淆过程中忽略第三方库。

-p:是否显示混淆进程条。

-k VT_API_KEY:设置VirusTotal API密钥,仅在使用VirusTotal时需要设置。

工具使用样例

Obfuscapk的简单使用样例:$ # original.apk is a valid Android apk file.

$ obfuscapk -o RandomManifest -o Rebuild -o NewSignature -o NewAlignment original.apk

项目地址Obfuscapk:【GitHub传送门】

*参考来源:ClaudiuGeorgiu,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

android 混淆工具下载,Obfuscapk:一款针对Android应用程序的黑盒混淆工具相关推荐

  1. 荐六十款针对Hadoop和大数据顶级开源工具

    为什么80%的码农都做不了架构师?>>>    荐六十款针对Hadoop和大数据顶级开源工具 2015-08-10 10:37 布加迪编译 51CTO 字号: T |  T 说到处理 ...

  2. 执行ios命令_MEDUZA:一款针对iOS应用程序的通用SSL解绑工具

    MEDUZA MEDUZA是一款针对iOS应用程序的通用SSL解绑工具,该工具基于Frida开发,可以当作SSLKillSwitch工具的替代品.本来我是想自己开发自己用的,而且原本并不打算开源出来. ...

  3. Android通过url下载图片到手机本地并显示和删除本地ImageUtil工具类

    文章目录 布局 Activity BroadcastReceiver 文件工具类 图片工具类 Manifest MyApplication 完成代码下载 这里的demo是一个通过下载地址下载图片文件到 ...

  4. MAC版php开发工具推荐:10款最流行的mac版php开发工具

    目前使用MAC ios系统的php开发者越来越多.那目前MAC下php开发都用哪些工具呢?可能对于php初学者不知道该用哪些或者哪些mac版的php开发工具比较好?php中文网特为PHP开发者推荐几款 ...

  5. android 秒拍开源,六月份21款优秀Android开源库整理推荐

    原标题:六月份21款优秀Android开源库整理推荐 1.Android-DivergeView 仿美拍直播的点赞动画. 2.LRecyclerView RecyclerView下拉刷新,自动加载更多 ...

  6. 录屏工具下载哪个好?分享:超简单的录屏工具及实用方法

    在短视频盛行,知识付费,粉丝经济的背景下,下载一款好用的录屏工具可以如虎添翼,为自己制作视频助力.然而面对各种各样的录屏工具,很多人不知道下载哪个好.一旦录屏工具没有选对,即使下载了,不会用也没有意义 ...

  7. 【Android 安装包优化】p7zip 源码交叉编译 Android 平台可执行程序 ( 下载 p7zip 源码 | 交叉编译 Android 中使用 7z 可执行程序 )

    文章目录 一.下载 p7zip 源码 二.交叉编译 Android 中使用 7z 可执行程序 三.参考资料 一.下载 p7zip 源码 下载 7zip 源码 , 下载页面 https://source ...

  8. android堆内存解析,heapsnap HeapSnap 是一款针对 Android 进程堆内存进行追踪、定位,以便查出泄露位置的工具 @codeKK c开源站...

    1.HeapSnap 是什么 HeapSnap 是一个定位内存泄露的工具,适用于 Android 平台. 主要特性如下: 对系统负载低 不需要修改目标进程的源代码 支持 Andoroid 上的大多数 ...

  9. PoT:一款针对Twitter的网络钓鱼安全研究工具

    关于PoT PoT是一款功能强大的网络钓鱼安全检测与研究工具,该工具可以帮助广大研究人员针对Twitter用户进行网络钓鱼培训和测试,以确保Twitter用户的账号安全与隐私安全. 工具运行机制 下图 ...

最新文章

  1. 关于按键消抖以及LED灯控制的一个实例
  2. WPF之复杂形状控件
  3. 计算机数值方法期末考试,《计算机数值方法》测试题二
  4. 富爸爸系列 -- 《财务自由》学习笔记之一
  5. 文玩扇子(折扇)的寸、方、排口、头分别指什么?
  6. linux下安装anconda
  7. 人工智能中的深度结构学习 Learning deep architectures for AI - Yoshua Bengio
  8. python语法笔记-linux
  9. chap1统计学习及监督学习
  10. 数电课程设计数字钟c语言编程,数电数字钟设计,含源码
  11. 浏览器调用html5播放器,html5视频播放器的浏览器兼容处理方法 - 小俊学习网
  12. DDOS攻击与防御(一)
  13. 淘宝购买的ESP-CAM+SD内存卡做一个200W像素的相机arduino IDE开发过程
  14. C++中优先队列priority_queue的基础用法
  15. 入门 | S3C2440启动过程分析
  16. html 苹果 地图,为什么苹果手机自带的地图是高德而不是谷歌?
  17. 博客专家贡献(2022年至今)--2022-11-29(转)
  18. LoadRunner性能测试实战教程
  19. 菲尔兹奖-历届获得者
  20. python学习 day5 (3月6日)

热门文章

  1. OA附件不能直接打开PDF文件
  2. 白话数字签名(3)——Web程序中的数字签名 1
  3. 大蟒蛇python头像_程序员用Python获取了自己以前的QQ历史头像,以前的非主流形象简直不忍直视...
  4. php——数组夯实基础篇
  5. 在AGFA的一个月工作经历
  6. 水生生物学类毕业论文文献包含哪些?
  7. php 电梯广告系统设计,电梯广告-市场营销- 人大经济论坛-经管百科
  8. C语言程序设计第三章
  9. 如何验证有效的身份证格式
  10. 基于flowable的审批系统安装及部署