Android逆向学习(一)vscode进行android逆向修改并重新打包

Android逆向学习(一)vscode进行android逆向修改并重新打包

写在前面

其实我不知道这个文章能不能写下去,其实我已经开了很多坑但是都没填上,现在专利也发出去了,就开始填坑了,本坑的主要内容是关于android逆向,主要的教程来源来自52破解论坛的大佬课程,但是那是windows版,我喜欢用linux,所以这是一个有比较大改动的学习教程,不过我确信你在windows上也可以运行,let’s go.

一、软件准备

如上文所说,我是linux用户,所以就是用的linux下相同的替代品(我感觉linux下的软件更好用)

1、模拟器

我使用的模拟器叫做xdroid,为认为这个做得要比android studio的好(当然指分析起来的时候),因为很多软件用的native code是arm架构下的,而android studio下模拟器主要是x86架构,很多软件无法进行分析。当然如果安装xdroid需要关闭security boot,就是在bios里面关闭。

然后我们下载xdroid的安装包,直接./运行就好了,记得不要使用sudo ./ 会提示不可以。

我们还需要安装的软件有开发助手,NP管理器,主要就是这两个用来进行逆向分析,而且这个是已经root好的,我们还可以直接使用adb进行调试,注意将右上角的这个android 7换成android 9,不然有的吾爱的那个软件安装不上。

e37fb64ed46ed0c27dbe1508fa5999e97163022138e29438d1625e8128ff2355

adb的命令

adb devices
adb -s xxxx root
adb -s xxxx shell

20230902234342

2、逆向使用的软件

教程中使用的是NP管理器和开发助手,当然我感觉直接用NP管理器的话,不是特别优雅,毕竟最好还是直接逆向后在电脑上修改,这样会显得我们比较专业,所以我用到的软件是vscode和apktool,apktool这个我就不讲了,我在之前的博客中就介绍过这个东西。

VScode的话我是用的APKLab拓展,这样可以更加方便的使用apktool以及其他的反编译软件,打包apk什么的也是非常的方便.

我vscode的插件主要是:

smalise:用来查看smali代码的,是apklab的前置软件

apklab:主要的插件,是一个十分强大的插件,能够把apktool等各种工具给整合起来,直接使用键盘就可以直接操作了

luna paint:这是一个用来编辑图片的软件,能够比较好的用来修改图片,当然这个不下载也可以,这个不影响

smali2java:这是一个很好用的反编译的插件,能够将代码转化为java代码能够比较清晰的去查看代码的逻辑

软件的配置过程

我们主要配置的就只有apklab这个软件

20230902223813

前三个就是你的工具的路径,这个不用动就可以,这个会自动下载的

后面的Keyalias是你个android开发签名,每个apk包是要有一个签名才可以进行安装的,既然反编译重新修改了,就得找个key重新进行签名才可以,这个生成的方法就是使用android studio进行生成,具体我不再讲解,这个直接查就好

二、对android文本进行修改并重新打包

下面到了吾爱的第一个作业,就是修改图片文本,我们这样作,首先按下(Ctrl+Shift+P)选择open apk,就可以打开你的那个安装包了,这是我们逆向之后的结构

20230902224541

然后我们需要使用开发助手查看我们当前的activity是哪一个,打开开发助手,然后点击当前activity,就可以看到页面上显示的类名了,然后我们再运行需要破解的软件,就可以看到当前的activity了

20230902224814

然后就会显示这个东西

20230902225347

我们在vscode的安装包里查找这个activity的相关资源

我们在smali代码中发现了第一句

20230902225627

修改了就好

20230902230559

我们在res里面可以发现layout,里面是布局文件,然后这里还有一个文本,修改即可

20230902230824

然后mipmap-xxxhdpi里面有图片,给他替换了

20230902230940

然后我们根据之前的布局文件发现里面的文案是@string里面的,所以我们应该去查values里面找string.xml,修改tip1和first_tv,果然我们发现了相关的东西

