Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
3f5ff55
feat: initial preperation for implementing RowWritable and generally …
BinFlip Jun 20, 2025
eefeff9
feat: foundation work to implement RowWritable and further preperatio…
BinFlip Jun 21, 2025
217d116
fix: fixed CI
BinFlip Jun 21, 2025
f6e3fcf
fix: added some more documentation
BinFlip Jun 21, 2025
f796882
refactor: changed stream iterators to not return 'Result'
BinFlip Jun 21, 2025
1f0f38a
feat: implemented CilAssemblyView - 1:1 read-only structure for viewi…
BinFlip Jun 21, 2025
295a532
feat: extended unit-test for CilAssemblyView
BinFlip Jun 21, 2025
3cc7e8e
feat: implemented builder infrastructure and first builders
BinFlip Jun 22, 2025
5340195
feat: added remaining low-level builders for the metadata tables
BinFlip Jun 23, 2025
c010deb
Merge branch 'develop' into feature/modification
BinFlip Jun 23, 2025
73149c5
feat: added basic pipeline to write changes back to a file
BinFlip Jun 25, 2025
634a1ad
feat: implemented signature encoder and builders
BinFlip Jun 25, 2025
890ffb8
feat: implemented CustomAttribute encoder
BinFlip Jun 25, 2025
cc6c0a3
feat: implemented marshalling encoder, enhanced builders and refactor…
BinFlip Jun 25, 2025
dcf2433
feat: implemented security permission encoders and builders
BinFlip Jun 25, 2025
f8acade
feat: implemented resource file encoders + builders and improved pars…
BinFlip Jun 26, 2025
eb6d6f1
feat: improved some cases for CilPrimitive handling and added round-t…
BinFlip Jun 26, 2025
c4f685a
feat: implemented support for relocation adjustments in PeWriter
BinFlip Jun 26, 2025
c3155b4
feat: significantly improved import/export support (cil + native) and…
BinFlip Jun 27, 2025
fa5cb9a
fix: CI permission issue on windows
BinFlip Jun 27, 2025
c1f9d3e
fix: fixed clippy errors after rust upgrade
BinFlip Jun 27, 2025
eafc363
Merge branch 'develop' into feature/modification
BinFlip Jun 30, 2025
997d5c5
feat: added capabilities of editing and removing existing items
BinFlip Jul 1, 2025
c4ca870
feat: implemented index relocator
BinFlip Jul 1, 2025
3d029cd
refactor: various cleanups and improvements
BinFlip Jul 2, 2025
c1d098f
feat: updated examples and documentation for the new functionality
BinFlip Jul 2, 2025
e1c64db
Merge branch 'develop' into feature/modification
BinFlip Jul 7, 2025
a3c79e1
feat: Continued implementation of modification pipeline
BinFlip Jul 9, 2025
aecaa30
fix: fixed clippy warnings and rustdoc warnings
BinFlip Jul 9, 2025
012b237
feat: implemented parts of the validation pipeline to verify files be…
BinFlip Jul 9, 2025
68070ef
feat: simplified CilAssemblyView and CilObject and added proper use o…
BinFlip Jul 10, 2025
946d3ab
refactor: fix clippy warnings
BinFlip Jul 10, 2025
50aa2bd
fix: fixed formatting for ci
BinFlip Jul 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
180 changes: 169 additions & 11 deletions Cargo.lock

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

5 changes: 5 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ uguid = "2.2.1"
widestring = "1.1.0"
strum = { version = "0.27.1", features = ["derive"]}
memmap2 = "0.9.5"
tempfile = "3.13.0"
#goblin = "0.10.0"
# Currently a fork of mine, that includes crash fixes which have not yet been merged into master
goblin = { version = "0.10.0", git= "https://github.com/BinFlip/goblin.git", branch = "pe.relocation.parse_with_opts_crash"}
Expand All @@ -42,6 +43,10 @@ criterion = "0.6.0"
name = "cilobject"
harness = false

[[bench]]
name = "cilassemblyview"
harness = false

[profile.bench]
debug = true
lto="fat"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Add `dotscope` to your `Cargo.toml`:

```toml
[dependencies]
dotscope = "0.1"
dotscope = "0.3.2"
```

### Basic Usage
Expand Down
22 changes: 22 additions & 0 deletions benches/cilassemblyview.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#![allow(unused)]
extern crate dotscope;

use criterion::{criterion_group, criterion_main, Criterion};
use dotscope::CilAssemblyView;
use std::path::{Path, PathBuf};

pub fn criterion_benchmark(c: &mut Criterion) {
// // Set rayon to use only 1 thread for this benchmark to profile
// rayon::ThreadPoolBuilder::new()
// .num_threads(1)
// .build_global()
// .unwrap();

let path = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/samples/WindowsBase.dll");
c.bench_function("bench_cilassemblyview", |b| {
b.iter({ || CilAssemblyView::from_file(&path).unwrap() });
});
}

criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);
4 changes: 2 additions & 2 deletions examples/basic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ fn main() -> Result<()> {
assembly
}
Err(e) => {
eprintln!("❌ Failed to load assembly: {}", e);
eprintln!("❌ Failed to load assembly: {e}");
eprintln!();
eprintln!("Common causes:");
eprintln!(" • File is not a valid .NET assembly");
Expand Down Expand Up @@ -116,7 +116,7 @@ fn main() -> Result<()> {

// Show culture information if available
if let Some(ref culture) = assembly_info.culture {
println!(" - Culture: {}", culture);
println!(" - Culture: {culture}");
} else {
println!(" - Culture: neutral");
}
Expand Down
Loading
Loading