安卓逆向的基本操作
安装 Apk killer
安装apk killer ,如果没有安装jdk的话,会有以下提示
按照提示装好后,便基本没他什么事了。
给软件查一下壳
然后用手机发送一个软件到电脑上
查一下壳
由于已经按照了那个APK-DB,所以能看到软件图标。分辨发送过来的文件是哪个软件比较快。
进行自动逆向
接着拖apk到apk killer里面,可以看到右下角的日志在疯狂的跑
在最后面的结果那个可以看到apk源码反编译失败
修改默认的apktool
在Android栏中的apktool 管理器中添加一下工具
添加好后,在下面 默认apktool版本哪里,选择自己刚才添加的那个。
然后删除掉刚才反编译源码失败的那个工程
重新进行逆向
这个时候,界面大概长这个样子
准备逆向分析
上面的图片一共有七个点
- 应用名称
- 包名
- 入口点
- 活动
- 接收器
- 服务
- 应用权限
我们本篇文章不展开说明上面对应的每一个点,东西说太多的话,影响主线内容哈。
我们现在应该关注的是“3-入口点“。那个是应用启动后立即运行的位置。点击蓝色的字就会自动跳转到对应的文件以及方法里面了。
一头雾水吧,相信很多同学都没有接触过smali代码。
没事,我们跳转到OnCreate方法去。
这个就是OnCreate方法了
还是看不懂怎么办?
尝试获取逆向出来的Java伪代码
没事,咱们可以看看他们java代码大概长啥样,好吧。要不我们刚才为了反编译源码折腾这么久是为了啥呢。
点击上面的“咖啡“,你就会进入”软件的妙妙屋“了。
跳转到那个页面后,搜索OnCreate,就会找到那个函数了
上面就是入口点的基本操作了。
修改应用图标以及名称
回到主页面。打开“工程管理器”选项。
在下面双击 AndroidManifest.xml这个清单文件。
何谓清单文件?以下是解释
每个Android应用的根目录中都必须包含一个 AndroidManifest.xml 文件(且文件名精确无误)。 清单文件向 Android 系统提供应用的必要信息,系统必须具有这些信息方可运行应用的任何代码。
此外,清单文件还可执行以下操作:
为应用的 Java 软件包命名。软件包名称充当应用的唯一标识符。
描述应用的各个组件,包括构成应用的 Activity、服务、广播接收器和内容提供程序。它还为实现每个组件的类命名并发布其功能,例如它们可以处理的 Intent 消息。这些声明向 Android 系统告知有关组件以及可以启动这些组件的条件的信息。
确定托管应用组件的进程。
声明应用必须具备哪些权限才能访问 API 中受保护的部分并与其他应用交互。还声明其他应用与该应用组件交互所需具备的权限
列出 Instrumentation 类,这些类可在应用运行时提供分析和其他信息。这些声明只会在应用处于开发阶段时出现在清单中,在应用发布之前将移除。
声明应用所需的最低 Android API 级别
列出应用必须链接到的库
可以清楚看到在application这个标签中。对图标和应用名称有明确定义指向
这个时候,我们直接去res这个目录里面去找对应的资源。
咱们就先改个名字
进入到/res/values/strings.xml中,找到这个app_name。
但是名字不是叫画板呀。
因为画板是中文的软件叫法,painter是英文的叫法。所以,这个时候,我们可以去到中文对应的资源文件夹中。/res/values-zh-rCN/strings.xml中。
然后在顶栏选中Android,然后点击编译。
接着用数据线连上手机。进入“开发者模式”。
什么?开发者模式找不到?
莫慌,让我来告诉你这个“开发者模式”在哪里吧。
鉴于现在应该没谁还用Android 2.x的系统了。我就直接说大部分通用的打开开发者模式的办法。
首先、你得进入手机的设置。
然后、点击“关于手机”。
再然后、找到版本号。
再再然后、连续点击多次版本号,一般点个四五次就会提示你进入开发者模式了。
还没完,你接着一般要到其他设置里面,找到开发者选项。
随后点击进入后,打开“USB调试”
然后再确认一下调试授权就可以跟你的主机搭上关系了。
图示如下
OK,一阵折腾后,开发者模式终于搞定了。
然后回到顶栏,在apk安装管理器右边有个设备,点刷新再看一下下拉框。可以看到一串字母加数字的东西了。
这个时候,点击安装,这个时候就会在手机上面将刚才的那个更改编译好的软件安装到手机。
如果手机是还没安装过这个软件的话,直接这样安装是不会有问题的。但是如果已经安装过了的同学,再点安装的时候就会提示冲突。因为重新编译的版本使用是自己的签名文件。导致了软件签名冲突。
这个时候点击卸载,将软件卸载掉就好了。然后再安装就不会出问题了。
这个时候已经可以看到名字已经被改过来了。
咱们再改个图标
前面已经找到了icon的所在地。我们就去drawable文件夹去找到对应的icon图片给替换过来。因为Android系统不同版本支持的图片情况不一样(这样解释好像不够准确)。所以会有很多drawable文件夹,咱们一个个去看。找到符合图片内容就换掉就好了。
换一下图标,一般用png格式
然后从新编译,打包就可以看到图标已经被替换过来了。
安装后,打开可以看到软件依旧可以正常使用。
请忽视我的灵魂画作…………
哈哈哈
好了,就先这样吧
大家学习后,切勿使用到非法地方,本期内容仅供大家学习交流.