20230902231540

20230902231614

我们照样进行修改

修改完成后,别忘保存,然后我们右键apktool.yml,进行打包安装,打包的文件在你路度的dist文件里面,注意这个有点bug,容我慢慢给你讲

20230902232442

  1. 需要你打开其中一个软件后,你的adb才能查找到模拟器,所以记得打开开发助手或者其他软件让模拟器运行着,你再安装
  2. 安装后里面没有这个图标,这个就是模拟器的bug了,可以通过开发助手来打开,所以凑合用就行,只要输出控制台显示没有问题就好

所以我们安装后打开应用的方式就是在Manifest查看->软件名->右上角点打开应用,然后打开应用之后我们就是可以看到修改后的文件(这个安装包可以在真机上安装的,我试过了)

然后我们看到了虎哥和一眼万年的图片

20230902233721

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

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

相关文章

Scrum认证高级Scrum Master (A-CSM) 认证培训课程

课程简介 高级ScrumMaster (Advanced Certified ScrumMaster, A-CSM) 认证课程是国际Scrum联盟推出的进阶级Scrum认证课程,是Scrum Master通往专业级敏捷教练必经的学习路径。 在ScrumMaster(CSM)认证课程中,您学习到了Scrum的价…

Centos 6.5 升级到Centos7指导手册

一、背景 某业务系统因建设较早,使用的OS比较过时,还是centos6.5的系统,因国产化需要,需将该系统升级到BClinux 8.6,但官方显示不支持centos 6.x升级到8,需先将centos6.5升级到centos7的最新版&#xff0c…

华为OD机试 - 战场索敌 - 深度优先搜索dfs算法(Java 2023 B卷 100分)

目录 一、题目描述二、输入描述三、输出描述四、深度优先搜索dfs五、解题思路六、Java算法源码七、效果展示1、输入2、输出3、说明4、如果增加目标敌人数量K为55、来,上强度 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 一、题目描述 有一个大小是N*M…

RNA 36. SCI 文基于转录组数据识别CNV并可视化 (CaSpER)

转录组生信分析教程 桓峰基因公众号推出转录组分析教程,有需要生信的老师可以联系我们!转录分析教程整理如下: RNA 1. 基因表达那些事--基于 GEO RNA 2. SCI文章中基于GEO的差异表达基因之 limma RNA 3. SCI 文章中基于T CGA 差异表达基因之 …

python28种极坐标绘图函数总结

文章目录 基础图误差线等高线polar场图polar统计图非结构坐标图 📊python35种绘图函数总结,3D、统计、流场,实用性拉满 matplotlib中的画图函数,大部分情况下只要声明坐标映射是polar,就都可以画出对应的极坐标图。但…

基于SSM的校园美食交流系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

2023-9-10 集合-Nim游戏

题目链接&#xff1a;集合-Nim游戏 #include <iostream> #include <cstring> #include <algorithm> #include <unordered_set>using namespace std;const int N 110, M 10010;int n, m; int s[N], f[M];int sg(int x) {if(f[x] ! -1) return f[x];//…

【补】代码随想录算法训练营day38|动态规划 |509. 斐波那契数|70. 爬楼梯|746. 使用最小花费爬楼梯

动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就区分于贪心&#xff0c;贪心没有状态推…

【初阶C语言】操作符1--对二进制的操作

前言&#xff1a;本节内容介绍的操作符&#xff0c;操作的对象是二进制位。所以前面先介绍整数的二进制位 一、二进制位介绍 1.二进制介绍 &#xff08;1&#xff09;整数的二进制表示形式有三种&#xff1a;原码、反码和补码。 &#xff08;2&#xff09;原码、反码和补码的…

conda的使用教程

conda的介绍 简单来说&#xff0c;conda软件就是来管理包的软件。以Python为例&#xff0c;在实际生活中&#xff0c;我们要处理多个不同的项目&#xff0c;因此&#xff0c;要安装不同的项目所需要的包&#xff0c;为了管理方便&#xff0c;conda就是用来打理不同项目的包&…

