安卓逆向(送给最好的TA)

2024-02-07 07:20
文章标签 最好 逆向 安卓 送给 ta

本文主要是介绍安卓逆向(送给最好的TA),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • Apk反编译三件套
      • 1.apktool——可以反编译软件的布局文件、图片等资源,方便大家学习一些很好的布局
      • 2.dex2jar——将apk反编译成java源码(classes.dex转化成jar文件)
      • 3.jd-gui——查看APK中classes.dex转化成出的jar文件,即源码文件。
    • 经历
      • 使用【apktool】来反编译
      • 使用【dex2jar】将apk源码反编译成java源码
      • 使用【jd-gui】工具将class文件反编译成java源代码
      • 使用【apktool】重打包
      • 使用【autosign】重新签名

哈哈哈哈,人生第一次玩安卓逆向,虽说这次操作并不算有多牛逼,但是还是让人兴奋不已。
下面把博主的实验经历记录下来。

Apk反编译三件套

1.apktool——可以反编译软件的布局文件、图片等资源,方便大家学习一些很好的布局

2.dex2jar——将apk反编译成java源码(classes.dex转化成jar文件)

3.jd-gui——查看APK中classes.dex转化成出的jar文件,即源码文件。

工具下载
apktool :这里
dex2jar:这里
jd-gui:这里
以上工具的安装使用并不在这一一列出,毕竟百度一下一大把。
如果实在懒的搜,那就看着–> 1,2,3

经历

拿到送给最好的TA.apk

  • 将其后缀名.apk改为.zip,解压缩,会发现一个文件夹,
    在这里插入图片描述
    assets文件夹目录结构
    在这里插入图片描述
    其中0.MP3就是那罪恶的源泉,当然博主把它替换成爱国主义歌曲《强军战歌》。(0.mp3我就地销毁,你们不用找博主要了)
    这样简单的替换,难道之后只需将其重新压缩,改后缀名.apk就行了吗,当然不是,它还需要打包打包重签名。
    但是这种单纯的改后缀,然后用apktool来重新打包是不行,但我们可以用这种方法来看看apk文件中有哪些文件。
    于是第二种方法出来了。

使用【apktool】来反编译

进入到测试apk所在目录,输入apktool d test.apk开始反编译
编译结束可以看到目录下多了个test文件夹,里面就是反编译以后的产物,我们想要的 AndroidManifest.xml和res/.等资源文件
此时资源文件反编译就完成了,下面继续反编译java代码,这是就要用到dex2jar和 jd-gui
下载完dex2jar和 jd-gui解压一下就可以了,复制到操作目录方便操作

使用【dex2jar】将apk源码反编译成java源码

在上网中改后缀为.zip,解压缩,得到文件夹中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的)。

  1. 将上述classes.dex复制到dex2jar文件夹路径下;
  2. 命令行到dex2jar文件的目录;
  3. 输入以下命令,完成编译。
d2j-dex2jar.bat classes.dex

在这里插入图片描述
其中d2j-dex2jar.bat是Windows下启动dex2jar工具的批处理文件。
classes-dex2jar.jar是反编译classes.dex成功后生成的jar文件

使用【jd-gui】工具将class文件反编译成java源代码

反编译classes.dex得到classes-dex2jar.jar文件之后,就可以使用【jd-gui】工具将class文件反编译成java源代码了. (jar为class文件打包)
在这里插入图片描述

使用【apktool】重打包

刚才我们执行apktool d test.apk反编译得到了test目录
在这里插入图片描述
回编译就是执行命令apktool b test
成功之后,test目录下会生成build和dist目录

  1. build目录下存放的是打包后的dex文件和资源文件(和apk解压后一样一样的)
  2. dist目录下存放的是重新打包后的apk文件

使用【autosign】重新签名

签名apk,重新发布
接下来就要用到签名工具了,如果不经过签名是不能正确运行的。工具: auto-sign.zip
将打包好的test.apk 拷贝到解压好的auto-sign文件夹下,执行命令:(cmd路径也在当前文件夹下)

java -jar signapk.jar testkey.x509.pem testkey.pk8 test.apk test_signed.apk

test_signed.apk就是签名后的apk
在这里插入图片描述

这篇关于安卓逆向(送给最好的TA)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/686953

相关文章

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

安卓玩机工具------小米工具箱扩展工具 小米机型功能拓展

小米工具箱扩展版                     小米工具箱扩展版 iO_Box_Mi_Ext是由@晨钟酱开发的一款适用于小米(MIUI)、多亲(2、2Pro)、多看(多看电纸书)的多功能工具箱。该工具所有功能均可以免root实现,使用前,请打开开发者选项中的“USB调试”  功能特点 【小米工具箱】 1:冻结MIUI全家桶,隐藏状态栏图标,修改下拉通知栏图块数量;冻结

转:android ro.debuggable属性调试修改(mprop逆向)

android ro属性调试修改(mprop逆向)      大家都知道如果需要调试android 的程序,以下两个条件满足一个就行。第一是apk的配置文件内的AndroidManifest.xml的 android:debuggable=”true”,第二就是/default.prop中ro.debuggable=1。两种方式第一种通常是解包添加属性再打包,随着加壳软件以及apk校验等,容易出

安卓开发板_联发科MTK开发评估套件串口调试

串口调试 如果正在进行lk(little kernel ) 或内核开发,USB 串口适配器( USB 转串口 TTL 适配器的简称)对于检查系统启动日志非常有用,特别是在没有图形桌面显示的情况下。 1.选购适配器 常用的许多 USB 转串口的适配器,按芯片来分,有以下几种: CH340PL2303CP2104FT232 一般来说,采用 CH340 芯片的适配器,性能比较稳定,价

Java 文件读写最好是用buffer对于大文件可以加快速度

参考例子: FileReader fileReader = new FileReader(filename);BufferedReader bufferedReader = new BufferedReader(fileReader);List<String> lines = new ArrayList<String>();String line = null;while ((line =

某里227逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解阿里227版本滑块参数n的逆向分析流程以及简单的补环境,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有需要可联系我。 一

安卓实现弹出软键盘屏幕自适应调整

今天,我通过尝试诸多方法,最终实现了软键盘弹出屏幕的自适应。      其实,一开始我想通过EditText的事件来实现,后来发现,安卓自带的函数十分强大,只需几行代码,便可实现。实现如下:     在Manifest中设置activity的属性:android:windowSoftInputMode="adjustUnspecified|stateHidden|adjustResi

笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历

目录 [NOIP2002普及组]过河卒 牛客.游游的水果大礼包 牛客.买卖股票的最好时机(二) 二叉树非递归前序遍历 [NOIP2002普及组]过河卒 题里面给的提示很有用,那个马的关系,后面就注意,dp需要作为long的类型。 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publ