【愚公系列】2023年04月 攻防世界-MOBILE(APK逆向-2)


前言

1.反编译

下面介绍两个反编译工具

  • jadx是一个用于反编译Android APK文件的开源工具,静态反编译,查找索引功能强大
  • jeb和IDA很像,属于动态调试,可以看java汇编也可以生成伪代码,还可以动态attach到目标调试

对于so文件的逆向工具选择

  • IDA逆向工具是一款反汇编器,被广泛应用于软件逆向工程领域,能够反汇编各种不同平台的二进制程序代码,并还原成可读的汇编代码。

2.安卓hook

Objection是一款移动设备运行时漏洞利用工具,该工具由Frida驱动,可以帮助研究人员访问移动端应用程序,并在无需越狱或root操作的情况下对移动端应用程序的安全进行评估检查。

安装命令

pip3 install objection 

frida是一款便携的、自由的、支持全平台的hook框架,可以通过编写JavaScript、Python代码来和frida_server端进行交互

frida的安装可以参考:https://www.jianshu.com/p/60cfd3f6afde

3.AndroidManifest文件格式

1、AndroidManifest文件格式解析
在这里插入图片描述
2、头部信息
在这里插入图片描述
3、String Chunk
在这里插入图片描述

1、ChunkType:StringChunk的类型,固定四个字节:0x001C0001

2、ChunkSize:StringChunk的大小,四个字节

3、StringCount:StringChunk中字符串的个数,四个字节

4、StyleCount:StringChunk中样式的个数,四个字节,但是在实际解析过程中,这个值一直是0x00000000

5、Unknown:位置区域,四个字节,在解析的过程中,这里需要略过四个字节

6、StringPoolOffset:字符串池的偏移值,四个字节,这个偏移值是相对于StringChunk的头部位置

7、StylePoolOffset:样式池的偏移值,四个字节,这里没有Style,所以这个字段可忽略

8、StringOffsets:每个字符串的偏移值,所以他的大小应该是:StringCount*4个字节

9、SytleOffsets:每个样式的偏移值,所以他的大小应该是SytleCount*4个字节

一、APK逆向-2

1.题目

在这里插入图片描述

2.答题

1、jadx-gui

使用jadx-gui打开apk文件,发现【AndroidManifest.xml】文件反编译报错了
在这里插入图片描述

把下载的 APK 文件后缀的【.apk】改成【.zip】然后用压缩软件打开,就可以解压出来了,提取到AndroidManifest。

在这里插入图片描述
修改异常格式有两处改为

  • 01 00 1c 00
  • 00 00 00 00

改好文件后拖进压缩包然后覆盖原文件,在把后缀改回【.apk】然后再反编译下。
在这里插入图片描述

得到flag:8d6efd232c63b7d2

猜你喜欢

转载自blog.csdn.net/aa2528877987/article/details/130417079