吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15345|回复: 188
收起左侧

[Android 原创] 逆向教程之-反编译apk完全精简删除菜单功能(二)

    [复制链接]
liuxiaoxin 发表于 2020-11-25 20:20
本帖最后由 liuxiaoxin 于 2020-12-3 19:00 编辑

授人以鱼,不如授人以渔!

本教程图文并茂,步骤非常详细,偏小白向,大佬请自觉屏蔽。

使用工具:MT管理器免费版
被修改的软件:Apktool M_v2.4.1

如果想跟着教程一起实操,感受一下反编译带来的乐趣,修改成功之后油然而生的成就感,可以下载本软件练练手,链接我放在文末了。

温馨提示:初次看本人教程的小伙伴,建议配合上期教程一起操作效果更佳,本篇教程属于上期教程的拓展和进阶。
往期图文逆向教程:
①逆向教程之-反编译apk修改菜单默认设置(一)

言归正传,接下来教程正式开始

首先打开Apktool M→进入设置,会看到“程序更新”,现在我们不想要这个菜单功能了,
接下来就通过反编译进行修改,把它完全删除掉,让它永远在设置里面消失。请记住“程序更新”关键词。

000.png

1.使用MT管理器点击Apktool M_v2.4.1.apk文件→选择查看

001.png

2.选择resources.arsc文件→通过Arsc编辑器打开
002.png

3.点击搜索资源值→输入“程序更新”关键词→搜索类型选择字符串→点击确定进行搜索
003.png

4.会看到出现了1个搜索值→长按这个搜索值→会弹出菜单点击复制ID,这里复制的ID是“7F07011C”,然后按两次返回
004.png

5.点击右上角三个点→会弹出菜单功能→选择XML搜索→内容栏粘贴之前复制的ID“7F07011C”→搜索类型选择十六进制→点击确认进行搜索
005.png

6.会看到1个搜索结果→点击它会进入指定的路径找到该文件→点击文件(这个文件控制着整个设置的主菜单)
006.png

7.打开方式选择反编译→进入编辑界面→点击右上角三个点→会弹出菜单
   →选择搜索→查找内容输入ID“7F07011C”进行搜索→会看第26行后面的那一串ID黄色高亮显示
   就是我们要找的结果,这就说明24~28行的内容,就是对“程序更新”这个菜单的定义

007.png

8.这时候我们把24~28行的内容,全部选中并删除,点击保存,然后返回,会出现提示,勾选自动签名,让它回编译即可
008.png

9.接着我们看到preference_updater.xml文件,这个文件是我们上一期教程,修改过的xml文件,
  它其实是控制着整个“程序更新”的子菜单,现在我们把程序更新的菜单都删除了,这个子菜单的文件也可以删除了,然后一路返回。

009.png

10.选择classes.dex文件→通过Dex编辑器++打开
010.png

11.点击搜索→发起新搜索→查找内容输入ID“7F07011C”→路径默认→搜索类型选择“代码”→勾选搜索子目录→点击确定进行搜索
011.png

12.会看到出现了1个搜索值,这个搜索结果就是我们要找的ID→点击它进入文件进行修改,然后看到它是在第451行,这里定义的就是“程序更新”调用的代码。

012.png

13.这时候我们把451行的内容,全部选中并删除,点击保存,然后返回,会出现提示,选择保存并退出,让它回编译即可
013.png

反编译完成之后,重新安装修改过的包,然后再打开软件,这时候在设置里面,就找不到“程序更新”的菜单功能了。它已经被彻底删除掉了。

014.png


写到这里教程就结束了,其实这篇教程的目的,只是为了记录一下自己反编译的一个过程。分享给大家,提供的只是一个反编译的思路

从我的角度来说,过程相对过于简单,但是我相信对于刚接触反编译的小白而言,能起到一个很好的启蒙作用。

声明一下:本篇教程只是以“程序更新”为例,实现菜单功能的精简,并不是说只能删除这个菜单功能,而是提供的一个思路。可以按照这个反编译的思路,去精简掉更多其它的菜单功能。

当然,反编译不仅仅于此,聪明的你可以根据本教程,举一反三,对apk进行更深层次的修改!

接下来上干货了,为了满足部分伙伴的需求,方便他们按照教程实操时,省得还要到处去找使用工具。
在这里为大家一并提供了教程中使用的同款,MT管理器和修改的软件素材,请外链自取。
MT管理器:https://www.lanzoui.com/i80NBitkr6f 密码:99gn
Apktool M_2.4.1:https://www.lanzoui.com/iuvxtir6wdg 密码:epdc

如果本教程能帮到您,记得三连哦!顺便免费评分走一波,感谢支持! 您的支持,将是对我最大的鼓励! 后续会继续分享更多逆向反编译教程,咱们下期再见

免费评分

参与人数 44吾爱币 +46 热心值 +40 收起 理由
164738777 + 1 + 1 我很赞同!
DrugMonkey + 1 + 1 我很赞同!
暮迟 + 1 + 1 谢谢@Thanks!
xxzzcc + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
毒瘤 + 1 + 1 热心回复!
兔兔爱扯皮 + 1 + 1 谢谢@Thanks!
qtfreet00 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
mrjzx + 1 + 1 热心回复!
一杯白咖啡 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
xcc1594 + 1 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
pony52 + 1 我很赞同!
罗轩 + 1 + 1 我很赞同!
某些人 + 1 + 1 谢谢@Thanks!
如初相见丶 + 1 + 1 我很赞同!
WAlitudealiy + 1 谢谢@Thanks!
Luckyduoduo + 1 + 1 我很赞同!
RedOFox + 1 + 1 谢谢@Thanks!
 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
