安卓简单逆向修改

今天来聊聊Android软件的逆向修改怎么样啊?
如今Android市场,风云变幻。。。开玩笑啦。。。大家别介意。
有很多软件,特别是单机软件,不需要联网的那种。如果没做好一些必要的安全加固防护的话,就很容易出现被别人(特指厚颜无耻之人)做逆向工程处理,改个名字换个图标,然后再把里面的版权信息和关键字眼去掉或者更改一下,然后换掉软件的包名就准备打包发布出去。美其名曰:成功研发了一款某某软件。

其实,如果软件开发者简单的将软件打包开发出来,不做一些加固处理,签名校验这些操作的话。随便街边一个人都可以完成上面那些改名字,换图片删关键字的操作。
因为实在是太简单了,但是我也相信,我不是针对谁,在座的各位,未必都会这些简单的操作吧。

那下面就由我带领大家从搭建环境开始,到动手改个名字开始操作好吗?

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

以下的内容需要这些开发环境。

JDK、Android killer或者APK-IDE、APK-DB

为啥必须要这些环境呢?且听我细细道来。。。

首先安装一下Android killer,他是绿色版的,解压就可以用。

如果没有安装jdk的话,会有以下提示

 

安卓简单逆向修改 随笔 第1张

这个是APK-IDE的提示

 

 

安卓简单逆向修改 随笔 第2张

所以,我们先装个JDK吧。

 

 

安卓简单逆向修改 随笔 第3张

 

然后再装个APK-DB

 

安卓简单逆向修改 随笔 第4张

 

这个APK-DB按照提示装好后,便基本没他什么事了。但是它可以提供直接在文件夹看apk的图标哟。也可以直接右键反编译,挺叼的,有兴趣可以了解一下下。

OK,现在进入动手环节

首先,用手机发送一个软件到电脑上,我这里发的是“画板“这个软件。

 

安卓简单逆向修改 随笔 第5张

 

为了确认我们能反编译这个软件,首先要,查一下壳

 

安卓简单逆向修改 随笔 第6张

 

嗯,没有壳。美滋滋。(壳的概念,后面出一篇来填坑哈,大家现在知道就好)

由于已经安装了那个APK-DB,所以能看到软件图标。分辨起来比较快。
接着拖apk到apk killer里面,可以看到右下角的日志在疯狂的跑

 

安卓简单逆向修改 随笔 第7张

 

但是,在最后面的结果那个可以看到apk源码反编译失败,所以这个时候,我们需要在Android栏中的apktool 管理器中添加一下工具。(如果没有出现这一步的同学可以忽略这段了)

 

安卓简单逆向修改 随笔 第8张

添加好后,在下面 默认apktool版本哪里,选择自己刚才添加的那个。
然后删除掉刚才反编译源码失败的那个工程

 

 

安卓简单逆向修改 随笔 第9张

 

重新打开软件对apk进行反编译就可以看到APK源码反编译完成的提示了。
为啥一定要搞到这个源码反编译成功呢?
主要是为了后面如果要分析软件的运行流程以及一些关键代码的时候用到。

 

安卓简单逆向修改 随笔 第10张

 

好了,反编译完的时候,界面大概长这个样子

 

安卓简单逆向修改 随笔 第11张

 

上面一共七个点,我在这里简单说明一下
1、应用名称
2、包名
3、入口点
4、活动
5、接收器
6、服务
7、应用权限

我们本篇文章不展开说明上面对应的每一个点,东西说太多的话,影响主线内容哈。

修改应用图标以及名称

回到主页面。打开“工程管理器”选项。
在下面双击 AndroidManifest.xml这个清单文件。
何谓清单文件?

