我正面临使用 moSync 框架 ( http://www.mosync.com )构建的移动应用程序(Android 应用程序)的编译资源文件。此资源文件包含该应用程序的媒体(图像、音频)、字符串、JS/HTML 代码。它是使用来自 moSync 框架的资源编译器构建的。
资源文件以4D 41 52 53
或MARS
作为签名/标识符开始。
是否可以提取资源,对其进行一些修改并重新打包文件?
稍后编辑(发布文件头和第一个字节以供进一步分析):
4D 41 52 53 E0 1C 4D A9 04 3D 72 85 78 56 34 22 10 00 00 00 3F 01 00
00 D7 25 B1 89 00 52 6F 6F 74 00 05 00 00 00 01 64 65 66 61 75 6C 74
2E 63 73 73 00 00 00 00 00 51 0E 00 00 01 48 74 74 70 49 6E 66 6F 45
4E 2E 68 74 6D 6C 00 51 0E 00 00 2C 7A 00 00 01 48 74 74 70 49 6E 66
6F 52 4F 2E 68 74 6D 6C 00 7D 88 00 00 2B 7A 00 00 00 69 6D 61 67 65
73 00 09 00 00 00 01 63 6C 69 65 6E 74 2E 70 6E 67 00 A8 02 01 00 A5
02 00 00 01 64 65 73 74 69 6E 61 74 69 65 2E 70 6E 67 00 4D 05 01 00
AA 03 00 00 01 74 61 78 69 2E 70 6E 67 00 F7 08 01 00 2F 0E 00 00 01
74 61 78 69 30 2E 70 6E 67 00 26 17 01 00 F6 02 00 00 01 74 61 78 69
31 2E 70 6E 67 00 1C 1A 01 00 76 04 00 00 01 74 61 78 69 32 2E 70 6E
67 00 92 1E 01 00 5F 04 00 00 01 74 61 78 69 33 2E 70 6E 67 00 F1 22
01 00 A7 05 00 00 01 74 61 78 69 34 2E 70 6E 67 00 98 28 01 00 0B 05
00 00 01 74 61 78 69 35 2E 70 6E 67 00 A3 2D 01 00 02 06 00 00 00 6A
73 00 01 00 00 00 01 6D 6F 73 79 6E 63 2D 62 72 69 64 67 65 2E 6A 73
00 A5 33 01 00 59 44 00 00
如果将这些数据从十六进制转换为 ascii,您将清楚地看到编译后的文件是几个其他文件的串联(例如:mosync-bridge.js、HttpInfoEN.html、default.css、taxi0.png)。发现后,我继续分析文件。在里面的最后一个 png 文件之后,我发现了几个 audio/mpeg 、 audio/x-wav 文件头。这些文件没有在文件中的任何地方引用,而是成功加载到应用程序中。
我还尝试对文件进行十六进制编辑(例如,更改 css 文件中的属性,而不保留属性名称长度),重新打包并签署 APK。我将它安装到一台设备上,它会抱怨它无法加载资源并崩溃。