欢迎光临散文网 会员登陆 & 注册

吾爱破解安卓逆向入门教程《安卓逆向这档事》二、初识APK文件结构、双开、汉化、基

2022-12-15 11:54 作者:阡陌学习  | 我要投稿

大家好,我是正己。首先祝大家国庆快乐。一定要学的是第二课。本节课会带大家先了解app的结构,尤其双开以及多开的原理,汉化apk,以及简单修改apk的名字,图片。等本科会用到的一些工具,有教程的demo。mt管理器,np管理器,开发者助手,还有雷电模拟器。

更所谓工欲善其事,必先善其器,要学好安卓逆向。必须要了解apk的文件结构,apk的全称是。安卓package,它相当于一个压缩文件,只要在电脑上将app的后缀。改成rar呀或者zip即可解压。现在我们来看一下教程的这个demo

右键选择打开方式为-压缩文件,这里我们可以看到这边有几个目录。这个笔记里面的有个对比,笔记里面的第一个目录,它是存放apk的一些静态资源文件。比如说视频,音频图片的。

第二个是lib目录。它里面有一个so文件,但是因为这个demo里面还没有编写so,所以说他暂时还没有。像前两个目录,他是不一定有,但是是比较常见的

第三个是一个签名信息的文件。他主要用来验证app文件的完整性

第四个。Res目录主要存放一些资源文件,包括图片,字符串等。apk的脸蛋也主要由他的这个layout文件来设计。

这个是androidmainfest.xml文件,它是apk的应用清单信息,它描述了应用的名字。版本,权限还有应用库文件等等

Classes.dex文件,它是java源码编译后生成的java字节码文件,也是我们apk运行的一个主要逻辑。

resources这个文件是编译后的一个二进制文件,我们可以通过。r文件中的id来找到对应的资源。

让我们来看一下这个demo。其中还有这个,okhttp3和kotlin这两个。当你看到这两个的时候,你就应该知道这个软件。它要么就是全是kotlin开发的,或者说部分功能是kotlin开发的。至于这个okhttp3这是他导入了这个包进行开发

以上就是对这个apk文件的一个简单介绍,通过对这几个资源的一个介绍,我们可以在以后的修改中可以快速定位。

比如说我们要修改一个图片或者音频,那么就应该从这个assets目录中去修改或者说替换。那如果要修改apk的一个主要逻辑就应该从这个dex文件中去修改。

认识完app结构,开始今天的第一个实战双开app。

那首先要了解一下。双开的一个原理,这边列举了四种双开的原理,后三种。比较复杂,不是我们新手进行学习,所以以第一种为例,简单修改应用包名来实现应用的双开。

当我们修改包名之后再进行安装。这时手机系统会认为这是两个app,这样的话就能生成两个数据存储的目录。此时双开,就相当于你打开了两个互不干扰的应用,这就是一个修改包名来实现双开的一个原理。

接下来,我们查一下模拟器,把我们的这几个应用安装一下。现在安装成功了,但是因为我之前在写这个demo的时候没有考虑这个屏幕的一个适配,所以说现在如果我们是横屏打开的话。那体验是非常糟糕,你看,这些布局全部乱掉,所以说我们需要在设置一下这个屏幕的一个分辨率,把它调成这个样子。保存设置再重启。现在我们再开下,,现在就算是正常显示了。

接下来,我们要介绍一款工具就是我们的这个mt管理器。它是手机端一个比较成熟的反编译工具,具备了很多功能。在以后的教程中,我们也会11进行介绍。当然,他有的。功能是需要会员的,不过如果没有开通会员的也没有关系,我们还会提供另外一款。致敬mt开发的方便义工具,也就是这款np管理器。如果没有开通会员的朋友,可以交替使用。

现在先学会提取这个应用的一个安装包,这边左侧点击这边有一个安装包提取。找到我们这个demo点击提取安装包,然后定位。

我们来看。这边我们有一个包名是com.zj,wuaipoji,这个就是我们demo的一个包名,我们刚才前面说了。他双开就是通过修改这个包名来实现一个双开。这边有个功能。叫做apk共存。这边新的一个包名,勾上这个自动签名。

无会员

这个是一个会员功能,你用这个np来操作。

第一步先提取安装包

第二步找到这个apk共存点击确认。

这时他就生成一个共存的包,点击安装。

在看我们桌面上。就两个我们的教程demo。点击第二个看看,同样的。第一个后台就有两个,这就是一个简单的双开。最后说一下,因为双开是通过修改包名来实现的,所以说动了应用的签名信息,如果这个时候开发者,他做了一个签名教验。那就很有可能出现安装后闪退崩溃的情况。

