Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/awslabs/snapchange
/ functions
Functions
430 in github.com/awslabs/snapchange
⨍
Functions
430
◇
Types & classes
163
Method
get_dirty_logs
Gets the dirty logs for each slot in `self.dirty_bitmaps` # Errors `KVM_GET_DIRTY_LOG` failed
src/kvm.rs:150
Method
get_msr
Read an MSR from the guest # Errors If KVM fails to get MSRs
src/fuzzvm.rs:1337
Method
get_redqueen_rule_candidates
(&self, _rule: &RedqueenRule)
src/fuzz_input.rs:121
Method
handle_crash
( &self, input: &Self::Input, _fuzzvm: &mut FuzzVm<Self>, crash_file: &Path,
examples/04_syscall_fuzzer/fuzzer.rs:415
Function
handler_alarm
Handles the `SIGALRM` signal
src/timer.rs:100
Method
hexdump
Print a hexdump of `count` bytes at the given [`VirtAddr`] [`Cr3`] # Errors Failed to read `count` bytes from `virt_addr`
src/memory.rs:1087
Method
increase_redqueen_entropy
(&mut self, _rule: &RedqueenRule, _rng: &mut Rng)
src/fuzz_input.rs:113
Method
index
(&self, val: usize)
src/page_table.rs:204
Method
index_mut
(&mut self, val: usize)
src/page_table.rs:211
Method
init_vm
(&mut self, _fuzzvm: &mut FuzzVm<Self>)
examples/04_syscall_fuzzer/fuzzer.rs:390
Function
insert_from_dictionary
Insert an element from the dictionary into the input
src/mutators.rs:466
Method
is_performance_monitoring_enabled
Check if performance monitoring is enabled in KVM # Errors KVM failed to get cpuids
src/fuzzvm.rs:1114
Method
load_state
Load the [`CoverageAnalysis`] state from the given `load_path`
src/coverage_analysis.rs:148
Function
main
()
examples/01_getpid/main.rs:5
Function
main
examples/01_getpid/harness/example1.c:57
Function
main
()
examples/05_redqueen/main.rs:6
Function
main
()
examples/05_redqueen/build.rs:38
Function
main
examples/05_redqueen/harness/test_redqueen.c:163
Function
main
()
examples/02_libtiff/main.rs:6
Function
main
()
examples/04_syscall_fuzzer/main.rs:5
Function
main
()
examples/04_syscall_fuzzer/syscall_harness/src/main.rs:4
Function
main
()
examples/03_ffmpeg_custom_mutator/main.rs:7
Function
main
()
bench/main.rs:5
Function
main
()
bench/gather_data/src/main.rs:82
Function
main
()
bench/src/main.rs:5
Function
main
()
bench/bench_harness/src/main.rs:6
Function
main
()
fuzzer_template/.build.rs:38
Function
main
()
fuzzer_template/src/main.rs:5
Method
map_virt_addr_4k
(&mut self, virt_addr: VirtAddr, cr3: Cr3)
src/memory.rs:368
Method
minimize
Minimize the given `input` based on a minimization strategy
src/fuzz_input.rs:84
Method
minimize
Minimize a `Vec<u8>` with a variety of different techniques
src/fuzz_input.rs:519
Method
minimize
Minimize the given `input` based on a minimization strategy
examples/04_syscall_fuzzer/fuzzer.rs:494
Method
minimize
Minimize the given `input` based on a minimization strategy
examples/03_ffmpeg_custom_mutator/fuzzer.rs:538
Method
mutate
( input: &mut Self, corpus: &[Self], rng: &mut Rng, dictionary: &Option<Vec<Ve
src/fuzz_input.rs:143
Method
mutate
Mutate the current object using a `corpus`, `rng`, and `dictionary` that has a maximum length of `max_length`
examples/04_syscall_fuzzer/fuzzer.rs:451
Method
mutate
Mutate the current object using a `corpus`, `rng`, and `dictionary` that has a maximum length of `max_length`
examples/03_ffmpeg_custom_mutator/fuzzer.rs:555
Method
mutate_input
Mutate the given `input` in place using the `corpus`, `rng`, and `dictionary`
src/fuzzer.rs:171
Method
mutators
()
src/fuzz_input.rs:64
Method
mutators
Current mutators available for mutation
src/fuzz_input.rs:481
Method
name
(val: usize)
src/fuzzvm.rs:310
Method
new
Initialize an empty coverage analysis. Provides an initial empty analysis along with caching the order of nodes which should be iterated in the futur
src/coverage_analysis.rs:168
Method
new
Create a new [`StackUnwinder`] from the given `binary` and its base address # Errors Cannot open the given binary Failed to mmap the file Failed to
src/stack_unwinder.rs:397
Method
new
()
src/rng.rs:60
Method
new
Create a new [`StatsApp`]
src/stats_tui.rs:78
Method
new
Create a clean spurious interrupt
src/apic.rs:139
Method
new
Create a new [`Translation`] for the [`VirtAddr`]
src/page_table.rs:239
Method
new
(type_: &'static [u8; 4], data: Vec<u8>)
examples/03_ffmpeg_custom_mutator/mov_generator.rs:59
Method
new
(type_: &'static [u8; 4], data: Vec<u8>)
examples/03_ffmpeg_custom_mutator/fuzzer.rs:141
Method
new_file
Add a new file with descriptor `fd`, `name`, and `data` to the filesystem
src/filesystem.rs:49
Method
new_not_present
Create a new [`Translation`] for the [`VirtAddr`] if that address is not present in the page table
src/page_table.rs:257
Method
next_u32
(&mut self)
src/rng.rs:41
Function
parse_timeout
Parse the command line timeout argument into a [`Duration`] Value example: 10ns - 10 nanoseconds 25us - 25 microseconds 05ms - 10 milliseconds 01s
src/cmdline.rs:1348
Method
print
Print the state of this `TrackedState`
src/stack_unwinder.rs:118
Method
print_disasm
Disassemble and print `count` number of instructions from `addr` # Example ```rust // Print the first 5 instructions at the `force_sig_fault` symbol
src/fuzzvm.rs:2904
Method
push_stack
(&mut self, val: T)
src/fuzzvm.rs:2974
Method
read
Read `count` bytes from the file at descriptor `fd`
src/filesystem.rs:92
Method
read_bytes_until
( &mut self, virt_addr: VirtAddr, cr3: Cr3, byte: u8, max_size: usize,
src/fuzzvm.rs:2791
Method
read_bytes_until
( &mut self, virt_addr: VirtAddr, cr3: Cr3, byte: u8, max_size: usize,
src/memory.rs:1196
Method
read_only
Get a read-only [`Permissions`]
src/page_table.rs:306
Method
read_phys_bytes
Read bytes from the [`PhysAddr`] into the given `buf` # Errors If the given physical address is out of bounds of the allocated physical memory
src/fuzzvm.rs:3194
Method
read_phys_u64
(&mut self, phys_addr: PhysAddr)
src/fuzzvm.rs:3204
Method
redqueen_breakpoint_addresses
()
src/fuzzer.rs:280
Method
redqueen_breakpoint_addresses
()
examples/05_redqueen/fuzzer.rs:60
Method
redqueen_breakpoints
(&self)
examples/05_redqueen/fuzzer.rs:56
Function
replace_with_interesting
Replace bytes in the input with interesting values that trigger common bugs such as off by one
src/mutators.rs:383
Method
reset_breakpoints
(&self)
src/fuzzer/template.rs:33
Method
reset_breakpoints
(&self)
examples/02_libtiff/fuzzer.rs:38
Method
reset_breakpoints
(&self)
examples/04_syscall_fuzzer/fuzzer.rs:401
Method
reset_breakpoints
(&self)
examples/03_ffmpeg_custom_mutator/fuzzer.rs:37
Method
reset_breakpoints
(&self)
bench/fuzzer.rs:47
Method
reset_breakpoints
(&self)
bench/src/fuzzer.rs:47
Method
reset_breakpoints
(&self)
fuzzer_template/src/fuzzer.rs:35
Method
reset_custom_guest_memory
Reset the guest memory pages and returns the number of dirty pages reset # Errors If getting the dirty log fails # Panics If unable to take the st
src/fuzzvm.rs:3391
Method
reset_fuzzer_state
(&mut self)
examples/03_ffmpeg_custom_mutator/fuzzer.rs:26
Method
restore_dirty_pages
Restore all dirty pages as reported by KVM as well as pages dirtied manually using a function such as [`FuzzVm::write_bytes_dirty`]. Returns the total
src/fuzzvm.rs:2508
Method
restore_guest_debug_regs
Restore the debug register state to the snapshot # Errors Fail to get debug registers from KVM
src/fuzzvm.rs:3739
Method
restore_guest_fpu
Restore the guest FPU state using the [`VbCpu`] # Errors If `fpu.ftwx` from the snapshot [`VbCpu`] cannnot fit into a `u8` If `fpu.last_ip` or `fpu.
src/fuzzvm.rs:3570
Method
restore_guest_msrs
Restore the guest MSRs using the [`VbCpu`] # Errors If KVM fails to set any of the `MODIFIED_MSRS` # Panics If an MSR is added to `MODIFIED_MSRS`
src/fuzzvm.rs:3464
Method
restore_guest_regs
Restore the guest general purpose registers using the [`VbCpu`] for this [`FuzzVm`]
src/fuzzvm.rs:3621
Method
restore_guest_sregs
Restore the guest special registers using the [`VbCpu`] for this [`FuzzVm`] # Errors If given GDTR or IDTR limits are too large for KVM
src/fuzzvm.rs:3649
Function
run
( project_state: &ProjectState, args: &cmdline::RedqueenAnalysis, )
src/commands/redqueen.rs:31
Function
run
Execute the Trace subcommand to gather a single step trace over an input
src/commands/trace.rs:561
Function
run
Collect data about the given project
src/commands/project.rs:34
Function
run
Execute the Trace subcommand to gather a single step trace over an input
src/commands/find_input.rs:192
Function
run
Execute the Minimize subcommand to gather a single step trace over an input
src/commands/minimize.rs:331
Function
run
Execute the Coverage subcommand to gather coverage for a particular input
src/commands/coverage.rs:24
Method
run
(self)
coverage_scripts/bn_snapchange.py:61
Method
run
(self)
coverage_scripts/bn_snapchange.py:322
Method
run
(self)
fuzzer_template/coverage_scripts/bn_snapchange.py:61
Method
run
(self)
fuzzer_template/coverage_scripts/bn_snapchange.py:322
Method
run_until_reset
Execute the [`FuzzVm`] until a reset or timeout event occurs
src/fuzzvm.rs:4073
Method
sanity_check_vbcpu
Sanity check the [`VbCpu`] for erroneous values # Errors If the snapshot's apic base is not `APIC_BASE`
src/fuzzvm.rs:1039
Method
schedule_next_input
Get an input from the corpus based on this scheduling strategy. By default, a random corpus entry is returned
src/fuzzer.rs:150
Method
seek
(&mut self, fd: u64, offset: i32, whence: Whence)
src/filesystem.rs:133
Function
serialize_vec_u64_as_hex
Custom serialize for Vec<u64>
src/fuzz_input.rs:626
Method
set_input
(&mut self, input: &Self::Input, fuzzvm: &mut FuzzVm<Self>)
examples/01_getpid/fuzzer.rs:29
Method
set_input
(&mut self, input: &Self::Input, fuzzvm: &mut FuzzVm<Self>)
examples/05_redqueen/fuzzer.rs:28
Method
set_input
(&mut self, input: &Self::Input, fuzzvm: &mut FuzzVm<Self>)
examples/02_libtiff/fuzzer.rs:28
Method
set_input
(&mut self, input: &Self::Input, fuzzvm: &mut FuzzVm<Self>)
examples/04_syscall_fuzzer/fuzzer.rs:395
Method
set_input
(&mut self, _input: &MovGenerator, _fuzzvm: &mut FuzzVm<Self>)
examples/03_ffmpeg_custom_mutator/fuzzer.rs:31
← previous
next →
301–400 of 430, ranked by callers