一、安卓基础知识
(一)简介
安卓(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内核 这里就是涉及底层驱动的东西了,一些系统服务,比如安全性,内存管理以及进程管理等。
(三)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/
(一)JAVA环境的安装
首先在Windows主机上安装java环境
1、安装JDK包
安装64位的jdk包
下一步
在jdk1.8.0_111下新建一个jre1.8的文件夹,安装到此文件夹下
完成安装
2、修改环境变量
在电脑高级设置中,修改系统的环境变量
新建环境变量
变量名为:
JAVA_HOME
变量值为安装的jdk的目录:
C:\Program Files\Java\jdk1.8.0_111
然后确定
编辑环境变量Path的值
新增
%JAVA_HOME%\bin
%JAVA_HOME%\jre1.8\bin
点击确定。
打开命令行,输入java 回车,可以看到java安装成功
(二)SDK安装
SDK(Software Development Kit)软件开发工具包一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
将下载的sdk文件,放到C盘目录下
同样修改环境变量Path的值,增加
C:\sdk\platform-tools
C:\sdk\tools
在命令行中,运行adb
成功安装!
(三)NDK安装
NDK:(Native Development Kit),原生开发工具包是一组可以让您在Android应用中利用C和c++代码的工具,可用以从您自己的源代码构建,或者利用现有的预构建库。
同样,将NDK的包放到C盘目录下,并配置环境变量Path,新增C:\android-ndk-r10e
cmd中运行 ndk-build
成功安装!
(四)安装Android Killer
AndroidKiller是一款可视化的安卓应用逆向工具,集Apk反编译、Apk打包、Apk签名,编码互转,ADB通信(应用安装-卸载-运行-设备文件管理)等特色功能于一身,支持logcat日志输出,语法高亮,基于关键字(支持单行代码或多行代码段)项目内搜索,可自定义外部工具;吸收融汇多种工具功能与特点,打造一站式逆向工具操作体验,大大简化了安卓应用/游戏修改过程中各类繁琐工作。
打开,Android Killer首先关联jdk包
下载apk-tool,将其放在Android Killer的目录下
下载地址:https://ibotpeaches.github.io/Apktool/
加载apk-tool
默认版本选择刚载入的apktool2.4.0
三、反编译学习-修改安卓应用的名称和图标
(一)安装模拟器及应用
随便下载一个安卓应用程序,我下载的神庙逃亡
下载网易mumu模拟器并安装 下载地址https://mumu.163.com/
在安卓模拟器中安装神庙逃亡
安装完成后是这样的,名字叫做神庙逃亡2
(二)反编译修改应用名称
将刚才在模拟器上安装的相同的APK拖入到Android Killer中
点击否
在工程搜索中,尝试搜索应用程序的名称”神庙逃亡2″,只在一个文件中出现了
随便修改一个名称
先CTRL+S保存然后编译一下试试
等待编译结束,找到生成的APK,在模拟器中安装
(三)修改应用图标
安卓应用程序的图标通常放在res文件下
drawable-hdpi里面存放高分辨率的图片
drawable-mdpi里面存放中等分辨率的图片
drawable-ldpi里面存放低分辨率的图片
右键,打开图片所在的目录
找到了应用程序的图标,名为app_icon.png
可以从网上随便下载png格式的文件(注意,原格式就要是否则编译不通过),替换掉当前的app_icon.png图标
搜索res文件加下的app_icon.png图标,全部替换掉
重新编译
放到模拟器中安装,修改成功
四、总结
利用工具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
请登录后发表评论
注册