安卓玩机-----反编译apk 修改apk 去广告 去弹窗等操作中的一些常识

安卓机型app的编译与反编译 apk文件的简单说明与解析

-安卓修改apk apk的组成和编译 一

电脑端几种反编译apk工具操作步骤解析

前面几个博文有说明关于反编译apk和apk架构等有些常识.今天对以上做个补充。初学者记住一点。对于一个apk文件使用压缩软件7zip打开可以查看到文件组成。使用反编译软件编译后的文件是不同的,这个取决于你使用的反编译软件的功能。不同的反编译软件反编译后的文件略有不同。请区别对待.

简单在说下app中各个文件夹的具体作用,方便感兴趣的友友后续操作对比。

1- assets——总资源目录

主要存放四种文件:文本文件、图像文件、网页文件(包括html中引用的js/ccs/jpg等资源)、音频视频文件,例如游戏bgm、背景图、商店等一些图标.一般来说,如果修改游戏时想换个bgm、图标什么的可以在此处替换.

2-lib——可理解为辅助文件,一般用不到

一种是静态库,另一种是动态库, 一般存放so文件。看图片可以基本了解到软件安装适用于不同的cpu架构.

3-META-INF(有时会在com文件夹中-js开发)——签名文件目录

META-INF文件夹下存放了APK文件的基本信息和签名信息,用来保证APK文件的完整性和系统的安全。通俗的讲,你修改了一段代码,换了某个图片,如果校验结果与META-INF下的内容不一致,系统就不会安装这个APK文件,所以一些软件修改前可以去签名检验,或者修改完自签名。

4-res——资源库目录

可以存放项目中所有的资源文件,例如:图片(*.png、*.jpg)、文本等。(软件logo图标、icon),音频等相关的资源文件。要改软件icon(图标)的可以从这里改.

如:

res/drawable-hdpi:高分辨率图片

res/drawable-mdpi:中分辨率图片

res/drawable-ldpi:低分辩率图片

5-AndroidManifest.xml——理解为权限和页面布局集合

权限设置与管理,修改权限,修改布局专用文件。应用清单文件,版本号、版本名称、权限、应用名称、应用图标、活动、服务、广播等配置信息,均在这个文件中。(也就是运行时调用手机的硬件、组件,例如调用蓝牙的权限、发送SIM的权限).在其中

拥有完全的网络访问权限 -->    <uses-permission android:name="android.permission.INTERNET" />可以去网络权限从而去广告 .可以改版本号从而去更新等【或者改为0dp去联网权限】

6.resources.arsc——资源索引文件

编译后的二进制资源文件,内容包含了开发程序时项目文件夹中res子文件夹下main.xml、strings.xml等文件的信息。汉化的话一般是反编译这个文件.可以在这里改软件名,去广告,改会员等

7.classes.dex——可执行文件【有单个或者多个classes文件】

简单说就是优化后的android版.exe。每个apk安装包里都有。安卓系统上的可执行文件,也是我们逆向的主要的文件,源码都被编译在里面。

比如有许多软件因为每个dex里最多存放65535个方法,而项目的方法数超出了这个数量,所以被分成多个保存,而出现了classes.dex,classes2.dex ,classes3.dex等等.这个最常用,一般都在dex里搜索过滤isvip,会员,ad,show year vip ,免费,qq,弹窗等等

------------------------------------------------------------------------------------------------------------------------

了解有关app中去广告等修改相关的步骤与索引

1.在app中代码-mDialog,是对话的意思,跳转
clclasses++搜索:isvip代码,选择方法名,会员的意思多数软件赋值地方.大部分软件修改会员都用这个.

2.去xml删除谷歌类
与com.google.android.gms.ads.AdActivity相关

3.使用字符常量池打开dex搜索
com.google.android.gms.ads.AdActivity.留下.AdActivity不能全删会闪退

4--show弹窗对话框,常用破 解软件赋值代码

const-wide v0, 0x1赋值
const/4 v0, 0x1 破 解会员功能赋值
const-string p1,
const-string p0,""
const v0,-1 赋值去广告秒数
const v0,0 去广告赋值。去升级赋值
const v0, 0x1 破 解会员功能赋值
const-string v0 , "11"
return-object v0 返回结束代码 return v0

5.去广告都是赋值x0

列如:去广告赋值 const/4 v0, 0x0,

6.破解软件会员赋值

const/4 v0, 0x1
return v0

所有的赋值需要在return v0代码上面,因为return v0是赋值给0也就是赋值给0了,所以需要在它返回结束的代码上,给它强行赋值x1。

7.showDialog是显示对话框的意思

删除或注释show这行代码它就没弹窗

8.给软件加简单弹窗.弹窗代码

