ironMan.K 发表于 2019-3-15 11:12:08

提取系统apk:
下载jar:https://bitbucket.org/JesusFreke/smali/downloads/
smali.jar和baksmali.jar

1.执行:1.java -jar baksmali.jar de temp.odex
会报错,把系统framework文件夹的东西pull出来

  1. Error occurred while loading class path files. Aborting.
  2. org.jf.dexlib2.analysis.ClassPathResolver$ResolveException: Error while loading oat file boot.oat
  3. at org.jf.dexlib2.analysis.ClassPathResolver.loadEntry(ClassPathResolver.java:250)
  4. at org.jf.dexlib2.analysis.ClassPathResolver.loadLocalClassPathEntry(ClassPathResolver.java:179)
  5. at org.jf.dexlib2.analysis.ClassPathResolver.loadLocalOrDeviceBootClassPathEntry(ClassPathResolver.java:191)
  6. at org.jf.dexlib2.analysis.ClassPathResolver.<init>(ClassPathResolver.java:120)
  7. at org.jf.dexlib2.analysis.ClassPathResolver.<init>(ClassPathResolver.java:105)
  8. at org.jf.baksmali.AnalysisArguments.loadClassPathForDexFile(AnalysisArguments.java:129)
  9. at org.jf.baksmali.AnalysisArguments.loadClassPathForDexFile(AnalysisArguments.java:86)
  10. at org.jf.baksmali.DisassembleCommand.getOptions(DisassembleCommand.java:207)
  11. at org.jf.baksmali.DeodexCommand.getOptions(DeodexCommand.java:71)
  12. at org.jf.baksmali.DisassembleCommand.run(DisassembleCommand.java:181)
  13. at org.jf.baksmali.Main.main(Main.java:102)
  14. Caused by: org.jf.dexlib2.analysis.ClassPathResolver$NotFoundException: Cannot find dependency boot-core-libart.oat in null
  15. at org.jf.dexlib2.analysis.ClassPathResolver.loadOatDependencies(ClassPathResolver.java:270)
  16. at org.jf.dexlib2.analysis.ClassPathResolver.loadEntry(ClassPathResolver.java:248)
  17. ... 10 more
复制代码

把arm里面的文件拷贝到上一层目录(其实应该不用也可以,因为我不熟悉baksmali的其它参数)
再次执行第一步命令就可以看到out目录下有smali文件了


2.java -jar smali.jar a out -o temp.dex
在当前目录会生成dex文件
接下来就转jar看代码了。
整个下来工作并不多,但是这里面很多坑。
第二种方法:
从官网下载rom包,然后dat解包,SVADeodexerForArt工具合并apk,这个简单方便

  链接:
购买主题 本主题需向作者支付 30 趣币 才能浏览

Edithpab 发表于 2025-4-11 12:01:47

提取系统apk:
下载jar:https://bitbucket.org/JesusFreke/smali/downloads/
smali.jar和baksmali.jar

1.执行:1.java -jar baksmali.jar de temp.odex
会报错,把系统framework文件夹的东西pull出来

  1. Error occurred while loading class path files. Aborting.
  2. org.jf.dexlib2.analysis.ClassPathResolver$ResolveException: Error while loading oat file boot.oat
  3. at org.jf.dexlib2.analysis.ClassPathResolver.loadEntry(ClassPathResolver.java:250)
  4. at org.jf.dexlib2.analysis.ClassPathResolver.loadLocalClassPathEntry(ClassPathResolver.java:179)
  5. at org.jf.dexlib2.analysis.ClassPathResolver.loadLocalOrDeviceBootClassPathEntry(ClassPathResolver.java:191)
  6. at org.jf.dexlib2.analysis.ClassPathResolver.<init>(ClassPathResolver.java:120)
  7. at org.jf.dexlib2.analysis.ClassPathResolver.<init>(ClassPathResolver.java:105)
  8. at org.jf.baksmali.AnalysisArguments.loadClassPathForDexFile(AnalysisArguments.java:129)
  9. at org.jf.baksmali.AnalysisArguments.loadClassPathForDexFile(AnalysisArguments.java:86)
  10. at org.jf.baksmali.DisassembleCommand.getOptions(DisassembleCommand.java:207)
  11. at org.jf.baksmali.DeodexCommand.getOptions(DeodexCommand.java:71)
  12. at org.jf.baksmali.DisassembleCommand.run(DisassembleCommand.java:181)
  13. at org.jf.baksmali.Main.main(Main.java:102)
  14. Caused by: org.jf.dexlib2.analysis.ClassPathResolver$NotFoundException: Cannot find dependency boot-core-libart.oat in null
  15. at org.jf.dexlib2.analysis.ClassPathResolver.loadOatDependencies(ClassPathResolver.java:270)
  16. at org.jf.dexlib2.analysis.ClassPathResolver.loadEntry(ClassPathResolver.java:248)
  17. ... 10 more
