JEB Change Log

JEB v2.2.9 (September 5, 2016)

Maintenance release. Bug fix in the UI framework.

Desktop client:
- UI fix: Workaround for Equinox behavior changes introduced in Eclipse Mars, which could lead to ever-growing storage use on Windows platforms
- Lazy initialization for big arrays
- Debuggers views: Minor improvements

Core and Core Modules:
- Temporarily backup JDB2 databases before saving (can be disabled in the options)

Debuggers:
- Better interpreter "invoke" commands
- Other fixes

JEB v2.2.8 (September 1, 2016)

Maintenance release. Final 2.2 branch update before 2.3 beta release.

Desktop client:
- Support unit auto-opening based on artifact type, eg, DEX units for an APK - can be disabled (option .ui.AutoOpenDefaultUnit)
- Remember last open folders properly
- Avoid rendering if a unit is not fully processed
- Text viewer: Fix: avoid jumpy caret on corner-case document updates
- Text viewer: Fix: refresh green bar on mouse wheel
- Text viewer: Fix: indicator triangle was not displayed when caret on last line
- Text viewer: Fix: hover box properly disposed
- Fix: check sub-unit boundaries
- Fix: hardened xrefs dialogs, do not throw on errors
- Various bug fixes

Core and Core Modules:
- Support for multiple plugins entry-point in single Jar
- DEX: do not throw on bad addressToCodeCoordinates() conversions
- Dalvik: Fix: do not throw on illegal access to array- or switch-instruction data
- Various bugfixes

Debuggers:
- JDWP: Fix: disallow breakpoint on types
- Interpreter: allow recursive commands
- Interpreter: JDWP: allow retrieving RefType data from object
- Fix: do not throw in Demo build when attempting to debug an non-merged multi-DEX
- Fix: manage error in readMemory on failure 

Android DEX Decompiler:
- API: do not throw in some non-dangerous cases (eg, attempt to retrieve combined operator of a non-combined operator)
- Other minor changes to support new serialization annotations and checks in 2.3

PDF Analyzer:
- N/A

JEB v2.2.7 (August 12, 2016)

Amendment to v2.2.6 - an important fix had not shipped with the previous release.


JEB v2.2.6 (August 4, 2016)

Debuggers improvement (stability and features). Major JEB 2.3 is under development; we will provide details soon.

Desktop client:
- Debuggers: Process/Threads new tab: memoryCode which allow to see live memory data and live disassembly code.
- Debuggers: VM/Locals view: Display improvements: add Final and static flags, detect the Class for null objects, display "null" instead of "id=0"
- Debuggers: VM/Locals view: add a right click action to call toString() on objects
- Debuggers: VM/Locals view: Performance improvements: split arrays in element groups when more than 100 elements, do not preload objects.
- Bugfix: Attempt to attach a debugger to a non-debuggable unit would loop infinitely
- Bugfix: Overview bar scrollbar on native debuggers for addresses larger than 0x80000000
- Bugfix: Regression if JEB path contained spaces with some Java runtimes
- Bugfix: Disappearing saved "recently opened files" and "recently executed scripts"
- Information: View memory usage in About box

Core Modules:
- APK: bundling Android Nougat resource framework API 24 (rev. 2)
- ARM: bugfix: fail gracefully when VSTM and VLDM have incorrect parameters
- X86: bugfix: minor

Debuggers:
- Bugfix: On Step into, check that the breakpoint is reached by the current thread (this caused breakpoint to be reached several times, UI slowed down, and impossibility to detach or close project)
- Bugfix: Breakpoints on overloaded methods was not working properly
- New parameter DoNotUseNativeDebugger which can have 3 values: DEFAULT, NEVER, ALWAYS to indicate if the user wants to connect gdb native debugger (DEFAULT will only connect gdb when the target APK embeds native libraries)
- Raise notification for devices older than Android 5.1 where JDWP implementations have bugs
- Allow modifying Java variables (primitives and String)
- Improve JDWP performance (cache Class Operations)
- Reduce JDWP timeout to 15s (instead of 30s)
- Interpreter: allow field and array element picking (example: "readobj 4023 var1.var2[3]" or "readobj this.var1.var2")
- Interpreter: add "invoke" entry to remotely call a method. BE CAREFULL that deadlock can happen if current paused thread requires some action

Android DEX Decompiler:
- Fix: overly aggressive array-inlining optimizations
- Other fixes