const-string v0, "弹窗内容"const/4 v1, 0x1invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;move-result-object v0invoke-virtual {v0}, Landroid/widget/Toast;->show()V

定位主程序入口(一般都act记录来找)dex++中找到主程序入口.在主程序中oncreate粘贴弹窗代码

9.去弹窗.修改 AndroidManifest.xml

编译 apk 中的 AndroidManifest.xml 文件查看应用的版本号和版本名称。其中 versionCode 就是版本号,软件更新就是根据这个,versionName 就是版本名称,随便改可以,我们把 versionCode 改成 9999(也就是大于他原来的数字如5100,5600),然后编译保存,重新签名后安装测试,如果更新没了就说明成功了,如果发现还是有更新提示,看来这个 APP 使用方法一无效。(只是对当前 APP 无效,其它 APP 还是可能有效的.

10.去弹窗-搜索版本号

Dex 编辑器++ 打开 apk 中的 classes.dex 文件,切换到搜索页,发起新搜索,内容输入 510(看你软件版本号),搜索类型选择整数,不要勾选十六进制,点击确认后,使用该方法如果搜索到了很少的几个结果(如图),只需要在代码中把对应的数字修改成大于最新版本的数字就行了。另外代码中的数字一般以十六进制显示,所以在代码中进行文本搜索时还需要手动转换一下版本号

11-去弹窗.

搜索关键字

一般 APP 会从一个网址中读取最新版本信息,而网址是 http 开头,所以我们搜索 http,然后根据整个网址来判断它是否是我们要找的。

与更新有关的英语单词有:version、update、ver,如果你找到的网址包含其中一个,那么很可能就是它了。

如果在你搜到的网址中都找不到这几个单词,那你可以尝试使用 Dex 编辑器++,搜索类型选择代码,分别搜索上面的三个单词。

如果我们看到一个网址包含着关键字 version或update,我们把它随便改成一个无效的网址,例如 http:jinitaimei,修改完成后然后保存 dex 文件。弹窗就没了

12--去广告.app中classes.dex(有的话全选)/dex编辑器, 然后右上角常量搜索:onLayout然后会出来很多结果,因为只要把这个类名路径改掉就好了,com/google/android/gms/ads/BaseAdView;(注:你们找的时候可以看com开头的。)

兴趣是最好的老师。通过了解以上可以从最初步的修改软件版本 替换软件图标等等上手操作体验其中的乐趣。

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

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

相关文章

【JavaEE基础学习打卡08】JSP之初次认识say hello!

目录 前言一、JSP技术初识1.动态页面2.JSP是什么3.JSP特点有哪些 二、JSP运行环境配置1.JDK安装2.Tomcat安装 三、编写JSP1.我的第一个JSP2.JSP执行过程3.在IDEA中开发JSP 总结 前言 &#x1f4dc; 本系列教程适用于JavaWeb初学者、爱好者&#xff0c;小白白。我们的天赋并不高…

力扣-338.比特位计数

Idea 直接暴力做法&#xff1a;计算从0到n&#xff0c;每一位数的二进制中1的个数&#xff0c;遍历其二进制的每一位即可得到1的个数 AC Code class Solution { public:vector<int> countBits(int n) {vector<int> ans;ans.emplace_back(0);for(int i 1; i < …

【Docker】docker拉取镜像错误 missing signature key

问题 当我使用docker拉取一个特定的镜像时&#xff0c;提示错误&#xff1a; 错误 missing signature key 但是拉取其他镜像又可以访问&#xff0c;&#xff0c;&#xff0c;&#xff0c;于是&#xff0c;我怀疑是否是docker版本问题。 docker --version结果确实&#xff0…

源码编译postgresql

没什么好研究的了&#xff0c;就试试编译Postgresql源码&#xff0c;按照网站查的资料一步步测试的&#xff0c;方便后期定制数据库时候用&#xff0c;也算是开源的大优势了&#xff0c;只要你愿意折腾&#xff0c;可以自己定制或改进一个数据库来满足特殊业务。后面研究一下他…

搭建智能桥梁,Amazon CodeWhisperer助您轻松编程

零&#xff1a;前言 随着时间的推移&#xff0c;人工智能技术以惊人的速度向前发展&#xff0c;正掀起着全新的编程范式革命。不仅仅局限于代码生成&#xff0c;智能编程助手等创新应用也进一步提升了开发效率和代码质量&#xff0c;极大地推动着软件开发领域的快速繁荣。 当前…

Guitar Pro 8 .1全新功能介绍及2023官方特惠优惠券

《中国好声音》节目诞生10年多热度不减&#xff0c;每一季都有籍籍无名的学员成为万众瞩目的新星。怎么像他们一样把爱好变成事业&#xff1f;带着这个问题在不断的探寻中找到了答案&#xff0c;那就是要在有限的时间里比别人做效率更高的事。所谓“工欲善其事&#xff0c;必先…

制作原创音乐app软件FL Studio21.2中文版

如果你正在录制、编辑或创作新歌曲&#xff0c;你会需要使用 FL Studio 快捷键。FL Studio 可用于录制、编辑和制作&#xff0c;以及专业人士录制和创作歌曲。在 FL Studio 中创建音乐专辑也是一个漫长的过程&#xff0c;可能会变得复杂且需要较长时间。很好的是&#xff0c;学…

电池集成充电解决方案提供商【XCharge Group】获得壳牌风险投资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于德国汉堡的电池集成充电解决方案提供商XCharge Group今日宣布已获得了壳牌风险投资公司的投资&#xff0c;这笔交易的金额没有披露。 XCharge Group计划将这笔资金用在三方面&#xff1a;…

UE5 虚幻引擎 详解蓝图通信 必备的知识技能之一!!!

目录 0 引言1 直接蓝图通信1.1 在关卡蓝图中直接拖拽Actor1.2 Get Actor of Class/Get All Actors of Class 2 事件分发器2.1 创建事件分发器2.2 绑定事件分发器2.3 调用事件分发器 3 蓝图接口3.1 使用步骤3.2 为什么要使用蓝图接口 4 蓝图转换 0 引言 问题&#xff1a;为什么需…

【C++】map和set的使用

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a; C学习 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我最大…

斯坦福数据挖掘教程·第三版》读书笔记(英文版)Chapter 10 Mining Social-Network Graphs

来源&#xff1a;《斯坦福数据挖掘教程第三版》对应的公开英文书和PPT。 Chapter 10 Mining Social-Network Graphs The essential characteristics of a social network are: There is a collection of entities that participate in the network. Typically, these entiti…

JS defineProperty详解

defineProperty Object.defineProperty():方法会在对象上直接定义个新的属性&#xff0c;或者修改现有的属性&#xff0c;并返回此对象 let obj {} //与我们使用 obj.name zhangsna 效果一样 但是用defineProperty定义的属性无法改变 或者删除 Object.defineProperty(obj,n…

MEIS —— 前端部分基本配置

项目基本配置 这篇文章我们随着上一篇文章继续往下叙述&#xff0c;主要是将element和windicss等开发配置进项目中&#xff0c;以及基本的一些页面和组件给他完成。 1. 安装element plus 运行&#xff1a; npm install element-plus --save 这里我们是按需引入(自动)&#x…

flink处理函数--副输出功能

背景 在flink中&#xff0c;如果你想要访问记录的处理时间或者事件时间&#xff0c;注册定时器&#xff0c;或者是将记录输出到多个输出流中&#xff0c;你都需要处理函数的帮助&#xff0c;本文就来通过一个例子来讲解下副输出 副输出 本文还是基于streaming-with-flink这本…

基于YOLOv8的安全帽检测系统

1.Yolov8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的&#xff08;SOTA&#xff09;模型&#xff0c;它建立在先前YOLO成功基础上&#xff0c;并引入了新功能和改进&#xff0c;以进一步提升性能和灵活…

树的表示——孩子兄弟表示法

从图中可以看出&#xff0c;树的每个结点&#xff0c;都有不确定的指向他们的孩子的节点&#xff0c;如果我们定义这样一个结构体来便是数的结构的话&#xff1a; struct TreeNode { int val; struct TreeNodep1; struct TreeNodep1; … }; 是不能够表示一棵树的&#xff0c;因…

9.25 day 2

1. 简述方法重写与方法重载的意义与区别&#xff1a; 方法重写&#xff1a; 1.参数列表必须完全与被重写方法相同 //参数列表&#xff08;分为四种&#xff09;&#xff1a; &#xff08;1&#xff09;无参无返回值方法&#xff1b; &#xff08;2&#xff09;有参无返回…

“智慧时代的引领者:探索人工智能的无限可能性“

目录 一.背景 二.应用 2.1金融领域 2.2医疗领域 2.3教育领域 三.发展 四.总结: 一.背景 人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;&#xff0c;是指通过计算机程序模拟人类智能的一种技术。它是计算机科学、工程学、语言学、哲学等多…

【Redis】redis基本数据类型详解(String、List、Hash、Set、ZSet)

目录 RedisString(字符串)List(列表)Hash(字典)Set(集合)ZSet(有序集合) Redis Redis有5种基本的数据结构&#xff0c;分别为&#xff1a;string&#xff08;字符串&#xff09;、list&#xff08;列表&#xff09;、set&#xff08;集合&#xff09;、hash&#xff08;哈希&a…