Ddisasm

Latest version: v1.9.0

Safety actively analyzes 641102 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

1.9.0

* Stop generating debian metapackages and packages with the version attached
to the package name. Updates in the apt-repository now support multiple
package versions and upgrading `ddisasm` with `apt-get upgrade`.
* Improve def-use and value-reg stack analysis to consider push and pop
instructions. These changes also fix a couple of bugs in the stack variable
propagation.
* Update LIEF to 0.13.2
* No longer consider `_x86.get_pc_thunk*` functions as ABI-intrinsic; this
means `_copy` is not appended to the original symbol, and a symbol forwarding
entry is not created.
* Fix handling of BLR instruction in ARM64.
* Fix size access of LDR instruction in ARM64.
* Extend value_reg analysis to support memory loads using a register with
constant address.
* Refactor the code inference point system. Decouple heuristics from their weights.
Heuristic weights can now be modified by providing user hints.
* Generate GOT, PAGE and GOT, OFST symbolic expression attributes for split
.got loads on MIPS.
* Correct symbol_minus_symbol in lsda entries with a reference to the end of `.gcc_except_table`: add `boundary_sym_expr` for such reference
* Add `ElfSoname` aux-data for `SONAME` dynamic-section entry
* Requires gtirb >=2.1.0
* Track values of registers R8B - R15B on x86-64, which are in some cases needed for inferring jump table boundaries.
* Infer jump table boundaries from comparisons of registers correlated to the index register.
* Relax constraints for inferring jump table boundaries from comparisons of indirect operands
* Fix bug where a relative jump table starting with consecutive zero offsets was truncated at the first non-zero value.
* Add alignment for x86-64 instructions that require explicitly aligned memory
(e.g., some SIMD instructions)
* Update capstone version from 4.0.1 to 5.0.1
* Avoid generating `_start` symbol when the entry-point address is not a code block.

1.8.0

* Prefer LOCAL symbols over GLOBAL ones when selecting symbols for symbolic
expressions for ISAs other than MIPS.
* Support GTIRB sections with holes (byte intervals only covering part of the section).
* Use pre-existing code blocks as hints when disassembling a RAW binary.
* Better data access computation for MIPS binaries.
* Detect incremental linking regions in PE binaries.
* Create elfStackSize and elfStackExec auxdata from ELF PT_GNU_STACK segments.
* In PE binaries, every exported code symbol is considered a function entry.
* Fixed bug where `elfSymbolTabIdxInfo` aux data could refer to non-existent UUIDs.
* Fixed unrecognized `tls_get_addr` pattern that could result in missed
symbolic expressions.
* Binaries with zero-sized `OBJECT` symbols no longer produce missing code
blocks.
* `$t` symbols in ARM binaries now force creation of Thumb-mode code blocks.
* In PE binaries, duplicate imports no longer create duplicate symbols.
* Added pattern to match missed symbolic data in pointer arrays.
* Fix symbols associated to functions (Auxdata functionNames) for PE binaries
when Ddisasm is run with option `-F`.
* Requires gtirb >=2.0.0, gtirb-pprinter >=2.0.0

1.7.0

* Update code inference to use weighted interval scheduling to resolve blocks;
this improves code inference results, especially on ARM.
* ARM: Discover unreferenced code blocks occurring after literal pools.
* Refactored CFG inference. It now infers more kinds of indirect calls and
and branches using value analysis, data accesses, and relocations.
* ELF: Infer `SHARED` or `PIE` for `DYN` binary type
* ELF: Generate `elfDynamicInit` and `elfDynamicFini` auxdata

1.6.0

* ARM: Improve code inference using unwind information from .ARM.exidx section
* Replace symbolic expression attributes with composable labels.
* ddisasm output now displays runtimes of "load", "compute", and "transform"
phases of each analysis pass
* Add known_block and impossible_block passes to code inference.
* Various ARM32 code inference improvements.
* Various command-line options now apply to all datalog passes:
* `--debug-dir` creates subdirectories for each datalog pass
* `--interpreter` argument now specifies the source code repository's root
directory, defaults to the current working directory, and enables the
interpreter for all datalog passes
* `--profile` specifies a directory name where profiles for each datalog pass
is written
* Entries in files provided to `--hints` should namespace relation names using
the name of the analysis pass, e.g., `disassembly.invalid`.
* `--with-souffle-relations` keeps relations from all passes; entries in the
`souffleFacts` and `souffleOutputs` auxdata are now namespaced
with the name of the analysis pass, e.g., `disassembly.block_points`.
* Add support for x86-32 dynamic TLS.
* Improve IFUNC symbolic expression symbol selection.
* Several refactorings towards spliting code inference and symbolization.
* Refactor ELF symbol reading.
* Add "overlay" AuxData table.
* Update Souffle to version 2.4.
* Add cmake option `DDISASM_GENERATE_MANY` to use Souffle's `--generate-many`
code generation option; this should yield much faster incremental build times
for ddisasm.
* Utilize Souffle's feature to prune intermediate relations to reduce ddisasm's
peak memory usage; processing large binaries can use up to ~20% less memory.
* Update LIEF to 0.13.0.
* Add Linux Python package for ddisasm.

1.5.6

* Discover ARM Thumb blocks at section start in stripped binaries.
* Bugfix for undefined TLS symbol relocations.
* Add ARM `HLT` and `TRAP` instruction support.
* Bugfix for aliased copy-relocations.
* Bugfix to avoid propagating synchronous accesses across symbols.
* Add build option for compiled Souffle profile generation.
* Improved x86-64 dynamic TLS support.
* Various logic improvements for GLIBC rewriting support.

1.5.5

* Update generated `elfSymbolVersions` auxdata.
* Add "--ignore-errors" argument.
* Update LIEF to version 0.12.3.

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.