JEB v2.2.5 (June 13, 2016)

Support for MIPS and Aarch64 + Maintenance update. (All Android ABIs but MIPS64 have now full debugging support!)

Desktop Client:
- Friendlier update mechanism on license expiration and support for manual update
- Code hierarchy: option to show all items, including external types
- Debuggers: support for generic copy action via context menu
- Debuggers: log fragments to track debugger events
- Debuggers: stack view fragments if available
- Debuggers: force-detach if attach was unsuccessful
- Fix: keyboard bindings issues
- Fix: version comparison on update was preventing required UI state refresh
- Other bugfixes related to the UI framework

Core Modules (including Disassemblers):
- MIPS disassembler (MIPS32)
- Various improvements for ARM/ARM64
- Support code define/undefine actions
- Better processing of ELF symbols
- ARM: PLT stub detection for ELF

Debuggers:
- MIPS: debugger for Android native libraries compiled for 'mips' ABI, with support for single-step, tracing, breakpoints, etc.
- Aarch64: debugger for Android native libraries compiled for 'arm-v8a' ABI (aka ARM 64)
- Stability improvements, race condition and synchronization issues were fixed
- Support for 'write registers' command in interpreter for native debuggers 

Android DEX Decompiler:
- N/A

PDF Analyzer:
- N/A

JEB v2.2.4 (May 25, 2016)

Maintenance update + Disassembly support for ARM 64. Debugging support for ARM 64 is coming next, along with MIPS.

RCP Client:
- Debuggers: support for editable type hints for Dalvik variables, including objects/arrays
- Text viewer: normal caret behavior is now the default behavior (customizable)
- Text viewer: smarter event processing from plugins to avoid useless refreshes
- Various bug fixes (text viewer, navigation bar, interpreter window, etc.)
- Limited logger length, customizable via UI property

Core and Essential Modules:
- Aarch64 (ARM v8 64-bit) disassembly support
- Fix: corner-case unit processing after deserialization 
- APK: fixes + shipping latest API 23 Android Framework (dated March)
- API: added AbstactUnit.onPropertyChange()
- Minor changes and improvements

Debuggers:
- Provide effective (refactored) addresses to clients
- Dalvik: interpreter: added "readvar" and "readobj" commands
- API: support for type hints
- Stability improvements 

DEX Decompiler:
- Performance improvements (memory usage)
- Added plugin option to set decompilation timeout 
- API: added IJavaClass.getSupertype()/getImplementedInterfaces()
- Java 8: render "default" keyword for default implementations in interfaces
- Java 8: proper syntax/support for calls to super interface's "default" method
- Corner case bugfix in the AST optimizer

JEB v2.2.3 (May 4, 2016)

The Android debuggers are now public (see v2.2+ changes). Full support for multi-Dex merging.
Next up: support for ARM v8 64-bit in JEB v2.2.4.

RCP Client:
- Speeding up project tree rendering and refreshes for high-yield artifacts (eg, large APKs) 
- Reverting to UI package v2 (RCP 4.4.2 based) for Mac platforms
- Fix: All invocations of the client will consistently pull workspace information from bin/

Core and Essential Modules:
- APK/DEX: full support for multi-Dex merging (beyond 64Krefs limitations)
- DEX: assembly rendering with higher granularity (one side-effect is faster rendering for large classes)
- DEX: assembly cache fix-up (could lead to high memory usage)
- DEX: memory usage improvements
- APK: Fix: identification was failing on some Zip files
- API: Fix: WrapperUnit: do not recreate presentations that already exist
- API: added IInteractiveUnit.executeAction() with no-notifying support for plugins
- API: better documentation using Doclava
- Tool: ADB: support for path expansion (~)

DEX Decompiler:
- API: addition of IJavaOperator.getOperatorType()

JEB v2.2.2 Beta (April 24, 2016)

Final update for JEB 2.2 Beta. JEB 2.2.3 will be made available to all users shortly.

RCP Client:
- UI support package major update (v3, RCP 4.5.2 based)
- Fix: Windows start-up script

Core and Essential Modules:
- Debuggers: stability improvements and new features (eg, findmem)
- APK: bugfix: file resource leak: temporary files in %tmp% were not deleted properly
- ARM: stability and parser improvements
- Minor fixes related to resource leaks

DEX Decompiler:
- API: getElementType() for all AST elements
- API: added missing getSignature() method for Method elements
- Other fixes