接着,再来说一下汉化,这个也可能是一个。对于某些人来说,那是一个比较常用的功能,现在有一些工具,它是外国人。功能虽然说很好用,但是可能没有中文,虽然说对于一些有英语基础的人来说用起来不麻烦。但是始终还是没有看着中文的字数舒服,所以说就出现了汉化这么一个技术。

汉化,它包括软件汉化和游戏汉化,我们这边不讲游戏汉化。因为那个比较复杂又简单讲软件的汉话,我这边画了一个比较简单的逆向流程图,一起来看一下

当你拿到一个应用的时候。第一步要干嘛?第一步他要先查壳。

什么是壳?壳就是一种保护应用的一种程序。后面也会专门出一期来介绍这些可以壳以及怎么处理这些壳?处理掉这个壳之后,就是反编译。对源码进行一个反编译,接着修改代码,在回编译签名。

最后安装-测试,这就是一个简单的逆向流程。我们的汉化,它是在反编译的基础上以这个arsc的汉化为主,因为它在里面包含了大量的字符串,列的是这个xml的方法。还有dex的汉化。

当然还有一种更偏的,就比如说他把字符串写到so文件里面去,现在看一下demo。注意看,像这边有个信息。他会有个id,还有一个level,如果你们打开的时候没有的话,就信息-没有个存储。把这个数据全部删掉再打开啊,这个时候他就会弹出一个注册id的一个弹窗,你们注册一下,然后这个时候。还有这些又显示出来

简单说一下这个对我。我就做成这种类似于游戏挑战的一个模式,希望能增加一点趣味性。不过还没写好,后面还还好几关还在构思中,现在点击第一关。这边有个提示,请完成图片替换和文字汉化。先看第一句hello吾爱破解。放mt管理器点击查看。这个时候,我们就需要用到mt一个自带的一个搜索功能。右上角点击搜索,这个搜索-点击高级搜索,这样的话,他就相当于一个全局的搜索,会在这个应用中所有的文件进行搜索,这个时候出现一个结果。点击旁边注意这边的话,你如果还没有登录,他可能会要求你登录。然后你在登录来进行方面,在这边我们修改一下,把它改成中文的。右上角保存。,所以看到没有,他刚才进行了一次签名。所以说,现在这个应用他的签名信息就跟最开始我们安装的时候是不一样的。等会就会出现一种情况,点击安装好,最后他就提示你安装包和已安装的应用签名不一致,是否先卸载或者卸载已安装的应用,这个提示是可以关掉的-在这边这个设置里面把这个管理,他就不会再提示。

但是,还是会出现一种情况--看好他提示你安装失败,说签名不一致,那这个时候应该怎么办?其实有一个模块,它是专门解决签名不一致的问题叫做核心破解,后面我们再进行xp模块的时候,会专门的介绍,今天的话就用一个比较简单的方法,那就是把原来的这个应用卸载掉接着安装启动,再来看第一个,你看这个时候。这边的第一句字符串已经汉化成功了。接着来看第二句。这个时候肯定会有人问啊,像这一句他不是英文的话,我们该怎么搜索。因为也不知道它是什么意思,这个时候就运用到你的另外一个工具叫开发者助手,先安装一下,看到这边他有一个小小一个七星瓢虫的图标,你再放刚才的第一关,点一下它这个图标。里面有一个界面资源的分析,点击开始。点击这一句,这个时候,他这个文本的信息就出来了,复制。再回到mt管理器。同样,三点全局搜索。结果定位到这个arsc,这也是我们刚才说的一个汉化的大头。选择翻译模式,点击第一个这边我们可以看到有很多的字符串,找一下刚才的第二句-在这边,你这边可以对他进行修改,比如说我们改成123。刚才介绍一个一键汉化的功能,不过这是一个vip的功能,我暂时还没有找到其他的比较好的替代方案,所以说这个就不做太过具体的介绍,就是在右下角这边有一个图标。点击,然后这边有一个翻译引擎,如果还没有安装的话。等会我跟你说从哪个地方安装,然后点击确认-这个时候他就开始安装。开始翻译,我不让他全部翻译完。大概看一下效果,就大概就是这样的一个效果,不过它毕竟是机翻,可能会有一些句子翻译的比较生硬,如果你有做汉化的话。你就需要在机翻的基础上再自己稍微润色一下。刚才那个插件。他这边有一个插件,管理这个这个就是我刚才用的那一个翻译的插件。刚开始的话,你是什么都没有,你需要在这个插件中心里面选择。一个翻译的插件,然后安装即可,这刚才的我们为的也是。没有翻译再来重新。