每个Android应用的根目录中都必须包含一个 AndroidManifest.xml 文件(且文件名精确无误)。 清单文件向 Android 系统提供应用的必要信息,系统必须具有这些信息方可运行应用的任何代码。
此外,清单文件还可执行以下操作:
为应用的 Java 软件包命名。软件包名称充当应用的唯一标识符。
描述应用的各个组件,包括构成应用的 Activity、服务、广播接收器和内容提供程序。它还为实现每个组件的类命名并发布其功能,例如它们可以处理的 Intent 消息。这些声明向 Android 系统告知有关组件以及可以启动这些组件的条件的信息。
确定托管应用组件的进程。
声明应用必须具备哪些权限才能访问 API 中受保护的部分并与其他应用交互。还声明其他应用与该应用组件交互所需具备的权限
列出 Instrumentation 类,这些类可在应用运行时提供分析和其他信息。这些声明只会在应用处于开发阶段时出现在清单中,在应用发布之前将移除。
声明应用所需的最低 Android API 级别
列出应用必须链接到的库

可以清楚看到在application这个标签中。对图标和应用名称有明确定义指向

 

安卓简单逆向修改 随笔 第12张

这个时候,我们直接去res这个目录里面去找对应的资源。
先改个名字吧。
进入到/res/values/strings.xml中,找到这个app_name。

 

 

安卓简单逆向修改 随笔 第13张

但是名字不是叫画板呀。
因为画板是中文的软件叫法,painter是英文的叫法。所以,这个时候,我们可以去到中文对应的资源文件夹中。/res/values-zh-rCN/strings.xml中。

 

 

安卓简单逆向修改 随笔 第14张

 

在这里,我将软件名字换成“手绘板”。
然后在顶栏选中Android,然后点击编译。

 

安卓简单逆向修改 随笔 第15张

 

接着拿数据线连上手机。进入“开发者模式”。
什么?开发者模式找不到?
莫慌,让我来告诉你这个“开发者模式”在哪里吧。
鉴于现在应该没谁还用Android 2.x的系统了。我就直接说大部分通用的打开开发者模式的办法。

首先、你得进入手机的设置。
然后、点击“关于手机”。
再然后、找到版本号。
再再然后、连续点击多次版本号,一般点个四五次就会提示你进入开发者模式了。
还没完,你接着一般要到其他设置里面,找到开发者选项。
随后点击进入后,打开“USB调试”
然后再确认一下调试授权就可以跟你的主机搭上关系了。

图示如下

 

安卓简单逆向修改 随笔 第16张

 

OK,一阵折腾后,开发者模式终于搞定了。
然后回到顶栏,在apk安装管理器右边有个设备,点刷新再看一下下拉框。可以看到一串字母加数字的东西了。

这个时候,点击安装,这个时候就会在手机上面将刚才的那个更改编译好的软件安装到手机。

 

安卓简单逆向修改 随笔 第17张

 

如果手机是还没安装过这个软件的话,直接这样安装是不会有问题的。但是如果已经安装过了的同学,再点安装的时候就会提示冲突。因为重新编译的版本使用是自己的签名文件。导致了软件签名冲突。

这个时候点击卸载,将软件卸载掉就好了。然后再安装就不会出问题了。

 

安卓简单逆向修改 随笔 第18张

 

这个时候已经可以看到名字已经被改过来了。

再改个图标看看?
前面已经找到了icon的所在地。我们就去drawable文件夹去找到对应的icon图片给替换过来。因为Android系统不同版本支持的图片情况不一样(这样解释好像不够准确)。所以会有很多drawable文件夹,咱们一个个去看。找到符合图片内容就换掉就好了。

 

安卓简单逆向修改 随笔 第19张

 

换一下图标

 

安卓简单逆向修改 随笔 第20张

 

然后从新编译,打包就可以看到图标已经被替换过来了。

 

安卓简单逆向修改 随笔 第21张

 

安装后,打开可以看到软件依旧可以正常使用。

 

安卓简单逆向修改 随笔 第22张

 

请忽视我的灵魂画作…………
 

好了,本期就先这样吧。大家学习后,切勿使用到非法地方,本期内容仅供大家学习交流。

 

推荐阅读:

 

是谁让我的线上测试服务器突然变成游戏私服
搜索引擎的那些小技巧
软件更新服务之服务端搭建
QQ音乐MP3文件下载

本文对你有没帮助呀,喜欢的话,记得留言、点赞、转发哟。谢谢各位!

安卓简单逆向修改 随笔 第23张

欢迎扫码关注我的微信公众号:叙之亭

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