大多数 apk 文件在反汇编时会生成 2 个 dex 文件,而不是一个。但是由于IDA Pro一次只允许加载一个dex文件,可能会因为另一个dex文件没有加载而导致信息丢失。有什么方法可以将这 2 个 dex 文件合并为一个,以便我可以将完整的 dex 文件加载到 IDA Pro 中?我尝试将两个 dex 文件反汇编为 smali 文件,然后使用 smali.jar 将这些 smali 文件再次合并为一个 dex 文件,但我面临以下错误:
Exception in thread "main" org.jf.util.ExceptionWithContext: Exception occurred
while writing code_item for method Ladyen/com/adyencse/pojo/Card;->serialize(Lja
va/lang/String;)Ljava/lang/String;
at org.jf.dexlib2.writer.DexWriter.writeDebugAndCodeItems(DexWriter.java
:824)
at org.jf.dexlib2.writer.DexWriter.writeTo(DexWriter.java:267)
at org.jf.dexlib2.writer.DexWriter.writeTo(DexWriter.java:245)
at org.jf.smali.Smali.assemble(Smali.java:130)
at org.jf.smali.AssembleCommand.run(AssembleCommand.java:96)
at org.jf.smali.Main.main(Main.java:99)
Caused by: org.jf.util.ExceptionWithContext: Error while writing instruction at
code offset 0x2
at org.jf.dexlib2.writer.DexWriter.writeCodeItem(DexWriter.java:1091)
at org.jf.dexlib2.writer.DexWriter.writeDebugAndCodeItems(DexWriter.java
:820)
... 5 more
Caused by: org.jf.util.ExceptionWithContext: Unsigned short value out of range:
70784
at org.jf.dexlib2.writer.DexDataWriter.writeUshort(DexDataWriter.java:11
6)
at org.jf.dexlib2.writer.InstructionWriter.write(InstructionWriter.java:
348)
at org.jf.dexlib2.writer.DexWriter.writeCodeItem(DexWriter.java:1051)
... 6 more