在JEB里看Manifest,先要分清你现在看到的是“原始ZIP树”还是“APK解析后的工程树”。JEB官方手册写得很清楚,同一个APK用ZIP视角和APK视角打开,项目树结构会不一样;其中一个最直观的区别,就是Manifest在原始视角里更接近编码文件,在APK解析视角里则会变成解码后的清晰节点。也正因为这样,Manifest节点不显示,很多时候不是文件里没有,而是打开方式或APK解析选项没对上。
一、JEB Decompiler怎么查看Manifest
先把APK用正确方式载入,再去项目树里找Manifest,这样最快。JEB官方Android文档说明,JEB处理APK后,项目树会把Manifest、证书、DEX、资源和so库按“解析后的结构”重新组织,而不是机械保留原始压缩包样子。换句话说,真要看Manifest,关键不是先翻classes.dex,而是先确认当前工程已经按APK被解析。
1、先直接打开APK文件
最稳的做法是直接把目标APK作为APK工程打开,而不是先把它当普通ZIP浏览。官方文档明确说明,JEB处理APK后的项目树会不同于raw ZIP tree view,其中Manifest会以解码后的形式出现。
2、再到项目树里找解码后的Manifest
JEB官方Android文档把Manifest列成APK结构中的核心元数据,并说明处理后的工程树会显示解码结果。正常情况下,点击对应Manifest节点,就能看到可读的AndroidManifest.xml内容,而不是一段难看的二进制或压缩视图。
3、需要从Manifest反查入口时,再结合组件信息看
官方文档还说明,Manifest里会定义package、权限、Activity、Service、Receiver、Provider以及debuggable等关键字段;而JEB在反汇编顶部也会汇总重要组件,尤其是自定义Application。也就是说,Manifest不只是拿来看文本,它还是你后面判断入口点和组件关系的起点。
4、看完Manifest再回头跟代码
像主Activity、Broadcast Receiver和自定义Application这些组件,官方都在Android文档里列成需要重点关注的入口对象。更顺手的做法通常是先从Manifest把组件名单看清,再去代码树里跟类,而不是反过来盲翻代码。
二、JEB Decompiler Manifest节点不显示怎么处理
Manifest节点不显示时,不要先怀疑APK一定损坏。就官方文档能确认的边界来看,更常见的排查方向只有两层,一层是当前文件是不是按APK方式处理,另一层是APK解析器的Manifest与资源处理开关有没有被关掉。JEB的引擎配置文档写得很明确,`.parsers.apk.ProcessManifest`默认是true,`.parsers.apk.ProcessResources`默认也是true,而且如果资源处理开启,Manifest也会被一起处理。
1、先查是不是按原始ZIP视角打开了
如果你看到的项目树更像原始压缩包目录,而不是APK解析后的结构,那最先要怀疑的就是当前不是APK解析视角。官方已经明确对比过两种树形结果,ZIP视角和APK视角下,Manifest的显示形态就是不一样的。
2、再查APK解析选项里的Manifest开关
引擎配置文档写得很直白,`.parsers.apk.ProcessManifest`的说明就是“Decode and process the APK Manifest”,默认值为true。也就是说,如果这项被关掉,Manifest节点不出来就是正常现象。
3、再查资源处理是不是被改掉了
JEB文档还写到,`.parsers.apk.ProcessResources`的默认值也是true,而且如果它为true,Manifest总会被一起处理。这个细节很关键,因为它意味着有时候你即便没单独盯Manifest开关,只要资源处理被整体关闭,也可能影响你对项目树结果的判断。
4、改完选项后重新载入文件
JEB的APK解析选项是作用在文件处理阶段的,所以Manifest与资源开关改完以后,更稳的做法是重新打开APK,让解析器按新的设置重新建树。这个结论是顺着官方“这些选项决定APK如何被处理”的定义得出的直接操作方式。
三、JEB Decompiler APK视图怎么判断
很多人之所以在Manifest这里反复兜圈,不是不会点菜单,而是没先判断当前工程到底处在什么视图。更实用的办法,是先拿项目树结构做快速判断。JEB官方Android文档已经把APK解析后项目树的几个标志写得很清楚,Manifest会解码显示,DEX会按虚拟合并结果组织,资源也会以解码和重组后的形式出现。这几个特征一旦出现,基本就说明你现在看到的是APK解析视图,而不是原始包浏览视图。
1、看Manifest是编码态还是解码态
2、看DEX是原始分散文件还是合并后的虚拟单元
3、看资源是零散文件还是解码重组后的资源结构
4、三项都对上,再去找Manifest节点
这套判断顺序的好处很直接,先确定你所在的工程视图,再决定是查节点、查选项,还是重新载入文件,排查会快很多。
总结
JEB Decompiler怎么查看Manifest,最稳的做法是直接按APK解析视角打开文件,再到项目树里看解码后的Manifest节点。JEB Decompiler Manifest节点不显示怎么处理,优先按这个顺序排,先看是不是误入原始ZIP视角,再看`.parsers.apk.ProcessManifest`和`.parsers.apk.ProcessResources`有没有被关掉,最后重新载入APK。把“打开方式”和“解析选项”这两层分开看,Manifest节点问题通常会比一上来怀疑文件损坏更容易定位。
