安卓逆向初学习-反编译修改应用图标和名称 – 作者:comet2020

一、安卓基础知识

(一)简介

安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。

2021年5月19日凌晨消息,谷歌宣布Android 12正式到来。

(二)Android架构

Application(应用程序层) 我们一般说的应用层的开发就是在这个层次上进行的,当然包括了系统内置的一组应用程序,使用的是Java语言

Application Framework(应用程序框架层) 无论系统内置或者我们自己编写的App,都需要使用到这层,比如我们想弄来电黑名单,自动挂断电话,我们就需要用到电话管理(TelephonyManager) 通过该层我们就可以很轻松的实现挂断操作,而不需要关心底层实现

Libraries(库) + Android Runtime(Android运行时) Android给我们提供了一组C/C++库,为平台的不同组件所使用,比如媒体框架;而Android Runtime则由Android核心库集 + Dalvik虚拟机构成,Dalvik虚拟机是针对移动设备的虚拟机,它的特点:不需要很快的CPU计算速度和大量的内存空间;而每个App都单独地运行在单独的Dalvik虚拟机内每个app对于一条Dalvik进程)而他的简单运行流程如: Dalvik的运行流程

Linux内核 这里就是涉及底层驱动的东西了,一些系统服务,比如安全性,内存管理以及进程管理等。

Android平台架构图

(三)APK安装包组成

APK是Android Package的缩写。每个要安装到Android平台的应用都要被编译打包为一个单独的文件,扩展名为 .apk。APK文件是用专业软件eclipse编译生成的文件包,其中包含了应用的二进制代码、资源、配置文件等。通过将APK文件直接传到Android手机中执行即可安装。APK文件其实就是zip格式,但其扩展名被改为apk,在Windows下用解压软件WinRAR/WinZIP/7-Zip可以直接打开。解压后,会看到有几个文件和文件夹。

一个典型的APK文件通常有下列内容组成:

AndroidManifest.xml : 程序全局配置文件

classes.dex :Dalvik字节码

resources.arsc :编译后的二进制资源文件

META-INF\ : 该目录下存放的是签名信息

res\:该目录存放资源文件

assets\ :该目录可以存放一些配置文件

二、环境安装

所使用的工具下载地址:https://www.androiddevtools.cn/

image-20210718175439382

(一)JAVA环境的安装

首先在Windows主机上安装java环境

1、安装JDK包

安装64位的jdk包

image-20210718172123656

image-20210718172236544

下一步

image-20210718172256154

在jdk1.8.0_111下新建一个jre1.8的文件夹,安装到此文件夹下

image-20210718172841030

image-20210718172906209

完成安装

image-20210718172935805

2、修改环境变量

在电脑高级设置中,修改系统的环境变量

image-20210718173130861

新建环境变量

变量名为:

JAVA_HOME

变量值为安装的jdk的目录:

C:\Program Files\Java\jdk1.8.0_111

然后确定

image-20210718173328061

编辑环境变量Path的值

image-20210718173712409

新增

%JAVA_HOME%\bin
%JAVA_HOME%\jre1.8\bin

点击确定。

image-20210718173901342

打开命令行,输入java 回车,可以看到java安装成功

image-20210718174049570

image-20210718174105726

(二)SDK安装

SDK(Software Development Kit)软件开发工具包一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。

将下载的sdk文件,放到C盘目录下

image-20210718175654490

同样修改环境变量Path的值,增加

C:\sdk\platform-tools
C:\sdk\tools

image-20210718175808900

image-20210718180010816

在命令行中,运行adb

image-20210718180116288

成功安装!

(三)NDK安装

NDK:(Native Development Kit),原生开发工具包是一组可以让您在Android应用中利用C和c++代码的工具,可用以从您自己的源代码构建,或者利用现有的预构建库。

同样,将NDK的包放到C盘目录下,并配置环境变量Path,新增C:\android-ndk-r10e

image-20210718180615393image-20210718180728126

cmd中运行 ndk-build

image-20210718181006991

成功安装!

(四)安装Android Killer

AndroidKiller是一款可视化的安卓应用逆向工具,集Apk反编译、Apk打包、Apk签名,编码互转,ADB通信(应用安装-卸载-运行-设备文件管理)等特色功能于一身,支持logcat日志输出,语法高亮,基于关键字(支持单行代码或多行代码段)项目内搜索,可自定义外部工具;吸收融汇多种工具功能与特点,打造一站式逆向工具操作体验,大大简化了安卓应用/游戏修改过程中各类繁琐工作。

image-20210718181520744

image-20210718181540313

打开,Android Killer首先关联jdk包

image-20210718181717181

下载apk-tool,将其放在Android Killer的目录下

下载地址:https://ibotpeaches.github.io/Apktool/

image-20210718182423394

加载apk-tool

image-20210718182636542

默认版本选择刚载入的apktool2.4.0

image-20210718182724822

三、反编译学习-修改安卓应用的名称和图标

(一)安装模拟器及应用

随便下载一个安卓应用程序,我下载的神庙逃亡

image-20210718210502023

下载网易mumu模拟器并安装 下载地址https://mumu.163.com/

在安卓模拟器中安装神庙逃亡

image-20210718210642990

安装完成后是这样的,名字叫做神庙逃亡2

(二)反编译修改应用名称

将刚才在模拟器上安装的相同的APK拖入到Android Killer中

点击否

image-20210718211244733

在工程搜索中,尝试搜索应用程序的名称”神庙逃亡2″,只在一个文件中出现了

image-20210718211538592

随便修改一个名称

image-20210718211738095

CTRL+S保存然后编译一下试试

image-20210718211757166

等待编译结束,找到生成的APK,在模拟器中安装

image-20210718212139807

image-20210718212232321

image-20210718222648730

(三)修改应用图标

安卓应用程序的图标通常放在res文件下

image-20210718224522336

drawable-hdpi里面存放高分辨率的图片

drawable-mdpi里面存放中等分辨率的图片

drawable-ldpi里面存放低分辨率的图片

右键,打开图片所在的目录

image-20210718224734928

找到了应用程序的图标,名为app_icon.png

image-20210718224828321

可以从网上随便下载png格式的文件(注意,原格式就要是否则编译不通过),替换掉当前的app_icon.png图标

image-20210718225417902

搜索res文件加下的app_icon.png图标,全部替换掉

image-20210718230158998

image-20210718230257464

重新编译

image-20210718230437583

放到模拟器中安装,修改成功

image-20210718230516773

四、总结

利用工具Android Killer工具将apk进行反汇编,改掉安卓应用的名称和图标,然后重新编译生成安装包。操作比较简单,是十分基础的内容,主要通过实际操作了解安卓程序包,为安卓逆向学习打下一个基础。

五、参考文章

菜鸟教程:https://www.runoob.com/w3cnote/android-tutorial-system-architecture-analysis.html

百度百科:https://baike.baidu.com/item/Android/60243?fromtitle=%E5%AE%89%E5%8D%93&fromid=5389782&fr=aladdin#6

CSDN:https://blog.csdn.net/qu213/article/details/9717249

来源:freebuf.com 2021-07-19 00:23:41 by: comet2020

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论