android 逆向终极版,Android逆向重置版(1)——关键的第一步

0x00 前言

首先感谢老婆王嘟嘟的鼓励,其次感谢52平台的支持。以下是正文

导航篇地址:https://www.52pojie.cn/thread-1016567-1-1.html

之后所有的文章链接会放在导航篇中。

这次不准备一遍文章里包含很多东西了,就一篇文章一个点,慢慢学,慢慢走,目的也明确起来,这样可能更利于学习。

想法是,先弄一个简单的demo来增加学习兴趣,然后围绕一个demo来讲解相关的知识点。并且将文章进行分割,在不同阶段推荐查看不同内容。

有什么需要改进的地方,请一定要提出来,因为是个人想法,没有得到印证,有的时候回走的很偏。

啰嗦部分

看到我的这篇文章大概其实可以分为以下这样几类人

1.初学者

必学部分

0x0.1

0x1.1

推荐部分(看看,或者实践都可以)

0x02

不推荐部分

这部分。。。先不看,后面都会涉及到,不急。

0x1.2

0x1.3

0x1.2

2.有一些基础但是相关知识不完善,查漏补缺

0x1.2

0x1.3

0x1.2

3.大佬 or 准大佬

看看戏就好,笑一笑,或者吐吐槽

0x0.1.你的主要目标:

逆向你的第一个Android App。这里我们以成功的看到代码里的flag为完成目标。flag格式为:flag{xxx}。

完成目标将会收获:

成功的逆向了一个App,你也是逆向过App的人了。

至少比之前的你是进步了的,并且是有方向的进步了。

学会了Androidkiller工具的使用。

Android逆向技能值+1。

0x0.2.额外任务(不影响主线学习):

完成App demo的编写

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的第一步,先进行安装查看(知道是病毒就别安装了哈)。

3ce67c9a9c8df1f79c488a413037dc0c.png

1.2 安装了之后发现并没有flag字样。所以我们需要对App进行逆向分析。

对于初学来说,可能都是接触Android killer,我们就用Android killer进行逆向。

Android killer使用极其方便,把Apk拖进去就可以了。

如果出现了是否进行分析,点击否

172740k62qezqo7vt6t66q.png

1.3 找到关键点

在Android killer中提供了全局搜索的功能。如下图所示:

172816fm5tyl5zil64lklw.png

需要注意的是:这里设置为当前整个项目

173019bh11pr4rc1cpik4p.png

搜索关键字:flag{,如下图所示,成功拿到flag。

173114hsw62ohzm2727okw.png

1.4 总结

安装查看apk

拖到Androidkiller中

搜索关键字

成功

1.5思考部分

思考的部分会在之后的文章里进行解答以及分析。

为什么flag会出现在MainActivity.smali中。

MainActivity.smali是什么。

173327sqwq9qbazbvbiavi.png

0x1.2 方法二

由于这里并没有推荐初学时学习,所以过程会比较简单,仅仅当做复习过程,之后如果有必要的话,会推荐初学者回头重新复习的,所以这部分没必要看懂,或者可以直接不看。

1.使用jadx直接打开

找到主MainActivity,相当于程序开始的地方(注意这里是相当,实际上严格的说它并不是)。

175851b7hohzwrr79dcrku.png

这里涉及到如何找MainActivity。

最简单的方法就是,直接看。。。一般命名是MainActivity的就是主Activity。

其他的方法。。等之后再说。

0x1.3 方法三

1.使用jeb直接打开

将apk拖进去

180556sv81j1eejjv7rnmn.png

然后选中MainActivity,用快捷键Q进行java转换

180714xqa2qhhnq8x2tzh2.png

并没有什么难度。

0x01.4 方法四

1.解压apk

181028iu4dr5wuub4be94s.png

2.反编译dex文件

简单的说下,这里的dex实际上就是代码集合的地方,也是反编译的重点,这里使用的工具是apktool。

然后将反编译好的文件夹直接拖入Sublime or 其他,你们随意。

181245mf3fmtku5yu2t7of.png

可以看到有这些文件夹以及一些.smali文件。

smali文件就是class文件的汇编,实际上是一种伪汇编,是运行在java虚拟机上的代码。

同理找到MainActivity,可得flag。

181443qqfc662v65nhsfsw.png

0x02 编写一个App demo

编写App demo,首先要具备一个Android studio,这个安装就行,搜索一下教程会有很多。

1.New -New Project

创建一个New Project

173400m68df0lug66fgddb.png

2.命名

173654ka0jj86wxe1jjx1f.png

3.选择默认next

173735n14y20plf6mo4y20.png

4.选择Empty Activity,然后next

173941z1uqwzqj21u0910z.png

5.选择finish

174008acm5rmcb6wjibib5.png

6.进去之后选定MainActivity

174052w22ssx3sos1878s3.png

7. 然后输入以下代码

System.out.print("flag{GoodLook_bywangdudu}");

这里就是输出一串字符串。

174355qez6enajhg9bsnvh.png

8.Build APK

这里直接Build APK即可。

174431oh2sssx40d5rwi2y.png

9.成品

174458crizasa7nf4nfafi.png

以上,谢谢大家,要是有空的话,有免费热心值来一下鸭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值