JEB Decompiler反编译导出源码这一步,真正影响效率的不是点不点得出菜单,而是你导出前有没有把导出范围选对、导出后有没有把目录按可复用的方式整理好。只要导出路径、命名规则、模块分层三件事先定下来,后续做检索、对照版本、给同事交接都会省很多来回翻找的时间。
一、JEB Decompiler反编译导出源码怎么做
JEB Decompiler导出源码通常从文件菜单进入,先选导出对象,再选输出目录,最后让JEB批量把反编译结果写到磁盘。建议先把分析跑完再导出,否则导出过程中你会遇到类名不全、交叉引用未完善、导出文件反复变化的问题。
1、先确认分析已经完成并保存分析文件
点击【File】→【Save】把当前分析保存成.jdb2,后续你需要重导出时直接载入同一份分析文件,避免每次重新分析导致导出结果不一致。
2、从导出入口进入批量反编译导出
点击【File】→【Export Decompilation】,进入导出向导页面,这是官方建议的批量导出入口。
3、在导出向导里先选导出范围再选输出目录
在导出窗口里先选要导出的部分,例如只导出DEX反编译结果,或同时导出原生代码反编译结果,再点击【Browse】选择输出目录,路径尽量选到一个空文件夹,避免与旧导出混在一起。
4、导出前把命名口径一次定住
在输出目录里建议用统一命名,例如应用名加版本号加日期,导出时不要临时改目录名,否则你后面做差异对比时很难确认哪一份对应哪次分析;如果是多DEX或多模块输入,建议让目录名包含输入文件的主标识,避免同名包覆盖。
5、导出完成后做一次快速校验
打开导出目录,先抽查三类文件是否齐全,Java伪代码源码、原生伪代码源码、导出日志;再随机点开两三个包路径,确认目录层级按包名展开而不是被扁平化,同时确认文件编码正常、注释不乱码,这一步能提前发现导出被安全软件拦截或路径权限不足的问题。
二、JEB Decompiler导出目录怎么组织更好用
JEB Decompiler导出目录如果只是把源码一股脑扔进一个文件夹,短期看似省事,后面做定位和交付会很痛苦。更实用的组织方式是把导出目录拆成可追溯的层级,让你一眼能看出这是哪次导出、导出了哪些模块、每类文件放在哪里。
1、先用一层根目录固定一次导出的身份
根目录建议用这一类结构,AppName_版本_日期_样本号,把样本号留给哈希或内部编号,后续做多版本横向对比时不需要再打开文件就能识别来源。
2、把导出内容按模块分三到四层放置
在根目录下先建【01_code_java】、【02_code_native】、【03_resources】、【00_meta】,Java反编译结果放进【01_code_java】,原生反编译结果放进【02_code_native】,资源与清单放进【03_resources】,导出日志、任务说明、比对记录放进【00_meta】。
3、在Java源码目录里按DEX或代码单元再分一层
如果样本存在classes.dex、classes2.dex这类多DEX,建议在【01_code_java】下再建【dex1】、【dex2】;这样同名类不会互相覆盖,你也能快速判断某个类来自哪个DEX,做入口追踪时更清晰。
4、保持包名路径原样,不要人为改扁平结构
导出后的com、org等顶层包路径建议保持原状,不要把所有.java文件移到同一层;你真正需要做的是在更上层把模块分开,而不是破坏包结构,否则后续用IDE或grep检索都不顺手。
5、把可复核信息集中放到meta目录
在【00_meta】里至少放三样东西,导出时间与导出人说明、JEB分析文件.jdb2的备份或引用路径、导出日志文件;如果你做过重命名与注释,也把重命名规则与关键定位点写进一份说明,交接给同事时不需要口头补全。
三、JEB Decompiler导出源码后目录混乱怎么快速整理
JEB Decompiler导出源码后目录看起来乱,通常不是你没建文件夹,而是缺少一套固定的归档顺序,导致源码、资源、日志、临时比对文件混放在一起。你只要按一次性整理动作把目录归位,后面每次导出都照这个模板落盘,就不会越积越乱。
1、先把导出目录冻结为只读副本
把当前导出目录整体复制一份到备份区,备份目录名加上raw,后续整理都在工作副本里做,避免误删导致需要重新反编译导出。
2、按四类文件先做粗分拣
在工作副本根目录创建【00_meta】、【01_code_java】、【02_code_native】、【03_resources】,把日志、说明文档、截图先移入【00_meta】,把明显的资源文件移入【03_resources】,其余源码先不动。
3、再按包路径和DEX来源做细分
观察Java源码是否已经按包路径展开,如果已展开,只需要把对应顶层包整体移动到【01_code_java】;如果存在多DEX导出,先按dex关键词或导出时生成的子目录识别来源,再分别移动到【01_code_java】下的【dex1】、【dex2】。
4、给整理后的目录补一份索引说明
在【00_meta】新建一份README文本,写清楚本次导出使用的输入文件名、导出范围选择、目录结构说明、关键入口类路径与关键词;这份索引比你记在聊天里更可靠,后续复盘也更快。
5、整理完成后做一次最小可用性验证
用系统搜索在【01_code_java】里搜一个你确定存在的类名,确认能命中并能跳转到正确包路径;再打开两三个文件确认编码与换行正常,最后确认【00_meta】里保留了导出日志与.jdb2引用,确保下次需要重导出时有据可依。
总结
JEB Decompiler反编译导出源码的关键动作是从【File】→【Export Decompilation】进入批量导出,先选导出范围再选输出目录,并在导出前保存.jdb2保证可复现。JEB Decompiler导出目录怎么组织,建议用一次导出一个根目录、根目录下按Java源码、原生源码、资源、元信息分层,再在源码层按DEX或代码单元细分,最后用meta索引把导出条件与关键定位点写清楚,这样交付和复核都会更顺。