(Beta available upon request for customers with a valid yearly subscription.)

JEB v2.2.1 Beta (April 13, 2016)

An update on the Dalvik and native debuggers - still in Beta - and a specialized API to deal with the finer details of DEX.
Blog #1 (debuggers, general) / Blog #2 (debuggers, API) / 

RCP Client:
- Debugger: full memory view (read-only, bytes only for now)
- Debugger: support for Run-to-line
- Debugger: allow copy to clipboard for Variables
- Debugger: Dalvik: view all fields, including super-type fields
- Shortcut: Ctrl+M to maximize/minimize views, Ctrl+T to toggle the toolbar
- Various bug fixes

Core and Essential Modules:
- Debuggers improvements, fixes and additions (sample code for API)
- DEX API allow full access to all DEX elements (see IDexUnit interface) (sample code for API) 
- APK API (partial) (see IApkUnit interface) 
- XML: added missing top-level comments
- Various bug fixes

(Beta available upon request for customers with a valid yearly subscription.)

JEB v2.2.0 Beta (April 3, 2016)

- Native code support: ARM, Intel x86 and x86-64
- Android debuggers: Dalvik and native
- Details at www.pnfsoftware.com/blog/jeb-android-debuggers

(Beta available upon request for customers with a valid yearly subscription.)

JEB v2.1.4 (March 28, 2016)

Maintenance release, bugfixes and API changes.

RCP Client:
- UI API: allow retrieval of focused unit via getFocusedView()
- UI API: possibility to open a view via openView()
- Allow artifact file path update in JDB2 database

Core and Essential Modules:
- XML: files having a size of less than 4 bytes could be incorrectly identified as XML files
- ELF: units are now serialized
- API: added getItemObject() to interactive unit interface
- Bugfix: support loading of JDB2 if artifacts are missing
- Dispose all units on close event
- Unit processing handled by the main processor, per SPI change

DEX Decompiler:
- Fix: getComments and getAddressLabels return per-class maps, as opposed to the full DEX map

JEB v2.1.3 (March 15, 2016)

Layout manager and various updates before 2.2 beta.

RCP Client:
- Layout manager: save and restore layouts automatically
- Prefer loading the most recent JDB2 instead of the first one
- UI bug fixes

Core and Essential Modules:
- APK plugin: Default frameworks/ directory is now rooted in user's home folder
- ELF plugin: Tighter checks
- API: Marks in text documents
- Minor changes and fixes
- Added utility routines (for text documents, general utility, etc.)
- Headless client for easy license key generation in air-gaps

DEX Decompiler:
- AST tags (rendered as Java text marks)
- Bugfix: regression regarding rendering of static method calls in anons
- API: Added getInferredType() to public decompiler interface

JEB v2.1.2 (February 16, 2016)

Additional details can be found on our blog.

Official Client:
- Support for multiple UI layouts
- Option to keep the currently selected node in project tree in-sync with the current view ("auto-open units")
- Option to allow same-type units to be opened in same or new view
- Text views improvement and better text navigation
- Options dialog improvements
- Minor UX tweaks and fixes

Core and Essential Modules:
- Python script support via Jython is now part of the core API
- The core jeb.jar includes one implementation of a headless client that will execute
  Python scripts (for Business and above builds; command-line switch: --script)
- APK module: option to merge multi-DEX APKs when possible (the option is enabled by default)
- DEX module: allow "pX" rendering in register-ranges
- XML module: bugfix: malformed XML header (missing trailing '?')
- Allow empty input
- Miscellaneous bug fixes

DEX/Dalvik Decompiler:
- Fix: Rendering issue with static methods of base class of anonymous class

PDF Analyzer Module:
- Support for XFA (XML Forms Architecture) fragment streams reconstruction and parsing (blog)

JEB v2.1.1 (January 15, 2016)

Minor update, mostly improvements in UX of the desktop client. 

RCP Client:
- Support for view replacement (this makes navigating decompiled code easier)
  ("Sticky" views can be opened by right clicking a unit, and selecting "Open a new view")
- Better navigation (forward, backward), with cross-view support
- Better network proxy support
- Fixes regarding back-end events processing by the client
- Minor UX tweaks

