android p ify 三星,Enjarify - Android逆向(二)
Enjarify - Android逆向(二)
首先奉上enjarify的Github地址,小伙伴们可以clone到本地使用哦
Enjarify介绍
上一节我们说了,在开发Android应用时,Android工具经过ADT的复杂编译后转换成dex文件,这是一个逐步优化的过程,dex是Android系统中可以在Dalvik虚拟机上直接运行的文件格式。java源代码dex文件的指令码就是Dalvik虚拟机专有的一套指令集,专门为嵌入式系统优化过,相比标准java的.class文件,它体积小,运行效率高。而我们可以通过一系列操作将这个Dalvik字节码反编译回JVM虚拟机可执行的字节码文件。这里enjarify就是这样的一个Python工具,只要将apk文件拖到它的执行脚本上即可以实现自动化的反编译。
安装和使用
配置运行环境
enjarify基于Python 3环境,所以你可能需要安装Python 3(点击这里下载)
下载enjarify
安装完Python并且clone上面给出的GitHub仓库后我们就可以使用enjarify啦
配置环境变量
在程序根目录下执行:
python3 -O -m enjarify.main ${PATH}\yourapp.apk
Linux & Mac 用户:
ln -s "$PWD/enjarify.sh" ~/bin/enjarify
Windows用户:
右键点击此电脑 -> 点击属性 -> 找到左侧的高级系统设置 -> 在弹出的系统属性面板找到高级选项卡 -> 点击下方的环境变量 -> 在弹出的环境变量面板里找到下方系统变量中的Path变量 -> 双击后添加enjarify所在的目录后保存
使用enjarify
这里预先假设你的APP安装包名为yourapp.apk并且APK在终端所在目录下
enjarify yourapp.apk
或者你想反编译的是dex文件,可以这样使用
enjarify classes2.dex
默认的输出文件在当前目录下并且名为[inputname]-enjarify.jar. 如果想修改输出文件名可以使用 -o或者 --output 选项。例如:
enjarify yourapp.apk -o yourapp.jar
通常情况下,enjarify不会重写已经存在的输出文件,如果需要覆盖输出文件的话就得使用 -f或者 --force 选项。
Enjarify的限制
只支持version 35的dex文件格式,所以在 Android N, O, 和 P中引入的与Java 8有关的特性的文件都无法进行反编译(这个一般不会出问题的,遇到的也都是大佬)。
Enjarify目前无法转换metadata,例如源文件属性,行号和注释。
性能小贴士
Enjarify是基于Python 3的嘛,这里使用PyPy要比CPython快好多,Linux的脚本里面包装了PyPy,Windows的话要自己搞一下了。
可以通过 --fast选项来提高反编译速度,这样会降低一些可读性,这里你自己做决定吧,大部分包应该用不到这个功能。
首发于个人博客Bismuth
android p ify 三星,Enjarify - Android逆向(二)相关推荐
- 三星android webview,[转]三星GS4(Android 4.3)上webview crash问题
转载自:http://faywong.github.io/posts/2015-01-15-03.html 最近发现客户端中android4.3上GS4手机上的WebApp应用特别容易crash.分析 ...
- 三星android 4.4,三星I9508V Android 4.4-5.0 (GALAXY S4 移动4G版)刷Recovery教程
我们要为三星I9508V Android 4.4-5.0 (GALAXY S4 移动4G版)刷机,就需要先刷入三星I9508V Android 4.4-5.0 (GALAXY S4 移动4G版)第三方 ...
- 三星android测试机型,三星最新Android 10升级计划公布!共22款机型,有你的吗?...
原标题:三星最新Android 10升级计划公布!共22款机型,有你的吗? 3月3日消息,今天知名数码博主曝光了三星升级Android 10的计划表.需要注意的是,升级计划可能因为开发进度.测试结果存 ...
- android n ify三星,三星年度Android旗舰Galaxy S9包装盒曝光!
日前,在网上曝光了一张疑似 Galaxy S9 的包装盒谍照,从图片上来看,这是包装盒的背部,上面包含了不少的硬件信息,但绝大多数大家都已经猜到了. 三星的这部年度旗舰 Android 手机 Gala ...
- 三星对Android的支持,三星应对Android设备开放Gear手表兼容性
[搜狐数码消息]4月11日消息,三星去年推出的Galaxy Gear存在不少问题,其中较为明显的一个是支持的手机型号非常有限,即便是三星自己的Galaxy系列.而在今年的Gear系列设备身上,这一点有 ...
- Android逆向笔记-使用Android Studio调试Smali代码(方式二)
这里我使用Android Studio写了这样的一个程序: 这里我使用Android Studio写了这样的一个程序: 然后点下BUTTON后: 下面写下如何调试这种程序. 开发环境: win 10: ...
- s5原生android 5.0,三星Galaxy S5升级Android 5.0:美味棒棒糖
快速设置与通知 作为Android 5.0 Lollipop重要的新特性之一,在全新TouchWiz的声音与通知菜单也中也新增了智能通知选项,可对每一个应用的通知状态进行管理,避免敏感信息泄露,而通知 ...
- Android安装BusyBox(三星N7108)
近期公司安卓app测试,分配任务为监控APP内存.CPU占用率.因安卓是基于linux开发,故很容易就联想使用Linux监控相关的命令.想法总是美好的,现实总是残酷的,使用三星 Galaxy Note ...
- Android 应用程序集成Google 登录及二次封装
谷歌登录API: https://developers.google.com/identity/sign-in/android/ 1.注册并且登录google网站 https://accounts. ...
最新文章
- ping与telnet的区别
- Leetcode: LRU Cache
- http拨测是什么意思_HTTP 501 是什么意思?
- teradata 数据定义
- Palo Alto Networks 支持仪表盘漏洞泄露数千份客户支持工单
- 喜欢就争取,得到就珍惜,错过就忘记—dbGet(二)
- Mac cmake命令不可用-bash: cmake: command not found
- 11开根号不用计算机,数学开根号有什么方法?不用计算器
- 常用adb命令 主要针对车机硬件类用的多
- 一起talk C栗子吧(第一百零三回:C语言实例--进程间通信大阅兵)
- 怎样才能叫高级程序员?
- Firefox os
- LruCache源码浅析
- IDEA 安装快捷键提示工具:Key promoter X
- 辩证看待曾仕强老师的易经的智慧
- 机器学习中的数学——距离定义(九):测地距离(Geodesic Distance)
- Geekban极客班 第三周
- 探讨IT人的创业方向
- php.krab病毒,SQLServer数据库中了勒索病毒加密,扩展名改为Globeimposter-Alpha666qqz
- 布谷鸟哈希函数的参数_Cuckoo Hash 布谷鸟哈希