港赟 + 1 我很赞同!
Conquest + 1 + 1 用心讨论,共获提升!
guopei4106 + 1 + 1 我很赞同!
杨辣子 + 1 + 1 有点意思
67052785 + 1 + 1 用心讨论,共获提升!
等到烟火也清凉 + 1 + 1 用心讨论,共获提升!
nv2365 + 1 热心回复!
sw425 + 1 + 1 我很赞同!
yanwc + 1 + 1 谢谢@Thanks!
woyucheng + 1 + 1 谢谢@Thanks!
奋斗者4 + 1 + 1 谢谢@Thanks!
duhaijian + 1 + 1 谢谢@Thanks!
伤爱无名 + 1 我很赞同!
mrsdz + 1 + 1 谢谢@Thanks!
315215 + 1 + 1 用心讨论,共获提升!
ID88512 + 1 有用
东华小蔡蔡 + 1 + 1 用心讨论,共获提升!
asdfghjk_0001 + 1 谢谢@Thanks!
ccanan + 1 + 1 我很赞同!
jun12828 + 1 + 1 谢谢@Thanks!
Qca9561 + 1 + 1 谢谢@Thanks!
amus + 1 + 1 热心回复!
禽·兽 + 1 + 1 谢谢@Thanks!
芽衣 + 2 + 1 我不懂,快教教我
小白想学技术 + 1 谢谢@Thanks!
yudian + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| liuxiaoxin 发表于 2021-7-27 11:17
我爱林 发表于 2021-7-27 06:03
个人认为这算是吾爱最用心最详尽最好的mt教程贴了,热心肠的大神,无以为报,在这里说声谢谢啦!

感谢认可和支持,能帮助到大家就好!
 楼主| liuxiaoxin 发表于 2020-11-26 08:32
一日就是一天 发表于 2020-11-26 05:37
7.打开方式选择反编译→进入编辑界面,会看第26行后面的那一串ID,
   就是我们要找到的结果,这就说明24~ ...

抱歉,是我忽略了,没能完完全全照顾到新手。其实这里我省略了一个步骤,正常的步骤是,打开那个xml文件后,如果是初次接触的话,对里面的代码肯定不懂,而且之前搜索的那个ID,也不会直接定位到那一行代码,需要点击右上角,使用搜索功能,再次搜索那个ID,找到被搜索的那个ID,这时候它才会自动高亮显示定位到第26行代码。当时是考虑到这个xml文件比较小,行数比较少,打开就能直观的看完那30几行代码,所以才把这个步骤给省掉了。面对xml的大文件,这个步骤不能忽略,到时候我把它加上去吧。
再说一下,是怎么通过判断24~28行,就是对“程序更新”这个菜单的定义。前面提到,通过搜索资源值,搜索“程序更新”,得到的ID号是7F07011C,现在在xml文件看到的这个7F07011C,其实它指向的就是之前搜索的那个“程序更新”的字符串。xml文件使用ID号指向字符串,是为了方便适应多种语言显示。
    <header
        android:icon="@7F02007C"
        android:title="@7F07011C"
        android:summary="@7F07011D"
        android:fragment="ru.maximoff.apktool.fragment.UpdaterFragment" />

上面是24~28行之间的代码,来翻译解释一下

    <标题头
         安卓:图标= ID指向图标
         安卓:标题= ID指向标题,这里的标题就是“程序更新”,这个中文字符串,它可以是英语,或者其他语言
         安卓:摘要= ID指向摘要
         安卓:片段= 这里算是对“程序更新”菜单功能的一个片段化>

以 < 开始,以 > 结束,就是对一个功能的定义,这要涉及到安卓开发了,反正我不懂。
上面的解释如有错误,请懂的大佬,加以指正。在你们面前班门弄斧了,大佬请轻喷。
 楼主| liuxiaoxin 发表于 2020-11-26 12:16
agi学习者 发表于 2020-11-26 12:04
学习了,很多知识都需要知其然而知其所以然,感谢楼主的耐心讲解,很通透。

是的,你说的很对 感谢支持
ciker_li 发表于 2020-11-25 20:23
感谢分享,很详细
yudian 发表于 2020-11-25 20:26
感谢楼主发出这么好的帖子,一直想学点逆向的东西,希望大佬经常更新  我每天来看
禽·兽 发表于 2020-11-25 20:56
谢谢分享 等下试试
dipper 发表于 2020-11-25 20:58
对新手很友好,谢谢楼主
wqy290546 发表于 2020-11-25 21:20
小白一个
Karry1121 发表于 2020-11-25 21:31
良心工具~感谢楼主
流泪的小白 发表于 2020-11-25 21:42
感谢大佬的教程
UPC 发表于 2020-11-25 21:49
正需要这个功能,3Q3Q3Q3Q3
jun12828 发表于 2020-11-25 21:56
楼主你好,安装APP之后桌面不显示APP图标,这个能反编译嘛
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表