Core:
- Bugfix: APK without resource folder was showing an empty folder in UI
- Support for network proxy (refer to the FAQ for setup instructions)
- Second-chance if network connectivity fails and the build requires it
- Children of ELF units are now properly processed
- Bugfix: Soft delegation for ELF sections (side-effect is Android OAT processing is re-enabled)
- Miscellaneous bug fixes

DEX/Dalvik Decompiler:
- Bugfix: anonymous classes within static methods were not rendered properly

JEB v2.1.0 (December 8, 2015)

Major release. Includes: better navigation, augmented API (UI-API, Java AST API), persistence of decompiled code, etc.
Paves the road for the JEB 2.2 release which contains various machine code parsers.

Additional context and details about those changes available on our blog.

RCP Client:
- Navigation/Overview bars in text viewers - see blog
- Overview bars support rendering of metadata provided by interactive units - see scripts
- Implemented augmented UI-API (refer to changes in Core) - see scripts
- Improved logging in development mode
- Better asynchronous jobs
- Better algorithm to determine which panel should receive views 
- F2 shortcut for client script execution
- Better navigation in text views, including bug fixes
- Regular expression text searches
- Disabled Option panels areas that are not available in a given build
- Disabled GTK3
- Prepared support for E4 Mars 
- Miscellaneous bug fixes

Core:
- Augmented Client API for UI clients (allow interaction with views, fragments, etc.) - see scripts
- Java AST API for manipulation of Java source units
- The API underwent several changes that will require code fix-ups in existing plugins - see blog
- Metadata manager for interactive units
- Unit interfaces updated to support persisted and transient children units
- Unit formatter interfaces updated to support persisted and transient documents
- Better JAR plugins loader, will try to load newest version only
- Various bug fixes and engine refactoring for performance
- Native ELF (32, 64) and PE (32, 64) plugins
- Fixes in serialization; some JDB generated by JEB 2.0 might be incompatible with 2.1
- Compression/encryption support added for JDB2 (30% of original size)
- Under-the-hood support for processor-based code units, part of the public API in JEB 2.2

