apktoolkit apk反编译没有文件_[工具] Mac下一键APK逆向环境

安装apktool和dex2jar,jd-gui

homebrew安装: brew install apktool brew install dex2jar JD-GUI去http://jd.benow.ca/下载 dmg可能不支持最新版本的mac用不了,打开就报错

反编译流程

  1. 执行脚本apktool d xxx.apk   注:xxx.apk为你要反编译的apk

  2. 在你执行命令的目录下会生成xxx文件夹 到文件夹中查看res资源文件即可

  3. 将apk文件后缀名直接改为.zip并解压。得到其中的classes.dex文件,它就是java源代码经过编译再通过dx工具打包而成的。

  4. 将classes.dex文件复制到dex2jar所在的文件夹

  5. 终端cd到dex2jar目录,运行 sh dex2jar.sh classes.dex

  6. 生成 classes_dex2jar.jar

  7. 用jd-gui打开就可以看到源代码

自动化反编译

之前想着手动敲命令就好了,做题的时候发现还是得百度,就准备用shell脚本一键化。shell脚本:

apktool d $1 && mv $1 $1.zip && unzip $1.zip "*.dex" -d $1_dex/ && cd $1_dex/ && d2j-dex2jar *.dex

当然也可以把这个放到 .bash_profile 可以命令行运行

实战

超级简单的Android逆向

还是JDCTF的一道题 aa49fc8cf6877997aad333a884c57842.png先用写好的 1.sh脚本自动反编译了 生成的classes-dex2jar.jar放到jd-gui里面 72615e2e4b4b38e7a0558c103745aa16.png所有的东西都在主函数,看主函数 422a7db26519a3293dc7738a387ef452.png所有的程序,输入的值经过 encode函数和 base64只要等于 NGM5OTkzNDIyM2NmMjQwZA==这个就可以了 解出来是 4c99934223cf240d 55888fd2e45a5d4a2585c70d2af90952.png看一下encode函数,没什么用 把字符串翻转一下就好了 371f2d1355fbbdbbb30f72605a6908d5.png 5da74bc9e2a3494d9be4dbaf23ab8918.png

参考文章

https://blog.csdn.net/jyygn163/article/details/71731786

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建你的嵌入式Vxworks开发环境

3.1 最常见的开发环境配置使用串口和网络连接(host和target之间)。串口连接用于和boot loader之间的通信(如输出信息在host上的显示),网络连接用于传输文件,包括Vxworks system image。默认情况下使用网络连…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python字典和集合)

字典和集合 字典 每个字典元素都是一个键(关键字)/值(关键字对应的取值)对 #创建字典 dic_score{"语文":80,"数学":99} #打印 print(dic_score) print(dic_score["语文"]) #长度 print(dic_score.__len__)#错误写法 print(len(dic_score)) #…

[Project Euler]加入欧拉 Problem 9

A Pythagorean triplet is a set of three natural numbers, a b c, for which, a2 b2 c2 For example, 32 42 9 16 25 52. There exists exactly one Pythagorean triplet for which a b c 1000.Find the product abc. 意思很明白找出这样的a, b, c abc 1000 a …

java 在已有的so基础上封装jni_[干货]再见,Android JNI 封装

1 前言2 JNI 速查表2.1 Java 和 Native 数据类型映射表2.2 引用类型3 JNI 理论基础速览4 JNI 常用场景示例4.1 字符串传递(java->native)4.2 字符串返回(native->java)4.3 数组传递(java->native)4.4 其他复杂对象传递(java->native)4.5 复杂对象返回(native->j…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python函数)

