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

查看 311|回复 12
作者:liuxiaoxin   
授人以鱼,不如授人以渔!
本教程图文并茂,步骤非常详细,偏小白向,大佬请自觉屏蔽。
使用工具:MT管理器
[color=]免费版

被修改的软件:Apktool M_v2.4.1
如果想跟着教程一起实操,感受一下反编译带来的乐趣,修改成功之后油然而生的成就感,可以下载本软件练练手,链接我放在文末了。
温馨提示:初次看本人教程的小伙伴,建议配合上期教程一起操作效果更佳,本篇教程属于上期教程的拓展和进阶。
往期图文逆向教程:
①逆向教程之-反编译apk修改菜单默认设置(一)
言归正传,接下来教程正式开始
首先打开Apktool M→进入设置,会看到“程序更新”,现在我们不想要这个菜单功能了,
接下来就通过反编译进行修改,把它完全删除掉,让它永远在设置里面消失。请记住“
[color=]程序更新
”关键词。



000.png (71.87 KB, 下载次数: 0)
下载附件
2020-11-25 19:56 上传

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


001.png (234.8 KB, 下载次数: 0)
下载附件
2020-11-25 19:56 上传

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


002.png (232.97 KB, 下载次数: 0)
下载附件
2020-11-25 19:56 上传

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


003.png (120.16 KB, 下载次数: 0)
下载附件
2020-11-25 19:56 上传

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



004.png (58.57 KB, 下载次数: 0)
下载附件
2020-11-25 19:56 上传

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


005.png (238.36 KB, 下载次数: 0)
下载附件
2020-11-25 19:56 上传

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


006.png (262.69 KB, 下载次数: 0)
下载附件
2020-11-25 19:57 上传

7.打开方式选择反编译→进入编辑界面→点击右上角三个点→会弹出菜单
   →选择搜索→查找内容输入ID“7F07011C”进行搜索→会看第26行后面的那一串
ID黄色高亮显示

   就是我们要找的结果,这就说明24~28行的内容,就是对“程序更新”这个菜单的定义


007.png (555.29 KB, 下载次数: 0)
下载附件
2020-11-26 09:38 上传

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


008.png (457.94 KB, 下载次数: 0)
下载附件
2020-11-25 19:57 上传

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


009.png (193.73 KB, 下载次数: 0)
下载附件
2020-11-25 19:57 上传

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


010.png (228.7 KB, 下载次数: 0)
下载附件
2020-11-25 19:57 上传

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


011.png (117.39 KB, 下载次数: 0)
下载附件
2020-11-25 19:57 上传

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


012.png (272.79 KB, 下载次数: 0)
下载附件
2020-11-25 19:57 上传

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


013.png (447.84 KB, 下载次数: 0)
下载附件
2020-11-25 19:57 上传

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


014.png (103.15 KB, 下载次数: 0)
下载附件
2020-11-25 19:57 上传

写到这里教程就结束了,其实这篇教程的目的,只是为了记录一下自己反编译的一个过程。分享给大家,提供的只是一个反编译的思路
从我的角度来说,过程相对过于简单,但是我相信对于刚接触反编译的小白而言,能起到一个很好的启蒙作用。
声明一下:本篇教程只是以“程序更新”为例,实现菜单功能的精简,并不是说只能删除这个菜单功能,而是提供的一个思路。可以按照这个反编译的思路,去精简掉更多其它的菜单功能。
当然,反编译不仅仅于此,聪明的你可以根据本教程,举一反三,对apk进行更深层次的修改!
接下来上干货了,为了满足部分伙伴的需求,方便他们按照教程实操时,省得还要到处去找使用工具。
在这里为大家一并提供了教程中使用的同款,MT管理器和修改的软件素材,请外链自取。
MT管理器:https://www.lanzoui.com/i80NBitkr6f 密码:99gn
Apktool M_2.4.1:https://www.lanzoui.com/iuvxtir6wdg 密码:epdc
如果本教程能帮到您,记得三连哦!顺便免费评分走一波,感谢支持!  您的支持,将是对我最大的鼓励! 后续会继续分享更多逆向反编译教程,咱们下期再见

下载次数, 教程

liuxiaoxin
OP
  


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

感谢认可和支持,能帮助到大家就好!
liuxiaoxin
OP
  


一日就是一天 发表于 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号指向字符串,是为了方便适应多种语言显示。
   

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

以  结束,就是对一个功能的定义,这要涉及到安卓开发了,反正我不懂。
上面的解释如有错误,请懂的大佬,加以指正。在你们面前班门弄斧了,大佬请轻喷。
liuxiaoxin
OP
  


agi学习者 发表于 2020-11-26 12:04
学习了,很多知识都需要知其然而知其所以然,感谢楼主的耐心讲解,很通透。

是的,你说的很对 感谢支持
ciker_li   

感谢分享,很详细
yudian   

感谢楼主发出这么好的帖子,一直想学点逆向的东西,希望大佬经常更新  我每天来看
禽·兽   

谢谢分享 等下试试
dipper   

对新手很友好,谢谢楼主
wqy290546   

小白一个
Karry1121   

良心工具~感谢楼主
您需要登录后才可以回帖 登录 | 立即注册

返回顶部