复制代码

把arm里面的文件拷贝到上一层目录(其实应该不用也可以,因为我不熟悉baksmali的其它参数)
再次执行第一步命令就可以看到out目录下有smali文件了


2.java -jar smali.jar a out -o temp.dex
在当前目录会生成dex文件
接下来就转jar看代码了。
整个下来工作并不多,但是这里面很多坑。
第二种方法:
从官网下载rom包,然后dat解包,SVADeodexerForArt工具合并apk,这个简单方便

  链接:
购买主题 本主题需向作者支付 30 趣币 才能浏览

Edithpab 发表于 2025-4-11 17:34:59

提取系统apk:
下载jar:https://bitbucket.org/JesusFreke/smali/downloads/
smali.jar和baksmali.jar

1.执行:1.java -jar baksmali.jar de temp.odex
会报错,把系统framework文件夹的东西pull出来

  1. Error occurred while loading class path files. Aborting.
  2. org.jf.dexlib2.analysis.ClassPathResolver$ResolveException: Error while loading oat file boot.oat
  3. at org.jf.dexlib2.analysis.ClassPathResolver.loadEntry(ClassPathResolver.java:250)
  4. at org.jf.dexlib2.analysis.ClassPathResolver.loadLocalClassPathEntry(ClassPathResolver.java:179)
  5. at org.jf.dexlib2.analysis.ClassPathResolver.loadLocalOrDeviceBootClassPathEntry(ClassPathResolver.java:191)
  6. at org.jf.dexlib2.analysis.ClassPathResolver.<init>(ClassPathResolver.java:120)
  7. at org.jf.dexlib2.analysis.ClassPathResolver.<init>(ClassPathResolver.java:105)
  8. at org.jf.baksmali.AnalysisArguments.loadClassPathForDexFile(AnalysisArguments.java:129)
  9. at org.jf.baksmali.AnalysisArguments.loadClassPathForDexFile(AnalysisArguments.java:86)
  10. at org.jf.baksmali.DisassembleCommand.getOptions(DisassembleCommand.java:207)
  11. at org.jf.baksmali.DeodexCommand.getOptions(DeodexCommand.java:71)
  12. at org.jf.baksmali.DisassembleCommand.run(DisassembleCommand.java:181)
  13. at org.jf.baksmali.Main.main(Main.java:102)
  14. Caused by: org.jf.dexlib2.analysis.ClassPathResolver$NotFoundException: Cannot find dependency boot-core-libart.oat in null
  15. at org.jf.dexlib2.analysis.ClassPathResolver.loadOatDependencies(ClassPathResolver.java:270)
  16. at org.jf.dexlib2.analysis.ClassPathResolver.loadEntry(ClassPathResolver.java:248)
  17. ... 10 more
复制代码

把arm里面的文件拷贝到上一层目录(其实应该不用也可以,因为我不熟悉baksmali的其它参数)
再次执行第一步命令就可以看到out目录下有smali文件了


2.java -jar smali.jar a out -o temp.dex
在当前目录会生成dex文件
接下来就转jar看代码了。
整个下来工作并不多,但是这里面很多坑。
第二种方法:
从官网下载rom包,然后dat解包,SVADeodexerForArt工具合并apk,这个简单方便

  链接:
购买主题 本主题需向作者支付 30 趣币 才能浏览
页: [1]
查看完整版本: odex 转 dex 简单方法介绍