函数(function) :实现某种特定功能的代码块 优点:程序简洁,可重复调用、封装性好、便于共享 类别:系统函数和用户自定义函数 Python内置函数 数学运算函数 print(abs(-1)) print(pow(2,3)) print(round(3.1415926,…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python模块、包和库)

模块(Module) 模块是一个python文件(.py),拥有多个功能相近的函数或类。 便于代码复用,提高编程效率,提高了代码的可维护性。 避免函数名和变量名冲突。 包(Package)…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(Python面向对象的编程)

面向对象的程序设计(OOP) 对象(object): 将属性和方 法封装在一起。 类(class): 具有相同的属性和方法的对象集合。 对象是类的实例 子类继承了父类的全部属性和方法, 并且也有自己特有的属…

python3.8怎么打开创建_Python 3.8 新功能大揭秘【新手必学】

最新版本的Python发布了!今年夏天,Python 3.8发布beta版本,在2019年10月14日,第一个正式版本已准备就绪。现在,我们都可以开始使用新功能并从最新改进中受益。 Python 3.8是Python语言的最新版本,它适合用于…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python文件)

路径 绝对路径:从盘符开始的路径 相对路径:从当前目录(工作目录)的路径 获取当前路径 #获取当前工作目录 import os print(os.getcwd())访问模式 文件对象open(文件名,访问模式) f open…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python异常处理)

异常: 程序运行时的错误,对应一个Python对象。 try: 语句块 except 异常1 as 错误原因: 出现异常1后的处理代码 except 异常2 as 错误原因: 出现异常2后的处理代码 #在程序运行时,解释器尝试执行try语句块中的所有代码。 try:alist [0,…

linux串口编程实例_Linux 网络编程——原始套接字实例:发送 UDP 数据包

以太网报文格式:IP 报文格式:UDP 报文格式:校验和函数:/*******************************************************功能:校验和函数参数:buf: 需要校验数据的首地址nword: 需要校验数据长度的一半返回值&am…

python2安装_如何安装python2

目前市面上python的主流版本有两个,一是python2.X的版本,另有一种是python3.X的版本。python2预计在2020年将停止维护,未来python3将是主流。 下面讲一下python2.x的安装详细讲解。Python安装: 本文以python 2.7.8(64位)为例说明&…

神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python上下文管理器)

with语句 使用with语句替代try-finally 语句,代码更加的简洁清晰 对于需要对资源进行访问的任务,无论在代码运行过程中,是否发 生异常,都会执行必要的清理操作,释放资源。 1. with open(r"D:\code1\pythontes…

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<1>python)

多维数组 形状(Shape): 是一个元组,描述数组的维度,以及各个维度的长度。 长度(Length): 某个维度中的元素个数。 数字单门课程成绩1*课程成绩一维数组多门课程成绩n*课程成绩二…

web扫描

随着网站越来越多元化,内容或资讯都会不定期更新,而每个新增的页面或连结,都有可能带来新的漏洞,因此,网站的安全性 检测不论在上线前或是每次更新时,都是务必检查的工作。 但是手动的网站检测,…

2.2基本算法之递归和自调用函数_数据结构与算法之5——队列和栈

栈和队列比较简单,而且实用性非常广泛,这里主要介绍一下他们的概念和实现,在很多算法中,栈和队列的运用很重要,因此,虽然简单确是最重要的数据结构之一,必须重视。栈是保证元素后进先出(后存入者…

神经网络与深度学习——TensorFlow2.0实战(笔记)(五)(NumPy科学计算库<2>python)

数组元素的切片 一维数组 #一维数组 #切片方法和Python序列数据结构的切片一样 anp.array([0,1,2,3,4],dtypenp.int64)#占用新的内存 #不包括结束位置 print(a[0:3]) print(a[:3]) print(a[0:]) 二维数组 #二维数组 anp.array([[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14]],d…

c语言二进制数怎么表示_搞懂这些公式和原理,二级C语言对你来说肯定会简单很多!...

基本概念:机器数:在计算机中,一个数有二进制表示的数原码:第一位是符号位,其他位表示数值:0:正数,1:负数反码:正数-->原码,负数-->符号位不…

详细js读取execl内容并展示

作者execl内容展示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"> <!-- <script type"text/java…

python棋盘最短路径_Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例...

本文实例讲述了Python数据结构与算法之图的最短路径(Dijkstra算法)。分享给大家供大家参考&#xff0c;具体如下&#xff1a; # coding:utf-8 # Dijkstra算法——通过边实现松弛 # 指定一个点到其他各顶点的路径——单源最短路径 # 初始化图参数 G {1:{1:0, 2:1, 3:12}, 2:{2:…