SCHIZOSCHIZOSCHIZO
  • WORK
  • ABOUT
  • BRAIN DUMP
  • TOOLS
  • CONTACT
2026-06-18

Android DEX and ODEX

AndroidProgrammingreverse engineeringmobile

Java

When we compile Java code we get Java bytecode, but that file is much more resource-intensive, so we cannot use it directly on our phones, which use the ARM architecture. So we have to compile it in a way that it becomes a Dalvik executable, which gives us a .dex file.

ODEX stands for optimized dex.

Expand
The path from Java source through bytecode to a DEX file optimised for Android

Multidexing

A classes.dex file can only contain 65535 methods. So if an application contains more methods than that (including frameworks and libraries), the classes file has to be separated into multiple files like classes.dex, classes2.dex, classes3.dex, etc. — which is multidexing.

classes.dex

We can use tools like ghex to get a hexadecimal view of the dex file. But ghex cannot do anything more than that. To do more than that, we need to use dexdump.

We can decompile a classes.dex file using the program dexdump in the following way, after extracting the apk:

code
dexdump -d
DEX recall4 blanks

Java bytecode is recompiled to a Dalvik executable, the file. An optimised dex is an . A single classes.dex can hold only methods, so larger apps use multidexing. Inspect a dex with .

try it before revealing

Read next

  • 2026-06-20 · Byte-SizedGetting and Decompiling an APK
  • 2026-06-30 · LabsHTB — Canvas
  • 2026-06-18 · CheatsheetsSQL
  • 2026-06-16 · CheatsheetsPython

← All PostsSCHIZO Brain Dump
SCHIZO

Suhesh Kasti — AppSec & Offensive Security

Navigate

  • ▸ Projects
  • ▸ Brain Dump
  • ▸ Cyber Tools
  • ▸ About
  • ▸ Contact
  • Download CV

Connect

  • ◆ GitHub
  • ◆ LinkedIn
  • ◆ Twitter
  • ◆ YouTube
  • ◆ Telegram
© 2026 SCHIZO

Press / to search