DEX/Dalvik Decompiler:
- Support for the nwly-introduced Java AST API, offering read/write access to decompiled code
  (The Java AST API is slightly different than JEB1's - refer to our blog for a detailed change log)
- Decompiled code is persisted in the JDB2 files
- Decompiler unit name reflects the current effective class name

PDF Module:
- Support for persistence: project saved to JDB2 files
- Various bug fixes and code refactoring improvements

JEB v2.0.15 (December 1, 2015)

This is the final 2.0 release!
The 2.1 branch has been in the works for quite some time. It is scheduled for publishing on December 8. 

RCP Client:
- Temporary workaround for the MacOS-specific issue with Eclipse RCP (NPE on Control.internal_new_GC)
- Export Java UT8-encoded
- Miscellaneous bugfixes

Core/Modules:
- Various bugfixes

JEB v2.0.14 (November 12, 2015)

This release adds support for client scripts in Python.
Most of our workload is focused on the upcoming major releases 2.1 and 2.2.

RCP Client:
- Support for client scripts (in Python, using Jython) - blog post
- Text viewer: support for word-wrapping in source views
- Text viewer: tooltip in navigation bar
- Bugfix: text search
- Miscellaneous bugfixes and increased verbosity

Core:
- Public API package for client scripts (com.pnfsoftware.jeb.client.api.**)
- Better persistence, loading and saving large projects uses less memory
- Bugfix: logger CRLF
- Bugfix: unit child removal

Modules:
- (dex) bugfix: unit child removal
- (dcmp_dex) bugfix: no 'this' for abstract static methods

JEB v2.0.13 (October 15, 2015)

A minor maintenance release. Most work is focused on the upcoming v2.1.

RCP Client:
- Maintain caret's column position when scrolling in text views 
- Developer portal (refer to Help menu and blog)
- Various bug fixes and changes

Core:
- Initial support for plugin contributors and unit contributions
- Prevent some plugin initialization errors from corrupting the engines
- Fixed issue in logger
- Various bug fixes

JEB v2.0.12 (September 29, 2015)

RCP Client:
- Allow engines (back-end) plugins execution via the File/Engines menu
- Verify development plugins classnames in Options panel
- Limit line length in text fragments (configurable)
- Asynchronous decompilation when triggered from xrefs or when following items
- Allow deletion of units and unit trees
- Bugfix: filter text in dialog boxes was conflicting with Enter key
- Bugfix: invalid window error on GTK
- Miscellaneous bug fixes

Core:
- Support for optimized DEX (odex) files [blog]
- Stronger support for illegal/invalid DEX opcodes
- DEX decompiler: added missing support for cross-references on variables
- Unit deletion (experimental)
- Minor API changes
- Miscellaneous optimizations to reduce memory footprint

JEB v2.0.11 (September 22, 2015)

RCP Client:
- Interruptible save/load project
- Allow users to enable or disable plugins (see File/Engines)
- Fast filter search in large trees
- Lazy loading of strings view to decrease memory usage and speed up loading of views
- Cross-references navigation across the source (decompiled) views
- Navigation from code string view to string reference in assembly
- Possibility to display type hierarchies in source views
- More compact view names for increased readability
- More consistent status bar behavior
- Bugfix: shell retrieval
- Bugfix: word-wrap in text search
- Bugfix: text dialog adjustment on resize
- Bugfix: do not restart a decompilation if already started
- Bugfix: allow program close on error
- Miscellaneous bugfixes and improvements

Core:
- Faster persistence mechanism (up to 5 times)
- Dynamic activation and deactivation of plugins
- Better matching assembly code to/from decompiled source code

JEB v2.0.10 (September 14, 2015)

RCP Client:
- Locate current unit in project tree
- Text views: Ctrl/Cmd + Shift + Up|Down to perform regular text scrolling
- Bugfix: tree navigation could focus the filter text too early
- Bugfix: NPE for new users

Core:
- N/A

JEB v2.0.9 (September 10, 2015)

RCP Client:
- Export Decompiled code is interruptible
- Smoother text scrolling
- Bugfix: code hierarchy tree not refreshing properly
- Bugfix: null pointer exceptions on Jump in text views

Core:
- N/A

JEB v2.0.8 (September 9, 2015)

A maintenance release with stability improvements and export functionality.

RCP Client:
- Export decompiled code via the File menu
- Better filtering and search in all tree and table views
- Persistence of UI widget properties (eg, tables column widths)
- More status bar messages, such as location in project tree
- Bugfix: layout manager could show duplicate tabs
- Bugfix: memory leak in the client
- Bugfix: infinite wrap-around search in text views if text not found
- Bugfix: fixed potential dialog box issues on Linux GTK
- Bugfix: flickering in text views
- Bugfix: potential scroll bar errors in text views

Core:
- Additional changes for planned v2.1 (debugger module API)

JEB v2.0.7 (September 2, 2015)

A maintenance release with various UI improvement and under the hood changes for the upcoming 2.1 release.

RCP Client:
- Better layout manager
- Navigation between views more intuitive
- Powerful "Filter on same key/value" option in tables and trees
- Better filtered trees and tables, with optional filter
- Bugfixes and usability tweaks

Core:
- Bugfix in events notification manager
- Additional changes for planned v2.1 (debugger module API)

JEB v2.0.6 (August 25, 2015)

This release is primarily a user experience improvement.

RCP Client:
- Shells and widgets's position and size history 
- Contextual menus with actions in text document views and other unit views
- More intuitive navigation from code hierarchy views
- Unit views location preferences
- Allow complex filters on options and other tree/table views
- Minor UI bug fixes (related to toolbars, icons, keyboard shortcuts, etc.)

Core:
- User-defined limit on recursive processing for deeply nested artifacts

Analysis plugins:
- Microsoft Compound file (OLE) analysis plugin for Excel and Powerpoint files (open-source)

JEB v2.0.5 (August 18, 2015)

Core: 
- APK module: changes to handle Android API 23 (Marshmallow) framework
- APK module: support for resources protected by DexGuard Enterprise
- DEX Decompiler module: performance improvement
- Miscellaneous bug fixes and stability improvements

Analysis plugins:
- MIPS 32-bit PoC disassembler (open-source)

JEB v2.0.4 (August 10, 2015)

RCP Client:
- Locale bugfix
- Tree auto-expansion for code units
- MOTD facility
- Styling options (colors and font)
- Better error handling
- Provide more hints to floating clients

Core: 
- Enum class identifiers
- Support expansion for tree documents

Analysis plugins:
- Adobe PDF plugin (customers only)
- Linux ELF plugin (open-source)
- Android OAT parser (open-source - DEPRECATED)
- PKM/ETC1 images parser (open-source)
- OBB Android Expansion packs plugin (open-source)
- FAT (File Allocation Table) parser, used by OBB (open-source)

JEB v2.0.1 (August 1, 2015)

Initial product release

JEB v1.x (2013 - 2015)

1.5.201502120

  • Localization to multiple languages: Chinese, French, German, Italian, Japanese, Korean, Portuguese, Russian, Spanish, Turkish
  • Ability to export project to Smali structure for rebuilding (File/Export/Smali)
  • Option to port debug information (variable names) to decompiled Java (Edit/Options/Decompiler/Parse debug info)
  • Partial support for MultiDex files (classesX.dex files are merged if DEX limits are not reached)
  • API: AST objects are now unique across a session (careful, this might break older plugins)
  • UI: Item Info (I) is more complete for methods: all overrides are displayed, including parents and cousins
  • UI: Item Info (I) navigation in Java view (double-click to follow on class hierarchy or method overrides)
  • UI: allow toolbar hiding
  • Bugfix: string concatenation optimization
  • Bugfix: safe visualization of malformed assets
  • Bugfix: Added missing assembly directives
  • Minor engine fixes
  • Updates and other communication done exclusively over HTTPS
  • EULA change


1.5.201501120

  • Assembly/Java code view split (Ctrl/Cmd + T)
  • Interruptible Java code exporting
  • Bugfix: better compatibility with Smali 2 syntax
  • Allow connect-retries after loss of connectivity for Floating clients
  • API bugfix: typos on getCombinedOperator, isCombinedOperatorAssignment
  • Support for Python 2.7 scripts (via Jython 2.7 beta)
  • Migrated to SWT 4.4


1.5.201410220

  • Full support for malformed M-UTF8 strings
  • Improved support for obfuscated code
  • Added Android Lollipop (API 21) framework
  • API: Ability to rename Java identifiers


1.5.201410040

  • Improved resolution for obfuscated inner classes
  • API: inner class information
  • Ability to load multiple/different resource frameworks (upcoming blog)
  • Latest API 'L' (level 20+) Android framework
  • More information displayed by the floating controller web front-end
  • Bugfix: floating controller was not releasing seats on certain conditions
  • Various bug fixes, minor engine improvements, and code refactoring


1.5.201408040

  • Support for complex Jar plugins (blog)
  • Better assembly rendering for immediate-handling instructions
  • Latest API 19 Android framework
  • API: allow JEB termination on script error
  • Bugfix: better inner class rendering when rendered outside of containing entity
  • Bugfix: stronger resource parsing for some oddly-formed APKs
  • Bugfix: missing annotation parameters


1.5.201406220

  • Bugfix: non-commutative additions with Strings
  • Bugfix: API field types for .length and .class
  • Stronger normalization and decompilation for method invocations
  • Bugfix: JDB record compressor memory leaks
  • Bugfixes: lots of minor presentation bugs, API cleanup, etc.


1.5.201404100

  • Conditional expressions ("cond ? x : y")
  • API: Conditional expressions
  • API: Java AST element tagging (tutorial blog to be published soon)
  • Better array representation in Assembly view
  • Bugfix: class renaming corner-case (internal class is referenced, not present)
  • Bugfix: method generation when type not present
  • Bugfix: first parameter for native non-abstract methods
  • Bugfix: AST optimizations for combined operators
  • API: added Ifstm.size()
  • API: added Method.isStatic()
  • API: added TextView.setCaretPosition()
  • API: access to file information (eg, hashes) via JebInstance.getAnalyzedFileInformation()
  • Extra verbosity when logging Java scrips errors
  • UI fix: concurrency issue with Plugins menu
  • UI fix: avoid line breaks on separators
  • Manual update check (eg: multi-user licenses, air-gapped environments, etc.)
  • Updated the Updater system (faster, more reliable downloads)
  • EULA change


1.5.201403100

  • Migration to SWT 4.3.
  • Reorganized JEB program structure.
  • Decompilation: support for annotations.
  • Decompilation: better accessor inlining.
  • API: added access to APK certificate, resources,and assets.
  • UI: Arrow cursor in non-editable views.
  • UI: Better certificates formatting, added fingerprints.
  • UI: Better search box in all views.
  • Bugfix: packages java.lang.* are explicitly imported.
  • UI bugfix when word-wrap was disabled in Java view.
  • UI bugfix: color remnant in class hierarchy.
  • UI bugfix: tab key sometimes not working when switching back from Java to Dalvik.
  • Always store full paths in last opened entries.


1.5.201402190

  • Better decompiled output (goto reduction).
  • Fixed malformed overly long import statements when word-wrap is enabled.
  • Fixed decompiled output UI glitches.
  • Added For statement support in the API.
  • Added Monitor statement support in the API.


1.5.201312210

  • Support for floating licenses. More information on the FAQ page.
  • Added Android framework version 19 (KitKat).
  • Bugfix: improved parser's robustness, DEX methods are parsed even if they're incorrect.
  • Bugfix: various fixes.


1.4.201311020

  • Warn on suspicion of method hiding (see Axelle Apvrille's paper).
  • Bugfix: MacOS specific issues on assembly export.
  • Bugfix: Inner class renaming issues.
  • Bugfix: Focus requests on code views on edge cases.
  • UI: Better color scheme handling.
  • Startup scripts update (check JAVA_HOME first).
  • Preparation for floating license support in 1.5.
  • Various engine updates.


1.4.201309270

  • API: support for user data blocks in JDB files.
  • API: UI isViewVisible.
  • Bugfix: locale issues with floating numbers.
  • Bugfix: Support for DSA certificates.
  • Increased verbosity for invalid certificates.


1.4.201309040


1.3.201308090

  • API level 3: full DEX access.
  • Context menus in code views.
  • Bugfix: API method JebInstance.getInputPath.
  • Minor UI fixes.
  • Minor core engine changes.


1.3.201307290

  • Bugfix for OSX.
  • Bugfix in TextView.
  • Documentation updates.


1.3.201307250

  • Navigation bar.
  • Library signature generation and recognition.
  • Sample signature sets for common Google packages (Android-Support, Admob, Analytics.)
  • Native Java is now supported for scripts and plugins.
  • Decompiler engine performance improvement (up to 300%).
  • API level 2.
  • Auto-updater.
  • Asynchronous decompilation, can be interrupted by the user.
  • Workaround: File/Open and Window Maximize bugs with OSX 64-bit + Oracle Java 7.
  • Policy: The Internet connection requirement for Automation mode has been lifted.


1.2.201307100

  • More robust/flexible parsing of APK certificates.
  • Allow parsing of resource-only apps (no DEX file).
  • Better Options/Preferences layout.
  • Customizable xrefs dialogs.
  • Better goto dialogs.
  • Increasing verbosity for parsing errors in scripts.
  • Fixed plugins directory not found error.
  • Fixed Open dialogue non Linux-compliant file filters.


1.2.201306280

  • Plugins (aka, Custom Actions) support.
  • API: specific code views, get code positions.
  • API: access text comments.
  • API: script arguments.
  • API: generate disassembly.
  • UI: better Mac menus, and true Mac keyboards shortcuts and key bindings.
  • UI: warn if JDB is a potential match for a DEX/APK.
  • Bugfix: DEX loader on specific try-handler edge cases.
  • Bugfix: options dialog layout.


1.2.201306191

  • API: added timeout option (UI, Automation) and user-controlled interruption (UI).
  • UI: option to auto-save to JDB.
  • UI: better options layout.
  • UI: MacOS-specific improvements (application name, Mac menu bindings, etc.)
  • Option to generate identifier names from their types.
  • Bugfix: sub-annotations in assembly, duplicate parameter lists.
  • Bugfix: Jython and inner classes.
  • Bugfix: blacklist processing for class hierarchy package expansion.
  • Bugfix: edge cases during assembly generator.
  • Bugfix: in AST optimizer regarding string concatenation.
  • Many engine improvements and bugfixes to support edge-cases and obfuscation.
  • Upgrading to SWT 4.2.2


1.2.201306050

  • Option to export assembly view to HTML.
  • Class hierarchy filter to let the user decide what packages should not be auto-expanded.
  • Better decompilation for certain types of obfuscated or mangled idioms.
  • Automatic depency installers (for SWT and Jython - requires an Internet connection.)
  • Bugfix: decompilation timeout.
  • Bugfix: class hierarchy update conflict when packages and classes had the same name.
  • Bugfix: script loader path issue.
  • Bugfix: smarter default font size.
  • Bugfix: other minor updates and code refactoring.


1.2.201305230

  • API level 1 for scripts.
  • Automation mode (command-line switch '--automation').
  • Added option to generate numbers in hexadecimal by default in the decompiled view.
  • Bugfix: parsing DEX files with 0-sized try handlers.
  • Lighter builds, externalized SWT and Jython dependencies.


1.1.201305070

  • Constants can be rebased (octal, decimal, hexadecimal) in decompiled view. (Shortcut: B.)
  • Variable are rescoped properly in the AST.
  • Multidimensional arrays instantiation in the AST.
  • Synthetic fields and methods can be renamed.
  • Bugfix: fixed horizontal auto-scroll on search.
  • Bugfix: removed trailing colon after renaming labels in decompiled view.
  • Bugfix: visual, interace can extend 1+ interface(s) in decompiled view.


1.1.201304220

  • Coherent method name refactoring: parent classes methods and derived classes overrides are consistently renamed.
  • Variable-argument methods in decompiled Java.
  • More AST rendering options can be controlled via the Options menu.
  • Option to re-decompile a class (useful when engine options are being changed.)
  • Method 'throws' rendered in Java view.
  • Keyword 'super' for non-constructors in Java view.
  • Bugfix: duplicate imports in Java import list.
  • Bugfix: null constant rendering in Java view.
  • Bugfix: AST constant negation in very specific cases.


1.1.201304150

  • Better decompiled Java variable definition.
  • Better type propagation.
  • Timeout when decompiling methods to avoid stalling issues.
  • XML resource parser strengthened against various obfuscation techniques.
  • Word wrap option in decompiled Java view and XML views.
  • Bugfix: exception variables can now be renamed.
  • Bugfix: class initializer recognition when the flag has been removed (obfuscation.)
  • Bugfix: DEX parsing error for referenced undefined outer classes.
  • Bugfix: empty switches in assembly view.
  • Bugfix: class/const issue in assembly view.


1.1.201303290

  • Try/Catch support in the decompiled view.
  • More aggressive code optimizations.
  • Added AST strings optimizations.
  • Added AST goto/continue optimizations.
  • Bugfix in DEX parser.
  • Bugfix in binary-XML decompressor.
  • Class hierarchy state is saved when renaming classes.
  • Revamped the Options interface.
  • Various UI bugfixes.


1.0.201303110

  • DEX parser handles the (short-lived) extended opcodes, or jumbo generalized opcodes.
  • Added more DEX parser options (check flags, hashes, etc.)
  • Java display option to order methods by access flag (private go last)
  • Bugfix: more accurate navigation history in the decompiled view.
  • Bugfix: follow on some methods in Java triggered errors.
  • Bugfix: AST optimization for certain types of optimized accessors.
  • Bugfix: Windows startup script space in path issue.


1.0.201303030

  • AST optimization: outer class access from inner class now use the OuterClass.this.X syntax.
  • Real code cross-references in the Java view (Ctrl-X)
  • Better support for Arxan-protected files.
  • Assembly output option, parameter registers can be rendered as pX instead of vX.
  • External classes items have their own color scheme.
  • Option to extract all resources/assets to a folder.
  • Removed useless cast to java.lang.Object.
  • Minor AST optimizer fixes.
  • Minor assembly output fixes.


1.0.201302220

  • Bugfix: issue when loading JDB files.
  • Bugfix: Mac-specific issue when quitting JEB, the Java VM was not terminated properly.


1.0.201302210

  • Reinstated the APK certificates parser and tab. Can be disabled from the Options.


1.0.201302110

  • Navigation history across classes in the Java view.
  • Navigation history fixed in Assembly view.
  • Option to decompile all / extract all to Java files.
  • Fixed same-class constructor calls (eg, this())
  • Minor fixes (versioning, changelist...)


1.0.201302061

  • Synthetic accessors in inner classes are now inlined.
  • String formatting (using the string concatenation operator.)
  • Better while(true) optimizations.
  • For-loops creation.
  • Bugfix: XML parser.
  • Bugfix: predicate simplification.


1.0.201302030

  • Unicode strings can be printed 'as much as possible' in the Assembly and Decompiled views.
  • Issues fixed with inner class support / obfuscation.
  • Graceful error handling during type propagation, instead of just refusing to decompiled the method.
  • Option to disable interactivity in Assembly view when the number of methods reaches a threshold.
  • Graceful recovery on invalid MUTF8 strings.
  • Bugfix: class original name / current name issue in Class Hierarchy view.


1.0.201301280

  • Initial v1 release