-
-
[分享]apk文件结构-apk目录结构
-
2022-2-2 15:25 4654
-
0x1 assets
1.assets
APK中的静态文件,比如视频,音频,图片等
0x2 res
1.res
res是resource的缩写,这个目录存放编译后的资源文件
0x3 lib
1.lib
动态链接库文件,扩展名为so
2.因为java不能直接调用底层文件,需要借助so文件去调用。
3.后期我们不光要对java文件反编译,还要对so文件反编译,因为很多功能在so文件实现的。
0x4 MATA-INF
1.MATA-INF
保存应用的签名信息,签名信息可以验证APK文件的完整性.
2.可以验证app是否被篡改,是否被别人植入了木马,可以对签名校验防篡改。
0x5 class.dex
1.class.dex
davilk可执行文件,我们重点对这个文件进行分析和反编译
0x6 androidmanifest.xml
1.androidmanifest.xml
Android应用程序配置清单
0x7 resources.arsc
1.resources.arsc
用来记录资源文件和资源ID之间的映射关系,用来根据资源ID寻找资源。例如字符串,对话框,按钮。
2.写代码时通过ID找到资源,我们逆向通过资源找到资源ID,然后找到代码里使用ID的位置。
0x8 实战
1.找一个apk文件,后缀名改成.zip,用压缩软件打开,看一下MANIFEST.MF文件
Manifest-Version: 1.0
Built-By: Signflinger
Created-By: Android Gradle 4.1.1
Name: AndroidManifest.xml
SHA-256-Digest: 0VmjGSIkjOUNGfv9VD6zLJIguOVXc5jdwljqfPuWFk0=
Name: META-INF/androidx.activity_activity.version
SHA-256-Digest: VjoLTuw8d7vDSsYw1PpSFPXGcmrgFGhAT9cERzEQCE4=
Name: META-INF/androidx.annotation_annotation-experimental.version
SHA-256-Digest: WYVJhIUxBN9cNT4vaBoV/HkkdC+aLkaMKa8kjc5FzgM=
Name: META-INF/androidx.appcompat_appcompat-resources.version
SHA-256-Digest: EOLhF7AVI4kconGmFa426dXlI0j9fWQvZnJ2AsG43L4=
Name: META-INF/androidx.appcompat_appcompat.version
SHA-256-Digest: EOLhF7AVI4kconGmFa426dXlI0j9fWQvZnJ2AsG43L4=
Name: META-INF/androidx.arch.core_core-runtime.version
SHA-256-Digest: yJuHwmLp1f/SDnOqx0oXcq3Mn1ohaCzDOtz1CG5f71w=
注意:目录下还有个CERT.SF是对MANIFEST.MF文件的哈斯算法摘要,只是加密了我们看不到里面的内容。
2.看一下res目录,里面有些图标,图片等等资源文件。
0x9 常见问题总结
1.如果遇到反编译后,里面有多个dex文件,是因为一个dex文件最多只能包含65535个函数,超过后拆分成多个包。
2.我们逆向找应用程序入口的时候,通常在androidmanifest.xml找第一个页面下手。
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法