好,你们发现我们第二次签名之后再进行安装,他又没有出现刚才安装失败的弹窗。是为什么?因为我们给他进行了两次签名,这两次的签名。他用的签名文件都是一样的,都是mt提供的,也就是他自带的一个签名信息。所以说他的签名信息是一致的,他就不会出现签名信息冲突的问题,就可以直接覆盖安装。看一下效果,这边就变成123最后还有一句。这句我把它放在dex文件夹文件里面。第一个搜索同样用我们刚才的方式,这边搜索类型,你可以选择代码,你可以选择字符串,把这个完全匹配去掉,这样的话他搜索的范围会更小,搜索速度更快一点,这边就搜索到,他这个翻译的有点不太精准,原句的意思是:理想决定高度,开发决定深度。不过他这个翻译起来有点不太一样,我们就实验一下改成123吧,保存退出。现在这三句就全部算是一个汉化,虽然说没有完全的汉化,就是简单修改的一个字符串。

我们刚才介绍的这三种汉化的路径,第一个是arsc。第二个xml文件,还有最后一个dex文件。

做完汉化。再来认识一下安卓mainfest.Xml这个文件,它是整个应用程序的信息描述文件。定义了应用程序的四大组件,而且它的文件名是不能修改的。来看一下,我列举了几个比较常见的属性,第一个:Versioncode,他就相当于版本号,主要用来更新。第二个versionname:版本名-是给用户看的。第三个-package包名,也就是我们刚才在列举双开的原理提了一个包名。第四个。在这个name后面的双引号里面,他会填入一些字符,并且对应一些应用的权限。例如这边这个是代表网络权限。当然这个不需要去记,因为在旁边一直都会显示。下一个是应用的名字,以及应用图标的路径。这有一个是应用是否开启debug的权限,那上面这么多条的属性。学习这些有什么用?前两个主要就是用来更新以及去更新这个在第三节课会讲。第三条。就不需要再说了,刚才在双开的时候已经反复强调过。第四个应用的权限,这边用处可就大,假设你在某个夜深人静的夜晚,

打开了某个不可告人的小软件,一打开你发现开居然跟你要摄像头的权限。但是你又有点怂,你不敢给他,你怕他做坏事。然后你在后台把他的权限禁用掉。这时app又发现进不去,那这个时候该怎么办?像这种情况。你就可以反编译达到这个main文件,把这条获取摄像头的权限删掉,这样你就可以愉快的使用这个软件。这边我只是简单举例,举一个小小的例子,让对付一些流氓软件,你要么在后台,把权限禁用掉。也可以向我刚才举的例子把对应的权限删除掉、这样的话,又不用怕他做一些坏事情了。下面两条。顾名思义,就是可以修改应用的名称以及应用的图标。比如说,你在上班摸鱼的时候,又可以把哔哩哔哩的名字改成日历。并且改成对应的图标。说到这边,肯定有人想拿bilibili开刀了,不过我先说明一下,哔哩哔哩,他有一个so层的签名校验,除非你先把它破掉,不然的话一修改再安装,肯定会闪退。最后一个就是动态调试会用到的一个权限,在后面的课程我们再进行讲解。接下来回到教程demo,我们先反编译一下这个xml文件,来看一下这几条属性,因为修改这个文件,在mt管理器里面,这属于会员功能,所以我们以np管理器来演示。首先找到应用的路径向我们如果用。mt提取的话,他都会放在一个同一的路径,就是在这个mt2-apks在这里面点击查看,然后找到这个文件。点击编辑,这个时候来看。刚才说了versioncode,versionname,以及这个package还有这两条应用的权限,一个是访问网络的权限,一个是修改或者删除存储的权限,但这种你就不需要去记,因为它反编译之后就会给你一个注释,再去删掉他对应的权限即可。接下来,这个是图标的一个路径,还有应用的名字。

最后再进行一下教程的最后一个内容,就是修改教程demo的名字以及替换图标,这个操作其实np管理器已经集成一个比较简单的方式。在功能里面有一个通用编辑看应用图标名字。版本,版本名还有一些其他的信息。替换图片。我们可以用论坛的图片,这边我已经为你们准备好了,首先打开电脑共享的文件夹。把文件复制进来。选择系统图库,把我们这个图片把名字改成吾爱破解。保存然后安装。刚才我们用的是mt的签名,他现在跟np的签名又不一致。那我们就先卸载。这边的图标以及名字都发生了改变,我后面这一节视频是不录的,因为以前在做图标的时候没有考虑这个分辨率的一个适配。所以是今天晚上又重新编译了一下,后面这段是不录的,但是代码。都是一样的。来看一下桌面你看名字。图标都发生了改变好,那以上就是第二节课的全部内容。感谢观看。

吾爱破解安卓逆向入门教程《安卓逆向这档事》二、初识APK文件结构、双开、汉化、基的评论 (共 条)

分享到微博请遵守国家法律