Skip to content

Commit ca0a956

Browse files
release v.0.4.0 (#57)
added EnC table support added PortablePDB support added assembler added various builders for modifying binaries added validation system to verify that modified and loaded binaries are valid added capabilities to serialize modified binaries to disk fixed various bugs and problems --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 parent c59f37c commit ca0a956

File tree

646 files changed

+166728
-20261
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

646 files changed

+166728
-20261
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121

2222
steps:
2323
- name: Checkout code
24-
uses: actions/checkout@v4
24+
uses: actions/checkout@v5
2525

2626
- name: Install Rust toolchain
2727
uses: dtolnay/rust-toolchain@stable
@@ -59,7 +59,7 @@ jobs:
5959

6060
steps:
6161
- name: Checkout code
62-
uses: actions/checkout@v4
62+
uses: actions/checkout@v5
6363

6464
- name: Install Rust nightly
6565
uses: dtolnay/rust-toolchain@nightly
@@ -93,7 +93,7 @@ jobs:
9393

9494
steps:
9595
- name: Checkout code
96-
uses: actions/checkout@v4
96+
uses: actions/checkout@v5
9797

9898
- name: Install Rust toolchain
9999
uses: dtolnay/rust-toolchain@stable
@@ -111,7 +111,7 @@ jobs:
111111

112112
steps:
113113
- name: Checkout code
114-
uses: actions/checkout@v4
114+
uses: actions/checkout@v5
115115

116116
- name: Install Rust toolchain
117117
uses: dtolnay/rust-toolchain@stable

.github/workflows/maintenance.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313

1414
steps:
1515
- name: Checkout code
16-
uses: actions/checkout@v4
16+
uses: actions/checkout@v5
1717

1818
- name: Install Rust toolchain
1919
uses: dtolnay/rust-toolchain@stable
@@ -81,7 +81,7 @@ jobs:
8181

8282
steps:
8383
- name: Checkout code
84-
uses: actions/checkout@v4
84+
uses: actions/checkout@v5
8585
with:
8686
fetch-depth: 0
8787

@@ -122,7 +122,7 @@ jobs:
122122

123123
steps:
124124
- name: Checkout code
125-
uses: actions/checkout@v4
125+
uses: actions/checkout@v5
126126

127127
- name: Install Rust toolchain
128128
uses: dtolnay/rust-toolchain@stable

.github/workflows/release.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020

2121
steps:
2222
- name: Checkout code
23-
uses: actions/checkout@v4
23+
uses: actions/checkout@v5
2424

2525
- name: Install Rust toolchain
2626
uses: dtolnay/rust-toolchain@stable
@@ -58,7 +58,7 @@ jobs:
5858

5959
steps:
6060
- name: Checkout code
61-
uses: actions/checkout@v4
61+
uses: actions/checkout@v5
6262

6363
- name: Get version from Cargo.toml
6464
id: version
@@ -141,7 +141,7 @@ jobs:
141141

142142
steps:
143143
- name: Checkout code
144-
uses: actions/checkout@v4
144+
uses: actions/checkout@v5
145145

146146
- name: Install Rust toolchain
147147
uses: dtolnay/rust-toolchain@stable
@@ -166,7 +166,7 @@ jobs:
166166

167167
steps:
168168
- name: Checkout code
169-
uses: actions/checkout@v4
169+
uses: actions/checkout@v5
170170

171171
- name: Install Rust toolchain
172172
uses: dtolnay/rust-toolchain@stable

CHANGELOG.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,37 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.4.0] - 2025-08-19
9+
10+
### Added
11+
12+
- **Assembly Encoder and Builder System**: Complete CIL assembly encoder and builder implementation with high-performance benchmarks
13+
- **High-Level Builders**: Added builders for classes, enums, events, interfaces, properties, and methods with full CIL method body support
14+
- **Binary Modification Capabilities**: Full binary modification support with method injection and exception handler support using label-based targeting
15+
- **PortablePDB Support**: Complete PortablePDB parsing implementation for enhanced debugging information
16+
- **EnC (Edit and Continue) Tables**: Support for Edit and Continue metadata tables
17+
- **Validation System**: Comprehensive validation framework to ensure modified binaries remain valid and loadable
18+
- **Binary Serialization**: Capability to write modified assemblies back to disk
19+
20+
### Changed
21+
22+
- **Module Organization**: Renamed `disassembler` module to `assembly` in preparation for encoder implementation
23+
- **File Structure**: Removed `self_reflecting` from File structure, storing PE information locally for improved performance
24+
25+
### Fixed
26+
27+
- Fixed regression in size field length calculation
28+
- Fixed multiple issues causing modified binaries to be invalid
29+
- Fixed clippy warnings for latest Rust versions
30+
- Various binary modification stability improvements
31+
32+
### Improved
33+
34+
- Enhanced integration testing with Mono runtime verification
35+
- Improved PE file handling and structure
36+
- Better separation between parsing and encoding functionality
37+
- Updated examples and documentation
38+
839
## [0.3.2] - 2025-06-17
940

1041
### Fixed

0 commit comments

Comments
 (0)