iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Google Enjarify:可代替
  • 256
分享到

Google Enjarify:可代替

GoogleEnjarify 2023-01-31 08:01:55 256人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

Enjarify 是一个将Dalvik字节码转化为等价的Java字节码,然后可以用一系列的Java分析工具去分析Android应用。之前我们一直使用Dex2jar来完成这个工作,不过Dex2jar已经算是一个非常老的工具咯。Dex2jar

Enjarify 是一个将Dalvik字节码转化为等价的Java字节码,然后可以用一系列的Java分析工具去分析Android应用。之前我们一直使用Dex2jar来完成这个工作,不过Dex2jar已经算是一个非常老的工具咯。Dex2jar在绝大部分情况下都挺不错的,但是如果碰到了些模糊的特性或者特殊案例就会出错或者默默地吐出一些错误的结果。相比之下,Enjarify在设计的时候就考虑到了尽可能多的情况,特别是对于那些Dex2jar不起作用的情况下。另外,Enjarify能够有效地处理Unicode编码的类名、常量,隐式类型转换、正常处理流程中的移除处理啊等等。

Usage and installation

Enjarify是一个普通的python 3的应用程序,你可以直接git Clone然后运行。下载好了之后直接进到对应的目录下:


python3 -O -m enjarify.main yourapp.apk

linux

有时候为了方便调用,可以将该脚本做一层封装,尽可能的使用Pypy,这货会比CPython速度快一点。另外,如果你希望能够像调用命令一样直接调用Enjarify,你可以将它作为链接放到你的环境变量中,譬如:


ln -s "$PWD/enjarify.sh" ~/bin/enjarify

windows

我们提供了一个可执行的脚本enjarify.bat,同样地把这个脚本放到环境变量中就可以了。

Usage

可以直接用以下命令调用:


enjarify yourapp.apk

最简单的用法就是可以将一个apk文件或者一个dex文件作为命令行的输入,如果你使用的是一个多dex的apk,那么Enjarify会自动将这些dex打包到一个单一的jar文件中。而如果你选定了一个dex文件,那么只有这个dex文件会被解析。


enjarify classes2.dex

默认的输出是会在当前目录下创建一个[inputname]-enjarify.jar文件。可以通过-o参数来指定输出文件的名称:


enjarify yourapp.apk -o yourapp.jar

默认情况下,Enjarify不会覆盖已经存在的文件,不过可以使用-f或者--force参数来强制指定覆盖。

Limitations

Enjarify 目前还不能狗完整解析一些可选的信息,譬如源文件的属性、行数以及注解。Enjarify已经尽可能地去解析所有的类,不过因为Android或者Java的限制,有些隐藏类并不能很好地解析,不过往往只有在有很多人为混淆的情况下才会出现。

PerfORMance tips

PyPy可是比CPython快很多,可以在这里Http://pypy.org/.下载,注意要使用PyPy3,而不是普通的PyPy。Linux下默认会使用pypy3,Windows下面则需要你自己去编辑了。另外,Enjarify默认会使用一些优化算法使得整个反编译之后的代码的可读性增加,比如移除未使用的变量等。如果你不需要这些,可以使用--fast参数来加快速度。

--结束END--

本文标题: Google Enjarify:可代替

