Skip to content

Commit

Permalink
Bump project version to 0.4.0, update CHANGELOG
Browse files Browse the repository at this point in the history
Update README
  • Loading branch information
ergrelet committed Mar 24, 2024
1 parent e6d7778 commit 09c1520
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 20 deletions.
14 changes: 12 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,33 @@

## [Unreleased]

## [0.4.0] - 2024-03-24

### Added

- Allow opening a PDB file and diffing two PDB files using drag and drop (@learn-more)
- Allow opening a PDB file and diffing two PDB files using drag and drop in `resym` (@learn-more)
- Add support for the `wasm32-unknown-unknown` target
- Publish a web version of `resym` from the `main` branch automatically
- Allowing loading PDBs from URLs (but the feature can be disabled at build time)
- Allowing loading PDBs from URLs in `resym` (the feature can be disabled at build time)
- Implement basic module reconstruction and diffing capabilities
- Add 3 new commands to `resymc`: `list-modules`, `dump-module`, `diff-module`
- Add support for small MSF file format (e.g., VC++ 6 PDBs) in the `pdb` crate fork (@jon-zu)
- Add "Xrefs to" and "Xrefs from" tabs in the bottom panel of `resym`
- Add "Find Xrefs to" button to find types that use the current type in `resym`
- Add a keyboard shortcut to look for cross-references to a type (Alt+X) in `resym`
- Reconstructed output for C types can now be compiled without modifications

### Changed

- `resym` and `resymc` can be built without `rayon` (but are still built with it by default)
- Type list is now ordered alphabetically in `resym`

### Fixed

- Fix wrong size detection for unnamed unions in structs, leading to infinite loops in certain cases
- Fix reconstruction of function pointer arrays
- Fix reconstruction of function pointer's arguments
- Fix reconstruction of certain class/struct constructors

## [0.3.0] - 2023-02-19

Expand Down
6 changes: 3 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
lto = true

[workspace.package]
version = "0.3.0"
version = "0.4.0"

[workspace]
resolver = "2"
Expand Down
30 changes: 19 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ Inspired by [PDBRipper](https://github.com/horsicq/PDBRipper) and

- Cross-platform (native and web)
- GUI and CLI versions available
- Decent performance, even on huge PDB files
- C and C++ types reconstruction
- C and C++ types diff generation (between two PDBs)
- Decent performance, even on huge PDB files
- Compilable output for C types (partial support for C++ types)
- PDB module browsing

## Screenshot

Expand All @@ -24,7 +26,7 @@ Inspired by [PDBRipper](https://github.com/horsicq/PDBRipper) and
If you have Rust installed, you can easily install resym with `cargo`:

```
cargo install --git https://github.com/ergrelet/resym --tag v0.3.0
cargo install --git https://github.com/ergrelet/resym --tag v0.4.0
```

After that, you can invoke `resym` and `resymc` from anywhere, through the
Expand All @@ -39,7 +41,7 @@ If you want to use the GUI version, simply run the `resym` executable.
A CLI version (named `resymc`) is also available:

```
resymc 0.3.0
resymc 0.4.0
resymc is a utility that allows browsing and extracting types from PDB files.
USAGE:
Expand All @@ -50,11 +52,14 @@ FLAGS:
-V, --version Prints version information
SUBCOMMANDS:
diff Compute diff for a type between two given PDB files
dump Dump type from a given PDB file
dump-all Dump all types from a given PDB file
help Prints this message or the help of the given subcommand(s)
list List types from a given PDB file
diff Compute diff for a type between two given PDB files
diff-module Compute diff for a module between two given PDB files
dump Dump type from a given PDB file
dump-all Dump all types from a given PDB file
dump-module Dump module from a given PDB file
help Prints this message or the help of the given subcommand(s)
list List types from a given PDB file
list-modules List modules from a given PDB file
```

Expand All @@ -71,9 +76,12 @@ cargo build --release
## Know limitations

The GUI version might struggle to display huge outputs (>20 MB). Disabling
syntax highlighting (or dependency reconstruction altogether) will help, but
generally the CLI version is more suited when dumping types with a huge amount
of dependencies.
syntax highlighting (and/or dependency reconstruction altogether) will help but,
generally speaking, the CLI version is more suited when dumping types with a huge
amount of dependencies.

C++ namespaces and template types aren't reconstructed at the moment, which
means the reconstructed output for C++ types isn't necessarily compilable.

The web version cannot handle PDB files larger than ~2.1 GB due to how files
are accessed and the 32-bit limitations of `wasm32` targets. This might change
Expand Down
Binary file modified docs/static/resym_screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion resym/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ rayon = ["resym_core/rayon"]
http = ["resym_core/http"]

[dependencies]
resym_core = { version = "0.3", path = "../resym_core", default-features = false }
resym_core = { version = "0.4", path = "../resym_core", default-features = false }

eframe = { version = "0.26", features = ["persistence"] }
serde = "1.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ expression: module_diff.data
// New PDB file: tests/data/test_diff_to.pdb
// Image architecture: Amd64
//
// Information extracted with resym v0.3.0
// Information extracted with resym v0.4.0
//

using namespace std;
Expand Down
2 changes: 1 addition & 1 deletion resymc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ default = ["rayon"]
rayon = ["resym_core/rayon"]

[dependencies]
resym_core = { version = "0.3", path = "../resym_core", default-features = false }
resym_core = { version = "0.4", path = "../resym_core", default-features = false }

structopt = { version = "0.3", default-features = false }
syntect = "5.2"
Expand Down

0 comments on commit 09c1520

Please sign in to comment.