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

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.成品

以上,谢谢大家

THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
  • 管埋员

    昵称

  • 取消
    昵称