encounter/objdiff
A local diffing tool for decompilation projects
30 Releases
Latest: 3w ago
v3.7.2Latest
📋 What's Changed
- Fix several issues with string literal detection by @LagoLunatic in https://github.com/encounter/objdiff/pull/351
- Add config option to limit which string literal encodings are used by @LagoLunatic in https://github.com/encounter/objdiff/pull/356
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.7.1...v3.7.2
v3.7.1
📋 What's Changed
- Fix cache issue when parsing the same file with different `side` params by @macabeus in https://github.com/encounter/objdiff/pull/341
- Add support for `R_ARM_THM_PC8` and `R_ARM_THM_PC11` by @macabeus in https://github.com/encounter/objdiff/pull/342
- Fix extab hover window display issue by @CelestialAmber in https://github.com/encounter/objdiff/pull/344
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.7.0...v3.7.1
v3.7.0
📋 What's Changed
- Breaking Change: Add symbol kind and structured flags to one-shot diff output by @encounter in https://github.com/encounter/objdiff/pull/337
- This adjusts the CLI JSON/Protobuf output in a backwards-incompatible way.
- Fixed: Symbol index-to-addend bug by @ieee802dot11ac in https://github.com/encounter/objdiff/pull/336
- Added: Demangle function name on decomp.me scratch creation by @0x5abe in https://github.com/encounter/objdiff/pull/329
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.6.1...v3.7.0
v3.6.1
📋 What's Changed
- Merge GNU function and data sections by @codeshaunted in https://github.com/encounter/objdiff/pull/327
- Automatically match MSVC symbols in anonymous namespaces by @rjkiv in https://github.com/encounter/objdiff/pull/325
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.6.0...v3.6.1
v3.6.0
📋 What's Changed
- Implement go to next/previous difference by @LagoLunatic in https://github.com/encounter/objdiff/pull/313
- Fix the symbol filter not working in the mapping view by @LagoLunatic in https://github.com/encounter/objdiff/pull/315
- add more i386 elf relocs by @codeshaunted in https://github.com/encounter/objdiff/pull/319
- Significantly improve diffing performance and fix minor bug with bss section match percents by @LagoLunatic in https://github.com/encounter/objdiff/pull/316
- Restore objdiff-cli oneshot mode (JSON output) by @encounter in https://github.com/encounter/objdiff/pull/323
- Handle IMAGE_REL_PPC_ADDR32 size in Coff by @HaydnTrigg in https://github.com/encounter/objdiff/pull/320
- Better COFF String Detection and Big Endian Wide Strings by @HaydnTrigg in https://github.com/encounter/objdiff/pull/321
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.5.1...v3.6.0
v3.5.1
📋 What's Changed
- Fix non-strings also being escaped when copied by @LagoLunatic in https://github.com/encounter/objdiff/pull/307
- Fix mouse hovers overriding typing in the symbol search field by @LagoLunatic in https://github.com/encounter/objdiff/pull/308
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.5.0...v3.5.1
v3.5.0
📋 What's Changed
- Allow clicking on branch arrows to scroll target into view by @LagoLunatic in https://github.com/encounter/objdiff/pull/302
- Improve automatic symbol pairing for functions with compiler-generated names by @LagoLunatic in https://github.com/encounter/objdiff/pull/303
- Combine .init sections separately from .text sections by @LagoLunatic in https://github.com/encounter/objdiff/pull/304
- Fix special ASCII characters not being escaped when copied to clipboard by @LagoLunatic in https://github.com/encounter/objdiff/pull/306
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.4.5...v3.5.0
v3.4.5
📋 What's Changed
- Fix "Unsupported ARM implicit relocation 29" on armcc binaries by @Darxoon in https://github.com/encounter/objdiff/pull/296
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.4.4...v3.4.5
v3.4.4
📋 What's Changed
- Added: Support more string encodings and allow copying unescaped strings by @LagoLunatic in https://github.com/encounter/objdiff/pull/288
- Added: Ignore hidden symbols when diffing data sections by @LagoLunatic in https://github.com/encounter/objdiff/pull/291
- Removed: `--mapping`, `--selecting-{left,right}` from CLI (https://github.com/encounter/objdiff/commit/d162fe847e98fe4ea67798f71aa6751f643a0edc)
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.4.2...v3.4.4
v3.4.2
📋 What's Changed
- ARM: Fix attempting to disassemble `.word` with less than 4 bytes remaining by @AetiasHax in https://github.com/encounter/objdiff/pull/285
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.4.1...v3.4.2
v3.4.1
📋 What's Changed
- Added: Adjust symbol name matching logic for GCC by @dbalatoni13 in https://github.com/encounter/objdiff/pull/278
- Added: "Copy" button in disassembly view by @boludoz in https://github.com/encounter/objdiff/pull/271
- Fixed: ARM: `.word` not on 4-byte boundary by @AetiasHax in https://github.com/encounter/objdiff/pull/282
- Changed: Upgrade all dependencies (including egui, cwextab, rabbitizer, unarm) (827f4a42bd4168c35892164b2dde5ad6b3258b63)
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.4.0...v3.4.1
v3.4.0
📋 What's Changed
- Update unarm to 2.0 by @AetiasHax in https://github.com/encounter/objdiff/pull/274
- Update `gnuv2_demangle` by @AngheloAlf in https://github.com/encounter/objdiff/pull/275
- Update `gnuv2_demangle` to 0.4 by @AngheloAlf in https://github.com/encounter/objdiff/pull/280
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.3.1...v3.4.0
v3.3.1
📋 What's Changed
- Added: Option to show symbol size in symbols list by @BR- in https://github.com/encounter/objdiff/pull/268
- Added: `R_MIPS_GPREL32` support by @Francessco121 in https://github.com/encounter/objdiff/pull/270
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.3.0...v3.3.1
v3.3.0
📋 What's Changed
- Added: mips: Support for the other ABIs supported by rabbitizer by @AngheloAlf in https://github.com/encounter/objdiff/pull/259
- Added: Arch-independent demangling and add `gnuv2_demangle` for old g++ projects by @AngheloAlf in https://github.com/encounter/objdiff/pull/262
- Added: Support overriding diff options in project config (& for individual units) by @encounter in https://github.com/encounter/objdiff/pull/263
- Added: Support IDO .mdebug for line numbers by @encounter in https://github.com/encounter/objdiff/pull/264
- Added: 'None' demangler option (https://github.com/encounter/objdiff/commit/1866158092c77bdc3da267ffaae68ad2feb7822f)
- Changed: Standardize the values for invalid and data opcodes by @ethteck in https://github.com/encounter/objdiff/pull/261
- Changed: Improve ARM function size inference (https://github.com/encounter/objdiff/issues/253)
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.2.1...v3.3.0
v3.2.1
📋 What's Changed
- Changed: Ignore extern differences in relocations by @ifarbod in https://github.com/encounter/objdiff/pull/258
- Changed: Use dim color for address column in asm view (https://github.com/encounter/objdiff/commit/c69875006830be995143e439a9c05f3824e2aff6)
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.2.0...v3.2.1
v3.2.0
📋 What's Changed
- Added: Refactor data diffing & expose WASM API by @encounter in https://github.com/encounter/objdiff/pull/256
- Supports data diffing in objdiff-web. Some minor data diffing bugs fixed.
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.1.1...v3.2.0
v3.1.1
📋 What's Changed
- Added: Support for x86 indirect tables by @ifarbod in https://github.com/encounter/objdiff/pull/251
- Added: Automatic symbol pairing for MSVC generated static functions by @tomsons26 in https://github.com/encounter/objdiff/pull/255
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.1.0...v3.1.1
v3.1.0
📋 What's Changed
- Added: Diffing individual data symbols by @LagoLunatic in https://github.com/encounter/objdiff/pull/244
- Added: Hide certain symbols for X360 COFFs by @rjkiv in https://github.com/encounter/objdiff/pull/248
- Fixed: MIPS: Symbols being filtered out from target side of diff if target object contains `.NON_MATCHING` markers by @AngheloAlf in https://github.com/encounter/objdiff/pull/250
- Fixed: Gracefully handle OOB in symbol_context/symbol_hover (https://github.com/decompme/decomp.me/issues/1576, a138dfa90780d02c40bdb9dac6a0df5f5aec53b0)
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.0.1...v3.1.0
v3.0.1
📋 What's Changed
- Added: Detect x86 instruction size differences (https://github.com/encounter/objdiff/issues/233, https://github.com/encounter/objdiff/issues/242)
- Added: Ignore `switchD_` labels generated by Ghidra by @ifarbod in https://github.com/encounter/objdiff/pull/241
- Added: Update default watch patterns to include more extensions by @LagoLunatic in https://github.com/encounter/objdiff/pull/246
- Added: Improve automatic symbol pairing for nameless literals by @LagoLunatic in https://github.com/encounter/objdiff/pull/247
- Fixed: PPC pooled data references: Add support for `subi`, `addis`, and `subis` instructions by @LagoLunatic in https://github.com/encounter/objdiff/pull/245
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.0.0...v3.0.1
v3.0.0
📋 Changes
- @LagoLunatic
- @SquareMan
- @sozud
- @AetiasHax
- @AngheloAlf
- @anpage
- @r-burns
- @stravant
- + 3 more
📋 What's Changed (since v3.0.0-beta.14)
- Added: CLI args for objdiff-gui ([`b21892b`](https://github.com/encounter/objdiff/commit/b21892be3140a4474e1e972d54149b3ae77bf36f))
- `-p`/`--project-dir` allows specifying opening the GUI to a specific project. ([#211](https://github.com/encounter/objdiff/issues/211))
- `-V`/`--version` prints the version information and exits. ([#41](https://github.com/encounter/objdiff/issues/41))
- Added: "Diff fill color" option in Appearance settings ([`813c8aa`](https://github.com/encounter/objdiff/commit/813c8aa5391b37c1c9c89283500fa110dcb7a0de), [#230](https://github.com/encounter/objdiff/issues/230))
- Allows configuring the background color of lines with a diff.
- Added: `ignore_patterns` option in configuration ([`52c138b`](https://github.com/encounter/objdiff/commit/52c138bf06261c515160bd2a4c0a93d154422944), [#143,](https://github.com/encounter/objdiff/issues/143) [#215](https://github.com/encounter/objdiff/issues/215))
- Defaults to `["build/**/*"]`.
- Added: Restore `extab` diff view ([`247d6da`](https://github.com/encounter/objdiff/commit/247d6da94b30d5aaf5d6fa417c7aa5be6cc4341f))
- + 6 more
v3.0.0-beta.14Pre-release
📋 What's Changed
- Fixed: Data sections do not show when there is no section on the opposite side by @LagoLunatic in https://github.com/encounter/objdiff/pull/234
- Fixed: Context menu does not appear when right clicking the function name in the function diff view by @LagoLunatic in https://github.com/encounter/objdiff/pull/236
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.0.0-beta.13...v3.0.0-beta.14
v3.0.0-beta.13Pre-release
📋 What's Changed
- Added: Make function size inference logic arch-specific (#229, https://github.com/encounter/objdiff/commit/1e62d4664c58197c9ea36121c749fe8c177daa39)
- MIPS: account for delay slot nops (#3)
- x86: check for trailing nops (0x90)
- PPC: check for 4-byte 0x00 padding
- Fixed: Don't hard fail on line info / DWARF parsing (#228, https://github.com/encounter/objdiff/commit/0dc123b0647e845ef9dd09e6f51b5c3c3ecc93cd)
- Fixed: Enable PS instructions for any 32-bit PPC ELF (https://github.com/encounter/objdiff/commit/e67d5998b3c7431667c081e8d4c614a60aced7a5)
- Fixed: Use deprecated egui::menu temporarily (https://github.com/encounter/objdiff/commit/a015971c20f42a6baba554de9d5c52f2874d85b3)
- The egui 0.32 update introduced some bugs with the refactored menu code. Downgrade to the pre-0.32 menu temporarily.
- + 1 more
v3.0.0-beta.12Pre-release
📋 What's Changed
- Added: Strip zeros from end of inferred function sizes (padding, nops) (#3, #227, https://github.com/encounter/objdiff/commit/c917cad5f07d8231989327037c6f2069d4a2b084)
- Fixed: PowerPC COFF: `IMAGE_REL_PPC_REFHI`/`REFLO` without `IMAGE_REL_PPC_PAIR` (#227, https://github.com/encounter/objdiff/commit/dd653329f56c0562a60614f5949395a6c229b6f2)
- Changed: Split "OpenGL" option into "OpenGL" (glow) and "OpenGL ES" (wgpu) (https://github.com/encounter/objdiff/commit/f5d3d5f10a8c83e25a8da450af4fd3ad701cab7f)
- Changed: Update to egui 0.32 (https://github.com/encounter/objdiff/commit/c327ed3ea8010e2ec374c417651f4cdd44c86b3a)
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.0.0-beta.11...v3.0.0-beta.12
v3.0.0-beta.11Pre-release
📋 What's Changed
- Added: Support PowerPC COFFs (Xbox 360) (https://github.com/encounter/objdiff/commit/60b227f45e7623e5fb645f5cd3ef456c1f04c71d)
- Added: Support 64-bit PowerPC ELFs (PS3) (https://github.com/encounter/objdiff/commit/00ad0d80947a19eecfc3cef7a3ec1eeb7ed42299)
- Fixed: PPC pooled relocations: Ignore hidden symbols by @LagoLunatic in https://github.com/encounter/objdiff/pull/221
- Fixed: Data flow analysis for multiple text sections by @stravant in https://github.com/encounter/objdiff/pull/220
- Changed: Update rabbitizer to v2.0.0-alpha.4 by @ethteck in https://github.com/encounter/objdiff/pull/226
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.0.0-beta.10...v3.0.0-beta.11
v3.0.0-beta.10Pre-release
📋 What's Changed
- Added: x86 ELF Support by @anpage in https://github.com/encounter/objdiff/pull/213
- Added: Use symbol name when comparing against an externed reloc by @r-burns in https://github.com/encounter/objdiff/pull/214
- Added: Data flow analysis for PowerPC by @stravant in https://github.com/encounter/objdiff/pull/212
- See the [PR description](https://github.com/encounter/objdiff/pull/212) for usage information.
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.0.0-beta.9...v3.0.0-beta.10
v3.0.0-beta.9Pre-release
📋 What's Changed
- Added: Data diff view: Show bytes with relocations as `??` instead of `00` by @LagoLunatic in https://github.com/encounter/objdiff/pull/204
- Added: WASM API updates, support symbol mapping (https://github.com/encounter/objdiff/commit/a57e5db9835eac8f13f395b85afab8d5113394cf)
- Fixed: Scroll hotkeys not working in data diff view by @LagoLunatic in https://github.com/encounter/objdiff/pull/208
- Changed: Make `encoding_rs` an optional dependency by @AngheloAlf in https://github.com/encounter/objdiff/pull/205
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.0.0-beta.8...v3.0.0-beta.9
v3.0.0-beta.8Pre-release
📋 What's Changed
- Added: Ignore extern symbols when looking up symbols by name (#180, #181, 07ef93f16a29d4d8c20123113bd3ec8988cf169a)
- Added: Skip local labels when inferring symbol sizes (#174, 8e8ab6bef849471fa916e73b33753781e91dee98)
- Currently ignores symbol names starting with `.L` or `LAB_`
- Fixed: Highlighting of signed vs unsigned arguments by @LagoLunatic in https://github.com/encounter/objdiff/pull/202
- Fixed: Hidden symbol regression in v3.0.0-beta.7 (#199, 2b13e9886a7a81f24ad8c3b2e2287a8e82f337ea)
- Fixed: Inaccurate match percent when mapping symbols (#200, e865f3d5986db657dbe37e8ebc815a5096f5fc3a)
- Changed: Build with static CRT on Windows (1750af736a4dd2543741ccb7e7598cb14c3247ed)
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.0.0-beta.7...v3.0.0-beta.8
v3.0.0-beta.7Pre-release
📋 What's Changed
- Added: `address` field to ReportItem (34220a8e264868589003f84883a50ce73d9aee94)
- Added: SuperH support in wasm build (d225cac2055859313df9c14d42cd1b449c047bf8, a51ff44be17c0a797563b460cf1ab5c61c5578ce)
- Fixed: Repeated/combined sections incorrectly paired (#120, 3db07274691808e5df34f55073e5a41bc447aa7a)
- Changed: Improve handling of inner-function relocations (#192, 0c48d711c7bd51f791b353d7d85ba948b277e2f2)
- Changed: Combine repeated text/data sections when generating report (0c9e5526d422da5b4b477347617c5355c795d3d1)
- Changed: Stabilize section/function ordering in generated report (34220a8e264868589003f84883a50ce73d9aee94)
- Changed: Omit match % for right (base) sections (3db07274691808e5df34f55073e5a41bc447aa7a)
- Full Changelog: https://github.com/encounter/objdiff/compare/v3.0.0-beta.6...v3.0.0-beta.7
v3.0.0-beta.6Pre-release
📋 What's Changed
- Added: Preliminary SuperH support by @sozud in https://github.com/encounter/objdiff/pull/186
- Added: Data info for SuperH by @sozud in https://github.com/encounter/objdiff/pull/198
- Added: Allow copying Shift JIS encoded string literals by @LagoLunatic in https://github.com/encounter/objdiff/pull/189
- Added: PPC: Detect unpooled string literal references by @LagoLunatic in https://github.com/encounter/objdiff/pull/188
- Added: ARM: Display branch destinations after PC-relative loads by @AetiasHax in https://github.com/encounter/objdiff/pull/194
- Added: `--config` arg to `report generate` (39b1b4998564d26abfc395f865c2930115fa5200)
- Fixed: ARM: Fix "Combine text sections" confusing code and data by @LagoLunatic in https://github.com/encounter/objdiff/pull/195
- Fixed: Combine data/text sections: Pad sections to alignment by @LagoLunatic in https://github.com/encounter/objdiff/pull/197
- + 3 more
v3.0.0-beta.5Pre-release
📋 What's Changed
- Added: Reimplement colorized data relocation hover diffs by @LagoLunatic in https://github.com/encounter/objdiff/pull/182
- Added: Limit left-panel scrollview to the file tree by @SquareMan in https://github.com/encounter/objdiff/pull/185
- Added: x86: Support inline data for jumptables (https://github.com/encounter/objdiff/commit/e735adbd3d0ddb7f2abfdff38d38d6481d5baf92)
- Added: wasm: Cache objects via data hash (https://github.com/encounter/objdiff/commit/7b00a9e9f2939b25a757f0bb431efc8aca4decf4)
- Fixed: ARM: Subtract with overflow error when no mapping symbol at address 0 by @LagoLunatic in https://github.com/encounter/objdiff/pull/183
- Fixed: PPC: Pooled relocation addends being added twice sometimes by @LagoLunatic in https://github.com/encounter/objdiff/pull/184
- Fixed: x86_64: Fix relocation placement in instruction (https://github.com/encounter/objdiff/commit/bc46e17824067eaf6da737b0776e0ef34596c2c7)
- Fixed: `objdiff-cli report`: Skip unknown sections (https://github.com/encounter/objdiff/commit/2612cda1fbd7dc62d02afa0fe301bcdab7e19759)
- + 1 more