Kafka3.0.0版本——消费者(消费者组详细消费流程图解及消费者重要参数)

目录 一、消费者组详细消费流程图解二、消费者的重要参数 一、消费者组详细消费流程图解 创建一个消费者网络连接客户端&#xff0c;主要用于与kafka集群进行交互&#xff0c;如下图所示&#xff1a; 调用sendFetches发送消费请求&#xff0c;如下图所示&#xff1a; (1)、Fet…

什么是50ETF期权开户条件,怎么开期权交易权限?

50ETF期权是指上证50ETF期权&#xff0c;标的物是上证50ETF&#xff0c;代码是&#xff08;510500&#xff09;&#xff0c;期权是一种在上证50ETF基础上进行衍生品交易的金融工具&#xff0c;下文科普什么是50ETF期权开户条件&#xff0c;怎么开期权交易权限&#xff1f;本文来…

FFmpeg入门之FFmpeg源码编译

1.源码下载: git clone https://github.com/FFmpeg/FFmpeg.git windows : macos: ubuntu: 2.编译FFmpeg CompilationGuide – FFmpeg windows: 1.下载yasm并安装 : Download - The Yasm Modular Assembler Project 下载后复制到c:/windows 2.下载SDL 3.下载H264/265源码 git…

css画一条渐变的虚线

效果展示 原理&#xff1a;给元素设置一个渐变的背景色&#xff0c;画一条白色的虚线盖住背景&#xff0c;就达到了渐变虚线的效果 代码&#xff1a; <div class"pending-line"></div>.pending-line{width: 101px;border-top: 2px dashed #fff; // do…

C语言之指针进阶篇(2)

目录 函数指针 函数名和&函数名 函数指针的定义 函数指针的使用 函数指针陷阱 代码1 代码2 注意 函数指针数组定义 函数指针数组的使用 指向函数指针数组的指针 书写 终于军训圆满结束了&#xff0c;首先回顾一下指针进阶篇&#xff08;1&#xff09;主要是…

Vivado 添加FPGA开发板的Boards file的添加

1 digilent board file 下载地址 下载地址 &#xff1a; https://github.com/Digilent/vivado-boards 2 下载后 3 添加文件到 vivado 安装路径 把文件复制到 Vivado\2019.1\data\boards\board_files4 创建工程查看是否安装成功

Java EE企业级开发学习 -- day1

什么是Java EE? 它是基于Java语言的一种软件设计体系结构&#xff0c;它是一种标准中间件体系结构。它的作用在于能标准化企业级多层结构应用系统的部署&#xff0c;并且简化开发环境。 具体环境的搭建 1.下载压缩包于安装包 jdk-8u261-windows-x64 eclipse-jee-2018-12-…

pytorch再次学习

目录 基础数据可视化切换设备device定义神经网络类打印每层的参数大小自动微分计算梯度禁用梯度追踪优化模型参数 模型保存模型加载 进阶padding更准确的补法ReLU增加计算量但是减少内存消耗的办法输出合并自适应平均池化&#xff08;将输入shape变成指定的输出shape&#xff0…

一个产品级MCU菜单框架设计

分享一个用单色屏做的菜单框架。代码托管在github&#xff1a; https://github.com/wujique/stm32f407/tree/sw_arch 1、概述 本处所说的菜单是用在128*64这种小屏幕的菜单&#xff0c;例如下面这种&#xff0c;不是彩屏上的GUI。 2、菜单框架设计 作为一个底层驱动工程师&a…

单片机-LED介绍

简介 LED 即发光二极管。它具有单向导电性&#xff0c;通过 5mA 左右电流即可发光 电流 越大&#xff0c;其亮度越强&#xff0c;但若电流过大&#xff0c;会烧毁二极管&#xff0c;一般我们控制在 3 mA-20mA 之间&#xff0c;通常我们会在 LED 管脚上串联一个电阻&#xff0c…