JEB 1.x Changelist (Legacy)

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