本文链接: https://www.lsjlt.com/news/193107.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Google Enjarify:可代替
    Enjarify 是一个将Dalvik字节码转化为等价的Java字节码,然后可以用一系列的Java分析工具去分析Android应用。之前我们一直使用Dex2jar来完成这个工作,不过Dex2jar已经算是一个非常老的工具咯。Dex2jar...
    99+
    2023-01-31
    Google Enjarify
  • 可行的替代方案替代sessionStorage
    代替sessionStorage的可行方案有哪些? sessionStorage是一种浏览器提供的存储机制,可以在同一窗口或标签页中存储临时的会话数据。然而,sessionStorage存在一些限制,比如数据存储在一次会话中,关...
    99+
    2024-01-15
  • vue可以替代jquery吗
    随着前端技术的不断发展和更新,人们对于前端框架的需求也越来越高。最近,有很多人问vue和jQuery的区别,甚至质疑vue是否可以替代jQuery。今天我们就来探讨一下这个话题。首先,我们需要了解一下vue和jQuery的区别。Vue是一款...
    99+
    2023-05-14
  • Golang 替代 PHP 的可行性
    golang 可替代 php,因为它具有出色的性能、并发性和跨平台兼容性。通过静态类型系统,golang 提高了代码可靠性。通过实战案例,我们演示了将 php 应用迁移到 golang ...
    99+
    2024-05-12
    php golang mysql linux macos 用户注册 并发请求
  • mysql可以用什么代替in
    这篇文章主要介绍mysql可以用什么代替in,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Mysql中用exists代替in;exists对外表用loop逐条查询,每次查询都会查看e...
    99+
    2024-04-02
  • sql中or可以用什么代替
    sql 中 or 运算符的替代方案包括:1. union:合并查询结果并丢弃重复记录;2. in:检查值是否包含在指定列表中;3. case when:根据条件返回不同值;4....
    99+
    2024-05-08
  • JavaScriptPinia代替Vuex的可行性分析
    目录一、介绍二、对比三、使用1. 安装2. 注册3. 创建单个 store4. 组件内引用5. 更新 store  数据的4种方式(1)直接修改特定的值(2)利用 $pat...
    99+
    2024-04-02
  • sql中的in可以用什么代替
    使用 or 运算符可以替代 sql 中的 in 运算符,从而有效率地检查一个值是否包含在指定列表中。or 运算符的优势在于语法直观、易于使用,尤其是在列表值较多时。需要注意的是,or 运...
    99+
    2024-05-02
  • JavaScript Webpack:替代方案探究,了解有哪些其他选择可以代替Webpack
    Webpack 作为前端构建工具的领导者,在业界有着广泛的应用,但它并不是唯一的选择,有很多可以替代 Webpack 的方案,各有其优缺点。让我们来看看有哪些其他选择可以代替 Webpack。 1. Rollup Rollup 是一个使...
    99+
    2024-02-08
    Webpack 构建工具 替代方案
  • python的切片实例可代替for循环
    #!/usr/bin/env python3 # -*- coding: utf-8 -*- L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] print('L[0:3] =', L[0:...
    99+
    2023-01-31
    切片 实例 python
  • Django框架是否可以替代ASP文件?
    随着Web开发技术的不断发展,人们对于网站的要求越来越高,对于网站的性能、安全性等方面的要求也越来越高。而在Web开发中,ASP文件一直是一个重要的组成部分。但是,随着Django框架的不断发展,有人开始质疑Django框架是否可以替代A...
    99+
    2023-10-26
    文件 django 框架
  • 当sessionstorage不可用时,有哪些可替代的方案可以使用?
    sessionStorage 是 HTML5 提供的一种用于在客户端存储数据的机制。然而,在某些情况下,sessionStorage 可能无法使用,这可能会导致一些问题。在本文中,我们将探讨一些替代方案,以解决在 session...
    99+
    2024-01-15
  • sql中的in可以用什么代替数据
    对于 sql 中的 in 替代选项,可考虑以下建议:使用 or 代替较小的值集合;用 case when 创建动态查询,根据条件更改值匹配;利用 join 优化涉及多个表的查询,尤其在值...
    99+
    2024-05-08
  • 代替 ”。”与“_”Golang
    php小编柚子今天为大家介绍一种非常实用的Golang语言特性——代替操作符(_)。在Golang中,代替操作符可以用来忽略某个变量或表达式的值,让代码更加简洁和易读。通过使用代替操作...
    99+
    2024-02-09
  • SQL中有什么写法可以替代Like语句
    本篇内容介绍了“SQL中有什么写法可以替代Like语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • golang可变参数是否有更好的替代方案?
    可变参数函数的更好替代方案有:使用切片作为参数使用结构体作为参数使用函数柯里化 Go 可变参数的更好替代方案 Go 中的可变参数函数通过 ... 语法允许传递任意数量的参数。虽然这在某...
    99+
    2024-04-29
    golang 可变参数
  • vue代替JavaScript吗
    Vue.js是一个流行的JavaScript框架,它被用于构建Web界面和单页面应用程序。许多开发人员已经开始使用Vue,但是有些人质疑它是否能完全替代JavaScript。要回答这个问题,我们需要更深入地探讨Vue和JavaScript之...
    99+
    2023-05-14
  • 为什么说OceanBase在关键领域不可能替代Oracle
    2019 年 10 月 9 日,某部委人士在公开会议上指出, “ OceanBase 测试指标虽高,但在关键领域仍不能使用” 、“ 互联网和银行场景完全不同” 、“ 不能支持跑批(批处理业务) ” 。问题...
    99+
    2024-04-02
  • vs能代替golang吗
    vs不能代替golang,定位和目标不同,VS更适合用于开发大型项目,对于简单的小型项目来说,可能会显得过于庞大和复杂,而Go具有强大的标准库和工具集,能够简化开发过程,降低代码量,提高开发效率。虽然可以使用VS来编辑和开发Go代码,但Go...
    99+
    2023-07-24
  • python:一种代替 switch--
    除了使用 if-elif-else 之外,还可以这样用 def add(a, b): return a + b def minus(a, b): return a - b def main(mod, a, b...
    99+
    2023-01-31
    python switch
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作