【逆向】Android逆向破解某APP

article/2025/9/16 16:23:05

每日一言:高手不是叫所有人都输给你,而是叫所有人都想赢你。

欢迎一起讨论和学习,QQ:732258496  QQ群:478720016

前言

三人行必有我师焉,取长补短,借鉴优秀的APP,提升自己的认知和能力,作为互联网中的一员,要勇于挑战未知领域,作为Android开发者,应该用特殊的手段搞定特殊的事情,带着我们的目标,来一次Android的逆向之旅吧!

准备工作

  • 基本工具三件套:apktool、dex2jar、jd-gui
  • apktool:反编译apk、重新打包新apk,你可以得到smali、res、AndroidManifest.xml等文件
  • dex2jar:把Android之行的dex文件转成jar文件
  • jd-gui:一款可以方便阅读jar文件代码的工具 apktool.bat 下载 
  • 关系图:如下
  • 目录结构 
  • apktool环境变量配置 

逆向开始

  • 第一步:将原应用 apk 后缀改成 zip,解压出 classes.dex 文件
  • 第二步:使用 dex2jar 将 classes.dex 转成 jar 文件

    1.classes.dex放入C:\Users\admin\Desktop\Android\dex2jar-2.0 目录下

    2.cmd C:\Users\admin\Desktop\Android\dex2jar-2.0

    3.d2j-dex2jar.bat classes.dex

    4.C:\Users\admin\Desktop\Android\dex2jar-2.0 目录下多一个 classes-dex2jar.jar

  • 第三步:将 jar 文件用 jd-gui 打开,查看源代码

  • 第四步:反编译apk包 -r 一定要写,或者可以-fC:\Users\admin\Desktop\Android\apktools>apktool d -r dependencies.apk

破解

dex2jar、jd-gui 都只是分析工具,下面才是真正破解的开始。

  • Smali简介 :我们真正需要修改的东西,是 java 代码对应的 smali 指令

Dalvik虚拟机和Jvm一样,也有自己的一套指令集,类似汇编语言,但是比汇编简单许多。我们编写的Java类,最后都会通过虚拟机转化成Android系统可以解读的smali指令,生成后缀为 .smali 的文件,与Java文件一一对应 (也可能会比Java文件多,典型的比如实现某个接口的匿名内部类),这些smali文件就是Dalvik的寄存器语言。 只要你会java,了解android的相关知识,就能轻松的阅读它

  • 反编译 我们利用apktool工具,来提取apk里面的 smali文件。(见上面第四步) 
  • 反编译成功后,打开smali文件夹,找到 对应包名下的 xxx.smali 文件即可修改

回编

接下来把反编译生产的文件夹又重新回编成 apk。

  • 重新打包 新包位置在C:\Users\admin\Desktop\Android\apktools\dependencies\dist\dependencies.apkC:\Users\admin\Desktop\Android\apktools>apktool b dependencies
  • 重新签名

    首先准备一个 .jks 的签名文件,这个开发android的同学应该很熟悉了。

    配置了JDK环境变量,直接执行

总结

最后来梳理一下破解流程:1、将原应用 apk 后缀改成 zip,解压出 classes.dex 文件2、使用 dex2jar 将 classes.dex 转成 jar 文件3、将 jar 文件用 jd-gui 打开,查看源代码4、adb定位到类名包路径,找到相关代码5、apktool 反编译 apk,找到 smali 对应的爆破点6、修改 smali 文件,调试程序7、重新打包,重新签名


http://chatgpt.dhexx.cn/article/tMgCuJn2.shtml

相关文章

安卓app逆向破解脱壳教程

From:Hook 神器家族的 Frida 工具使用详解:https://blog.csdn.net/FlyPigYe/article/details/90258758 详解 Hook 框架 frida ( 信抢红包 ):https://www.freebuf.com/company-information/180480.html APP逆向神器之Frida【Android初级篇】…

推荐收藏黑客APP破解常用工具集合

抓包 HTTP请求类 Fiddler/Charles(必备常用工具之一) 最常见的代理抓包工具,这两个就不用多说了吧?应该都知道了。 ProxyDroid(必备常用工具之一) 强制全局代理工具,详细介绍见当你写爬虫抓…

破解app 在so层的密钥key

一、抓包分析 首先下载app半次元,打开并抓取视频链接 二、无需脱壳,用jadx-gui打开 分析加密参数 搜索关键字 一步一步往上推,就知道密钥在System.loadLibrary("random"); 三、hook方法 上frida,hook md5 frida脚本如下 hook.js Ja…

Charles破解和安装【破解APP抓包限制】Xposed+JustTrustMe关闭SSL证书验证

第一步:安装抓包工具 下载 Download a Free Trial of Charles • Charles Web Debugging Proxy​www.charlesproxy.com/download/https://link.zhihu.com/?targethttps%3A//www.charlesproxy.com/download/ 破解网站 Charles破解工具​www.zzzmode.com/mytools/c…

利用沙盒技术破解APP的API协议加密

项目地址:https://github.com/tbruceyu/AppCaller 无聊的需求 前段时间闲的没事,经常刷某视频App。里面有很多有才的人,突然想把他们的视频都给下载下来在电脑上面存起来慢慢看。正好这段时间比较空闲,就尝试去破解一下它的Http…

