本帖最后由 BubblePig 于 2019-9-2 18:52 编辑
0x00 前言
首先感谢老婆王嘟嘟的鼓励,其次感谢52平台的支持。以下是正文
导航篇地址:https://www.52pojie.cn/thread-1016567-1-1.html
之后所有的文章链接会放在导航篇中。
这次不准备一遍文章里包含很多东西了,就一篇文章一个点,慢慢学,慢慢走,目的也明确起来,这样可能更利于学习。
想法是,先弄一个简单的demo来增加学习兴趣,然后围绕一个demo来讲解相关的知识点。并且将文章进行分割,在不同阶段推荐查看不同内容。
有什么需要改进的地方,请一定要提出来,因为是个人想法,没有得到印证,有的时候回走的很偏。
啰嗦部分
看到我的这篇文章大概其实可以分为以下这样几类人
1.初学者
必学部分
推荐部分(看看,或者实践都可以)
不推荐部分
这部分。。。先不看,后面都会涉及到,不急。
2.有一些基础但是相关知识不完善,查漏补缺
3.大佬 or 准大佬
看看戏就好,笑一笑,或者吐吐槽
0x0.1.你的主要目标:
- 逆向你的第一个Android App。这里我们以成功的看到代码里的flag为完成目标。flag格式为:flag{xxx}。
完成目标将会收获:
- 成功的逆向了一个App,你也是逆向过App的人了。
- 至少比之前的你是进步了的,并且是有方向的进步了。
- 学会了Androidkiller工具的使用。
- Android逆向技能值+1。
0x0.2.额外任务(不影响主线学习):
0x0.3.App demo下载地址
可能对于大部分人来说,这个过于简单,所以先提供下载地址,不用接着往下看,可能有一小部分人需要往下看。
链接:https://pan.baidu.com/s/1KrVzY0xiFGDr_cY46sq57Q
提取码:a7pv
复制这段内容后打开百度网盘手机App,操作更方便哦
本篇内容总结
主要是后面怕自己忘记了,可以没必要看懂
- Androidkiller的简单使用
- jadx
- jeb
- apktool
- app demo编写
0x01 逆向你的第一个Android App
0x1.1.方法一
这个思路适合没有逆向过任何东西,甚至java都不需要懂的都可以顺利进行。
1.1 首先,拿到App的第一步,先进行安装查看(知道是病毒就别安装了哈)。
1.2 安装了之后发现并没有flag字样。所以我们需要对App进行逆向分析。
对于初学来说,可能都是接触Android killer,我们就用Android killer进行逆向。
Android killer使用极其方便,把Apk拖进去就可以了。
如果出现了是否进行分析,点击否
1.3 找到关键点
在Android killer中提供了全局搜索的功能。如下图所示:
需要注意的是:这里设置为当前整个项目
搜索关键字:flag{,如下图所示,成功拿到flag。
1.4 总结
- 安装查看apk
- 拖到Androidkiller中
- 搜索关键字
- 成功
1.5思考部分
思考的部分会在之后的文章里进行解答以及分析。
- 为什么flag会出现在MainActivity.smali中。
- MainActivity.smali是什么。
0x1.2 方法二
由于这里并没有推荐初学时学习,所以过程会比较简单,仅仅当做复习过程,之后如果有必要的话,会推荐初学者回头重新复习的,所以这部分没必要看懂,或者可以直接不看。
1.使用jadx直接打开
找到主MainActivity,相当于程序开始的地方(注意这里是相当,实际上严格的说它并不是)。
这里涉及到如何找MainActivity。
- 最简单的方法就是,直接看。。。一般命名是MainActivity的就是主Activity。
其他的方法。。等之后再说。
0x1.3 方法三
1.使用jeb直接打开
将apk拖进去
然后选中MainActivity,用快捷键Q进行java转换
并没有什么难度。
0x01.4 方法四
1.解压apk
2.反编译dex文件
简单的说下,这里的dex实际上就是代码集合的地方,也是反编译的重点,这里使用的工具是apktool。
然后将反编译好的文件夹直接拖入Sublime or 其他,你们随意。
可以看到有这些文件夹以及一些.smali文件。
smali文件就是class文件的汇编,实际上是一种伪汇编,是运行在java虚拟机上的代码。
同理找到MainActivity,可得flag。
0x02 编写一个App demo
编写App demo,首先要具备一个Android studio,这个安装就行,搜索一下教程会有很多。
1.New -New Project
创建一个New Project
2.命名
3.选择默认next
4.选择Empty Activity,然后next
5.选择finish
6.进去之后选定MainActivity
7. 然后输入以下代码
System.out.print("flag{GoodLook_bywangdudu}");
这里就是输出一串字符串。
8.Build APK
这里直接Build APK即可。
9.成品
以上,谢谢大家,要是有空的话,有免费热心值来一下鸭
|