安卓逆向初学习 | 您所在的位置:网站首页 › 小米修改应用图标和名字怎么弄 › 安卓逆向初学习 |
一、安卓基础知识(一)简介 安卓(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是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/ 首先在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(Software Development Kit)软件开发工具包一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。 将下载的sdk文件,放到C盘目录下 同样修改环境变量Path的值,增加 C:\sdk\platform-toolsC:\sdk\tools在命令行中,运行adb 成功安装! (三)NDK安装NDK:(Native Development Kit),原生开发工具包是一组可以让您在Android应用中利用C和c++代码的工具,可用以从您自己的源代码构建,或者利用现有的预构建库。 同样,将NDK的包放到C盘目录下,并配置环境变量Path,新增C:\android-ndk-r10e cmd中运行 ndk-build 成功安装! (四)安装Android KillerAndroidKiller是一款可视化的安卓应用逆向工具,集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,在模拟器中安装 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 |
CopyRight 2018-2019 实验室设备网 版权所有 |