记一次结合fiddler逆向破解app注册码

某天测试app时,需要注册码才能进入应用,二话不说开始进行破解… 详细过程 运行app时会弹出先输入注册码的弹框,只有输入正确的注册码才可进入。 共采用了3种尝试方式 1.暴力hook 搜索字符串“请输入注册码”,定位到几个可疑函…

【移动安全基础篇】——26、两个简单app破解

1. 试用版软件破解 使用 ApkIde 打开要破解的 app 进行反编译 分别显示各个按钮的相关 smali 代码 将 v0 置为专业版的密钥 保存后重新编译,破解成功2. 网络验证 使用 apkIde 对目标 app 进行反编译操作 定位到点击函数中,分析其中的操作 找到网络连接…

逆向破解思路和获取app的代码,脱壳操作(一)

.我们的app首先是经过我们写代码、最后经过签名、打包最后生成.app文件,那么这个.app的文件在哪里呢,我用我自己的项目做个例子大致他的位置在这里: 他这个其实就是包含我们项目中的资源和我们写的代码,我们要学习逆向那么其实就是…

逆向破解思路和获取app的代码,脱壳操作(四)

加壳 什么是加壳? 我们的ipa文件上传appstore,苹果会给我们做一个加密,其实我们运行在内存中的过程是一个加密的壳程序,当然在手机中我们会对他进行解密壳程序,来直接运行可执行的文件,当然苹果这样做的目…

骚操作“破解“App

mitmproxy就是用于MITM的proxy,MITM即中间人攻击(Man-in-the-middle attack)。用于中间人攻击的代理首先会向正常的代理一样转发请求,保障服务端与客户端的通信,其次会实时查、记录其截获的数据或篡改数据,…

逻辑回归算法实现

逻辑回归算法原理还是比较容易理解的,根据计算的结果实现一下: 手写的推导过程如下: 然后我们开始写实现的过程 1、写出判断模型准确性的函数,这个比较容易理解 import numpy as np from math import sqrtdef accuracy_score(y…

逻辑回归算法 - 乳腺癌预测

1 目标 根据历史女性乳腺癌患者数据集(医学指标)构建逻辑回归分类模型进行良/恶性乳腺癌肿瘤预测 2 数据集 2.1 数据集来源 数据集源于威斯康星州临床科学中心。每个记录代表一个乳腺癌的随访数据样本。这些是DR Wolberg自1984~1995随访搜…

以《简单易懂》的语言带你搞懂逻辑回归算法【附Python代码详解】机器学习系列之逻辑回归篇

大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师。欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我或者我的数据分析专栏,里面有许多优质的文章跟大家分享哦。 目录 必看前言逻辑…

逻辑回归算法梳理(从理论到示例)

逻辑回归算法的名字里虽然带有“回归”二字,但实际上逻辑回归算法是用来解决分类问题的算法。线性回归和逻辑回归相当于一对“孪生兄弟”,本文将从二分类入手,介绍逻辑回归算法的预测函数、损失函数(成本函数)和梯度下…

机器学习 逻辑回归算法应用案例

机器学习 逻辑回归算法应用案例 时间:2020.09.12 出处:https://www.kesci.com/home/project/5bfe39b3954d6e0010681cd1 注明:初学逻辑回归,跟着博客大佬文章过了一遍,自己留个记录以便之后翻阅,也供大家学…

机器学习——逻辑回归算法代码实现

机器学习——逻辑回归算法代码实现 前言一、逻辑回归是什么?二、代码实现1.数据说明2.逻辑回归代码 前言 最近准备开始学习机器学习,后续将对学习内容进行记录,该文主要针对逻辑回归代码实现进行记录! 一、逻辑回归是什么&#x…

逻辑回归算法的优化

一:有无截距: 如上图。可以知道,有截距的线条数比无截距的线条数(过原点的线条)要多。所以在选择逻辑回归的时候,通常要设置截距。增加正确的概率。 代码: val lr = new LogisticRegressionWithSGD() ----创建逻辑回归对象 l…

Python机器学习--回归算法--逻辑回归算法

逻辑回归算法 逻辑回归算法类型: 逻辑回归属于有监督学习的分类算法(只能做二分类) 逻辑回归算法原理: 将线性回归的结果输入sigmoid函数中,得出预测为类1的概率( 如果概率为0.2 有20%的可能属于类1,属于类0的概率…

算法笔记(11)逻辑回归算法及Python代码实现

逻辑回归算法是一种被广泛使用的分类算法,通过训练数据中的正负样本,学习样本特征到样本标签之间的假设函数。逻辑回归假设因变量 y 服从伯努利分布,而线性回归假设因变量 y 服从高斯分布。 因此与线性回归有很多相同之处,去除Sig…

深度学习原理-----逻辑回归算法

系列文章目录 深度学习原理-----线性回归梯度下降法 深度学习原理-----逻辑回归算法 深度学习原理-----全连接神经网络 深度学习原理-----卷积神经网络 深度学习原理-----循环神经网络(RNN、LSTM) 时间序列预测-----基于BP、LSTM、CNN-LSTM神经网络…