diff --git a/src/agent/Cargo.lock b/src/agent/Cargo.lock index c3634a9a1..8904241e2 100644 --- a/src/agent/Cargo.lock +++ b/src/agent/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "adler" version = "1.0.2" @@ -129,7 +131,7 @@ dependencies = [ "instant", "pin-project", "rand 0.8.4", - "tokio 1.7.0", + "tokio 1.7.1", ] [[package]] @@ -324,9 +326,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed00c67cb5d0a7d64a44f6ad2668db7e7530311dd53ea79bcd4fb022c64911c8" +checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef" dependencies = [ "libc", ] @@ -502,7 +504,7 @@ dependencies = [ "crossbeam-queue", "num_cpus", "serde", - "tokio 1.7.0", + "tokio 1.7.1", ] [[package]] @@ -977,7 +979,7 @@ dependencies = [ "http", "indexmap", "slab", - "tokio 1.7.0", + "tokio 1.7.1", "tokio-util 0.6.7", "tracing", ] @@ -1142,7 +1144,7 @@ dependencies = [ "itoa", "pin-project-lite 0.2.6", "socket2 0.4.0", - "tokio 1.7.0", + "tokio 1.7.1", "tower-service", "tracing", "want", @@ -1170,7 +1172,7 @@ dependencies = [ "bytes 1.0.1", "hyper 0.14.9", "native-tls", - "tokio 1.7.0", + "tokio 1.7.1", "tokio-native-tls", ] @@ -1557,9 +1559,9 @@ dependencies = [ [[package]] name = "nix" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ccba0cfe4fdf15982d1674c69b1fd80bad427d293849982668dfe454bd61f2" +checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a" dependencies = [ "bitflags", "cc", @@ -1569,14 +1571,15 @@ dependencies = [ [[package]] name = "nix" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a" +checksum = "5c3728fec49d363a50a8828a190b379a446cc5cf085c06259bbbeb34447e4ec7" dependencies = [ "bitflags", "cc", "cfg-if 1.0.0", "libc", + "memoffset", ] [[package]] @@ -1671,7 +1674,7 @@ dependencies = [ "input-tester", "lazy_static", "log", - "nix 0.19.1", + "nix 0.21.0", "notify", "onefuzz-telemetry", "pete", @@ -1679,7 +1682,7 @@ dependencies = [ "process_control", "rand 0.8.4", "regex", - "reqwest 0.11.3", + "reqwest 0.11.4", "reqwest-retry", "ring", "rstack", @@ -1693,7 +1696,7 @@ dependencies = [ "strum_macros", "sysinfo", "tempfile", - "tokio 1.7.0", + "tokio 1.7.1", "tokio-stream", "tokio-util 0.6.7", "url", @@ -1725,7 +1728,7 @@ dependencies = [ "onefuzz", "onefuzz-telemetry", "path-absolutize", - "reqwest 0.11.3", + "reqwest 0.11.4", "reqwest-retry", "serde", "serde_json", @@ -1733,7 +1736,7 @@ dependencies = [ "storage-queue", "tempfile", "thiserror", - "tokio 1.7.0", + "tokio 1.7.1", "tokio-stream", "tokio-util 0.6.7", "tui", @@ -1755,13 +1758,13 @@ dependencies = [ "log", "onefuzz", "onefuzz-telemetry", - "reqwest 0.11.3", + "reqwest 0.11.4", "reqwest-retry", "serde", "serde_json", "storage-queue", "structopt", - "tokio 1.7.0", + "tokio 1.7.1", "url", "users", "uuid", @@ -1776,7 +1779,7 @@ dependencies = [ "lazy_static", "log", "serde", - "tokio 1.7.0", + "tokio 1.7.1", "uuid", "z3-sys", ] @@ -1789,9 +1792,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.34" +version = "0.10.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7830286ad6a3973c0f1d9b73738f69c76b739301d0229c4b96501695cbe4c8" +checksum = "549430950c79ae24e6d02e0b7404534ecf311d94cc9f861e9e4020187d13d885" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -1809,9 +1812,9 @@ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" [[package]] name = "openssl-sys" -version = "0.9.63" +version = "0.9.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b0d6fb7d80f877617dfcb014e605e2b5ab2fb0afdf27935219bb6bd984cb98" +checksum = "7a7907e3bfa08bb85105209cdfcb6c63d109f8f6c1ed6ca318fff5c1853fbc1d" dependencies = [ "autocfg", "cc", @@ -1926,12 +1929,12 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" [[package]] name = "pete" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cd417123c2e101622037d1af9070a10f142d0798ad802dfd0796f982fee8b87" +checksum = "1af156966ebafe8991347a56ecb2c362e353e42713539a0ed2389f2b854e493d" dependencies = [ "libc", - "nix 0.19.1", + "nix 0.21.0", "thiserror", ] @@ -2302,9 +2305,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2296f2fac53979e8ccbc4a1136b25dcefd37be9ed7e4a1f6b05a6029c84ff124" +checksum = "246e9f61b9bb77df069a947682be06e31ac43ea37862e244a69f177694ea6d22" dependencies = [ "base64", "bytes 1.0.1", @@ -2326,7 +2329,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "tokio 1.7.0", + "tokio 1.7.1", "tokio-native-tls", "url", "wasm-bindgen", @@ -2344,8 +2347,8 @@ dependencies = [ "backoff", "log", "onefuzz-telemetry", - "reqwest 0.11.3", - "tokio 1.7.0", + "reqwest 0.11.4", + "tokio 1.7.1", "wiremock", ] @@ -2378,9 +2381,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410f7acf3cb3a44527c5d9546bad4bf4e6c460915d5f9f2fc524498bfe8f70ce" +checksum = "dead70b0b5e03e9c814bcb6b01e03e68f7c57a80aa48c72ec92152ab3e818d49" [[package]] name = "ryu" @@ -2701,13 +2704,13 @@ dependencies = [ "num_cpus", "queue-file", "regex", - "reqwest 0.11.3", + "reqwest 0.11.4", "reqwest-retry", "serde", "serde-xml-rs", "serde_derive", "serde_json", - "tokio 1.7.0", + "tokio 1.7.1", "uuid", ] @@ -2894,9 +2897,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79ba603c337335df6ba6dd6afc38c38a7d5e1b0c871678439ea973cd62a118e" +checksum = "5fb2ed024293bb19f7a5dc54fe83bf86532a44c12a2bb8ba40d64a4509395ca2" dependencies = [ "autocfg", "bytes 1.0.1", @@ -2930,7 +2933,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" dependencies = [ "native-tls", - "tokio 1.7.0", + "tokio 1.7.1", ] [[package]] @@ -2941,7 +2944,7 @@ checksum = "f8864d706fdb3cc0843a49647ac892720dac98a6eeb818b77190592cf4994066" dependencies = [ "futures-core", "pin-project-lite 0.2.6", - "tokio 1.7.0", + "tokio 1.7.1", "tokio-util 0.6.7", ] @@ -2982,7 +2985,7 @@ dependencies = [ "log", "pin-project-lite 0.2.6", "slab", - "tokio 1.7.0", + "tokio 1.7.1", ] [[package]] @@ -3167,9 +3170,9 @@ dependencies = [ [[package]] name = "vcpkg" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70455df2fdf4e9bf580a92e443f1eb0303c390d682e2ea817312c9e81f8c3399" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vec_map" @@ -3390,7 +3393,7 @@ dependencies = [ "regex", "serde", "serde_json", - "tokio 1.7.0", + "tokio 1.7.1", ] [[package]] diff --git a/src/agent/coverage/Cargo.toml b/src/agent/coverage/Cargo.toml index 29b37d7cd..8f3ab3302 100644 --- a/src/agent/coverage/Cargo.toml +++ b/src/agent/coverage/Cargo.toml @@ -16,7 +16,7 @@ cpp_demangle = "0.3" debugger = { path = "../debugger" } dunce = "1.0" fixedbitset = "0.4" -goblin = "0.2" +goblin = "0.4" iced-x86 = { version = "1.1", features = ["decoder", "op_code_info", "instr_info", "masm"] } log = "0.4" memmap2 = "0.3" @@ -32,7 +32,7 @@ pdb = "0.7" winapi = "0.3" [target.'cfg(target_os = "linux")'.dependencies] -pete = "0.4" +pete = "0.5" procfs = "0.9" [dev-dependencies] diff --git a/src/agent/coverage/src/block/pe_provider.rs b/src/agent/coverage/src/block/pe_provider.rs index 1f3fd8685..4ec76bdc6 100644 --- a/src/agent/coverage/src/block/pe_provider.rs +++ b/src/agent/coverage/src/block/pe_provider.rs @@ -106,6 +106,7 @@ where // Currently this assumes `sizeof(uintptr_t) == 8` for the target PE. fn provide_from_pcs_table(&mut self, pcs_table: SancovTable) -> Result> { // Read the PE directly to extract the PCs from the PC table. + let parse_options = goblin::pe::options::ParseOptions::default(); let pe_alignment = self .pe .header @@ -117,6 +118,7 @@ where pcs_table.offset as usize, &self.pe.sections, pe_alignment, + &parse_options, ); let pe_offset = pe_offset.ok_or_else(|| format_err!("could not find file offset for sancov table"))?; @@ -223,6 +225,7 @@ impl<'d, 'p> SancovInlineAccessVisitor<'d, 'p> { } pub fn visit_procedure_symbol(&mut self, proc: &ProcedureSymbol) -> Result<()> { + let parse_options = goblin::pe::options::ParseOptions::default(); let alignment = self .pe .header @@ -238,8 +241,9 @@ impl<'d, 'p> SancovInlineAccessVisitor<'d, 'p> { .0 .try_into()?; - let file_offset = goblin::pe::utils::find_offset(rva, &self.pe.sections, alignment) - .ok_or_else(|| format_err!("unable to find PE offset for RVA"))?; + let file_offset = + goblin::pe::utils::find_offset(rva, &self.pe.sections, alignment, &parse_options) + .ok_or_else(|| format_err!("unable to find PE offset for RVA"))?; let range = file_offset..(file_offset + proc.len as usize); diff --git a/src/agent/coverage/src/pe.rs b/src/agent/coverage/src/pe.rs index a5aa6fdc8..4464068a7 100644 --- a/src/agent/coverage/src/pe.rs +++ b/src/agent/coverage/src/pe.rs @@ -157,6 +157,8 @@ fn find_blocks( _ => anyhow::bail!("Unsupported architecture {}", machine), }; + let parse_options = goblin::pe::options::ParseOptions::default(); + for proc in proc_data { if let Some(rva) = proc.offset.to_rva(address_map) { blocks.insert(rva.0 as usize); @@ -165,9 +167,12 @@ fn find_blocks( continue; } - if let Some(file_offset) = - goblin::pe::utils::find_offset(rva.0 as usize, &pe.sections, file_alignment) - { + if let Some(file_offset) = goblin::pe::utils::find_offset( + rva.0 as usize, + &pe.sections, + file_alignment, + &parse_options, + ) { // VC++ includes jump tables with the code length which we must exclude // from disassembly. We use the minimum address of a jump table since // the tables are placed consecutively after the actual code. diff --git a/src/agent/debugger/Cargo.toml b/src/agent/debugger/Cargo.toml index 96314a2c0..165c31c4b 100644 --- a/src/agent/debugger/Cargo.toml +++ b/src/agent/debugger/Cargo.toml @@ -8,7 +8,7 @@ license = "MIT" [dependencies] anyhow = "1.0" fnv = "1.0" -goblin = "0.2" +goblin = "0.4" iced-x86 = "1.1" log = "0.4" memmap2 = "0.3" diff --git a/src/agent/onefuzz/Cargo.toml b/src/agent/onefuzz/Cargo.toml index 4772cf9ab..07d5e4049 100644 --- a/src/agent/onefuzz/Cargo.toml +++ b/src/agent/onefuzz/Cargo.toml @@ -51,7 +51,7 @@ debugger = { path = "../debugger" } [target.'cfg(target_os = "linux")'.dependencies] cpp_demangle = "0.3" -nix = "0.19" -pete = "0.4" +nix = "0.21" +pete = "0.5" proc-maps = "0.1" rstack = "0.3" diff --git a/src/proxy-manager/Cargo.lock b/src/proxy-manager/Cargo.lock index 669b2c240..c4eac765a 100644 --- a/src/proxy-manager/Cargo.lock +++ b/src/proxy-manager/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "aho-corasick" version = "0.7.18" @@ -82,7 +84,7 @@ dependencies = [ "instant", "pin-project", "rand", - "tokio 1.7.0", + "tokio 1.7.1", ] [[package]] @@ -441,7 +443,7 @@ dependencies = [ "http", "indexmap", "slab", - "tokio 1.7.0", + "tokio 1.7.1", "tokio-util 0.6.7", "tracing", ] @@ -570,7 +572,7 @@ dependencies = [ "itoa", "pin-project-lite 0.2.6", "socket2 0.4.0", - "tokio 1.7.0", + "tokio 1.7.1", "tower-service", "tracing", "want", @@ -598,7 +600,7 @@ dependencies = [ "bytes 1.0.1", "hyper 0.14.9", "native-tls", - "tokio 1.7.0", + "tokio 1.7.1", "tokio-native-tls", ] @@ -887,13 +889,13 @@ dependencies = [ "futures", "log", "onefuzz-telemetry", - "reqwest 0.11.3", + "reqwest 0.11.4", "reqwest-retry", "serde", "serde_json", "storage-queue", "thiserror", - "tokio 1.7.0", + "tokio 1.7.1", "url", "uuid", ] @@ -906,15 +908,15 @@ dependencies = [ "lazy_static", "log", "serde", - "tokio 1.7.0", + "tokio 1.7.1", "uuid", ] [[package]] name = "openssl" -version = "0.10.34" +version = "0.10.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7830286ad6a3973c0f1d9b73738f69c76b739301d0229c4b96501695cbe4c8" +checksum = "549430950c79ae24e6d02e0b7404534ecf311d94cc9f861e9e4020187d13d885" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -932,9 +934,9 @@ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" [[package]] name = "openssl-sys" -version = "0.9.63" +version = "0.9.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b0d6fb7d80f877617dfcb014e605e2b5ab2fb0afdf27935219bb6bd984cb98" +checksum = "7a7907e3bfa08bb85105209cdfcb6c63d109f8f6c1ed6ca318fff5c1853fbc1d" dependencies = [ "autocfg", "cc", @@ -1214,9 +1216,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2296f2fac53979e8ccbc4a1136b25dcefd37be9ed7e4a1f6b05a6029c84ff124" +checksum = "246e9f61b9bb77df069a947682be06e31ac43ea37862e244a69f177694ea6d22" dependencies = [ "base64", "bytes 1.0.1", @@ -1238,7 +1240,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "tokio 1.7.0", + "tokio 1.7.1", "tokio-native-tls", "url", "wasm-bindgen", @@ -1256,7 +1258,7 @@ dependencies = [ "backoff", "log", "onefuzz-telemetry", - "reqwest 0.11.3", + "reqwest 0.11.4", ] [[package]] @@ -1465,13 +1467,13 @@ dependencies = [ "num_cpus", "queue-file", "regex", - "reqwest 0.11.3", + "reqwest 0.11.4", "reqwest-retry", "serde", "serde-xml-rs", "serde_derive", "serde_json", - "tokio 1.7.0", + "tokio 1.7.1", "uuid", ] @@ -1600,9 +1602,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.7.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79ba603c337335df6ba6dd6afc38c38a7d5e1b0c871678439ea973cd62a118e" +checksum = "5fb2ed024293bb19f7a5dc54fe83bf86532a44c12a2bb8ba40d64a4509395ca2" dependencies = [ "autocfg", "bytes 1.0.1", @@ -1636,7 +1638,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" dependencies = [ "native-tls", - "tokio 1.7.0", + "tokio 1.7.1", ] [[package]] @@ -1674,7 +1676,7 @@ dependencies = [ "futures-sink", "log", "pin-project-lite 0.2.6", - "tokio 1.7.0", + "tokio 1.7.1", ] [[package]] @@ -1790,9 +1792,9 @@ dependencies = [ [[package]] name = "vcpkg" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70455df2fdf4e9bf580a92e443f1eb0303c390d682e2ea817312c9e81f8c3399" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vec_map"