summaryrefslogtreecommitdiff
path: root/rust/examples
diff options
context:
space:
mode:
authorMichael Krasnitski <michael.krasnitski@gmail.com>2024-02-21 09:36:48 -0500
committerKyle Martin <krm504@nyu.edu>2024-04-09 12:19:40 -0400
commit111be980e6578e3799ded8e685ae7158027bfe55 (patch)
tree7fe0d0ea86971aa9be37835ebd0bae1a4cf18fce /rust/examples
parente35a98e0bf47e86f127051ee048ff724d6f10a8e (diff)
Use name method in visitor examples
Diffstat (limited to 'rust/examples')
-rw-r--r--rust/examples/hlil_visitor/src/main.rs130
-rw-r--r--rust/examples/mlil_visitor/src/main.rs138
2 files changed, 4 insertions, 264 deletions
diff --git a/rust/examples/hlil_visitor/src/main.rs b/rust/examples/hlil_visitor/src/main.rs
index 6d155ea1..71c283a8 100644
--- a/rust/examples/hlil_visitor/src/main.rs
+++ b/rust/examples/hlil_visitor/src/main.rs
@@ -2,9 +2,7 @@ use std::env;
use binaryninja::binaryview::BinaryViewExt;
use binaryninja::hlil::HighLevelILLiftedOperand;
-use binaryninja::hlil::{
- HighLevelILFunction, HighLevelILLiftedInstruction, HighLevelILLiftedInstructionKind,
-};
+use binaryninja::hlil::{HighLevelILFunction, HighLevelILLiftedInstruction};
use binaryninja::types::Variable;
fn print_indent(indent: usize) {
@@ -12,131 +10,7 @@ fn print_indent(indent: usize) {
}
fn print_operation(operation: &HighLevelILLiftedInstruction) {
- use HighLevelILLiftedInstructionKind::*;
- match &operation.kind {
- Adc(_) => print!("Adc"),
- Sbb(_) => print!("Sbb"),
- Rlc(_) => print!("Rlc"),
- Rrc(_) => print!("Rrc"),
- Add(_) => print!("Add"),
- Sub(_) => print!("Sub"),
- And(_) => print!("And"),
- Or(_) => print!("Or"),
- Xor(_) => print!("Xor"),
- Lsl(_) => print!("Lsl"),
- Lsr(_) => print!("Lsr"),
- Asr(_) => print!("Asr"),
- Rol(_) => print!("Rol"),
- Ror(_) => print!("Ror"),
- Mul(_) => print!("Mul"),
- MuluDp(_) => print!("MuluDp"),
- MulsDp(_) => print!("MulsDp"),
- Divu(_) => print!("Divu"),
- DivuDp(_) => print!("DivuDp"),
- Divs(_) => print!("Divs"),
- DivsDp(_) => print!("DivsDp"),
- Modu(_) => print!("Modu"),
- ModuDp(_) => print!("ModuDp"),
- Mods(_) => print!("Mods"),
- ModsDp(_) => print!("ModsDp"),
- CmpE(_) => print!("CmpE"),
- CmpNe(_) => print!("CmpNe"),
- CmpSlt(_) => print!("CmpSlt"),
- CmpUlt(_) => print!("CmpUlt"),
- CmpSle(_) => print!("CmpSle"),
- CmpUle(_) => print!("CmpUle"),
- CmpSge(_) => print!("CmpSge"),
- CmpUge(_) => print!("CmpUge"),
- CmpSgt(_) => print!("CmpSgt"),
- CmpUgt(_) => print!("CmpUgt"),
- TestBit(_) => print!("TestBit"),
- AddOverflow(_) => print!("AddOverflow"),
- Fadd(_) => print!("Fadd"),
- Fsub(_) => print!("Fsub"),
- Fmul(_) => print!("Fmul"),
- Fdiv(_) => print!("Fdiv"),
- FcmpE(_) => print!("FcmpE"),
- FcmpNe(_) => print!("FcmpNe"),
- FcmpLt(_) => print!("FcmpLt"),
- FcmpLe(_) => print!("FcmpLe"),
- FcmpGe(_) => print!("FcmpGe"),
- FcmpGt(_) => print!("FcmpGt"),
- FcmpO(_) => print!("FcmpO"),
- FcmpUo(_) => print!("FcmpUo"),
- ArrayIndex(_) => print!("ArrayIndex"),
- ArrayIndexSsa(_) => print!("ArrayIndexSsa"),
- Assign(_) => print!("Assign"),
- AssignMemSsa(_) => print!("AssignMemSsa"),
- AssignUnpack(_) => print!("AssignUnpack"),
- AssignUnpackMemSsa(_) => print!("AssignUnpackMemSsa"),
- Block(_) => print!("Block"),
- Call(_) => print!("Call"),
- Tailcall(_) => print!("Tailcall"),
- CallSsa(_) => print!("CallSsa"),
- Case(_) => print!("Case"),
- Const(_) => print!("Const"),
- ConstPtr(_) => print!("ConstPtr"),
- Import(_) => print!("Import"),
- ConstData(_) => print!("ConstData"),
- Deref(_) => print!("Deref"),
- AddressOf(_) => print!("AddressOf"),
- Neg(_) => print!("Neg"),
- Not(_) => print!("Not"),
- Sx(_) => print!("Sx"),
- Zx(_) => print!("Zx"),
- LowPart(_) => print!("LowPart"),
- BoolToInt(_) => print!("BoolToInt"),
- UnimplMem(_) => print!("UnimplMem"),
- Fsqrt(_) => print!("Fsqrt"),
- Fneg(_) => print!("Fneg"),
- Fabs(_) => print!("Fabs"),
- FloatToInt(_) => print!("FloatToInt"),
- IntToFloat(_) => print!("IntToFloat"),
- FloatConv(_) => print!("FloatConv"),
- RoundToInt(_) => print!("RoundToInt"),
- Floor(_) => print!("Floor"),
- Ceil(_) => print!("Ceil"),
- Ftrunc(_) => print!("Ftrunc"),
- DerefFieldSsa(_) => print!("DerefFieldSsa"),
- DerefSsa(_) => print!("DerefSsa"),
- ExternPtr(_) => print!("ExternPtr"),
- FloatConst(_) => print!("FloatConst"),
- For(_) => print!("For"),
- ForSsa(_) => print!("ForSsa"),
- Goto(_) => print!("Goto"),
- Label(_) => print!("Label"),
- If(_) => print!("If"),
- Intrinsic(_) => print!("Intrinsic"),
- IntrinsicSsa(_) => print!("IntrinsicSsa"),
- Jump(_) => print!("Jump"),
- MemPhi(_) => print!("MemPhi"),
- Nop => print!("Nop"),
- Break => print!("Break"),
- Continue => print!("Continue"),
- Noret => print!("Noret"),
- Unreachable => print!("Unreachable"),
- Bp => print!("Bp"),
- Undef => print!("Undef"),
- Unimpl => print!("Unimpl"),
- Ret(_) => print!("Ret"),
- Split(_) => print!("Split"),
- StructField(_) => print!("StructField"),
- DerefField(_) => print!("DerefField"),
- Switch(_) => print!("Switch"),
- Syscall(_) => print!("Syscall"),
- SyscallSsa(_) => print!("SyscallSsa"),
- Trap(_) => print!("Trap"),
- VarDeclare(_) => print!("VarDeclare"),
- Var(_) => print!("Var"),
- VarInit(_) => print!("VarInit"),
- VarInitSsa(_) => print!("VarInitSsa"),
- VarPhi(_) => print!("VarPhi"),
- VarSsa(_) => print!("VarSsa"),
- While(_) => print!("While"),
- DoWhile(_) => print!("DoWhile"),
- WhileSsa(_) => print!("WhileSsa"),
- DoWhileSsa(_) => print!("DoWhileSsa"),
- }
+ print!("{}", operation.name());
}
fn print_variable(func: &HighLevelILFunction, var: &Variable) {
diff --git a/rust/examples/mlil_visitor/src/main.rs b/rust/examples/mlil_visitor/src/main.rs
index 63d2f50e..c38d59f4 100644
--- a/rust/examples/mlil_visitor/src/main.rs
+++ b/rust/examples/mlil_visitor/src/main.rs
@@ -2,9 +2,7 @@ use std::env;
use binaryninja::binaryview::BinaryViewExt;
use binaryninja::mlil::MediumLevelILLiftedOperand;
-use binaryninja::mlil::{
- MediumLevelILFunction, MediumLevelILLiftedInstruction, MediumLevelILLiftedInstructionKind,
-};
+use binaryninja::mlil::{MediumLevelILFunction, MediumLevelILLiftedInstruction};
use binaryninja::types::Variable;
fn print_indent(indent: usize) {
@@ -12,139 +10,7 @@ fn print_indent(indent: usize) {
}
fn print_operation(operation: &MediumLevelILLiftedInstruction) {
- use MediumLevelILLiftedInstructionKind::*;
- match operation.kind {
- Nop => print!("Nop"),
- Noret => print!("Noret"),
- Bp => print!("Bp"),
- Undef => print!("Undef"),
- Unimpl => print!("Unimpl"),
- If(_) => print!("If"),
- FloatConst(_) => print!("FloatConst"),
- Const(_) => print!("Const"),
- ConstPtr(_) => print!("ConstPtr"),
- Import(_) => print!("Import"),
- ExternPtr(_) => print!("ExternPtr"),
- ConstData(_) => print!("ConstData"),
- Jump(_) => print!("Jump"),
- RetHint(_) => print!("RetHint"),
- StoreSsa(_) => print!("StoreSsa"),
- StoreStructSsa(_) => print!("StoreStructSsa"),
- StoreStruct(_) => print!("StoreStruct"),
- Store(_) => print!("Store"),
- JumpTo(_) => print!("JumpTo"),
- Goto(_) => print!("Goto"),
- FreeVarSlot(_) => print!("FreeVarSlot"),
- SetVarField(_) => print!("SetVarField"),
- SetVar(_) => print!("SetVar"),
- FreeVarSlotSsa(_) => print!("FreeVarSlotSsa"),
- SetVarSsaField(_) => print!("SetVarSsaField"),
- SetVarAliasedField(_) => print!("SetVarAliasedField"),
- SetVarAliased(_) => print!("SetVarAliased"),
- SetVarSsa(_) => print!("SetVarSsa"),
- VarPhi(_) => print!("VarPhi"),
- MemPhi(_) => print!("MemPhi"),
- VarSplit(_) => print!("VarSplit"),
- SetVarSplit(_) => print!("SetVarSplit"),
- VarSplitSsa(_) => print!("VarSplitSsa"),
- SetVarSplitSsa(_) => print!("SetVarSplitSsa"),
- Add(_) => print!("Add"),
- Sub(_) => print!("Sub"),
- And(_) => print!("And"),
- Or(_) => print!("Or"),
- Xor(_) => print!("Xor"),
- Lsl(_) => print!("Lsl"),
- Lsr(_) => print!("Lsr"),
- Asr(_) => print!("Asr"),
- Rol(_) => print!("Rol"),
- Ror(_) => print!("Ror"),
- Mul(_) => print!("Mul"),
- MuluDp(_) => print!("MuluDp"),
- MulsDp(_) => print!("MulsDp"),
- Divu(_) => print!("Divu"),
- DivuDp(_) => print!("DivuDp"),
- Divs(_) => print!("Divs"),
- DivsDp(_) => print!("DivsDp"),
- Modu(_) => print!("Modu"),
- ModuDp(_) => print!("ModuDp"),
- Mods(_) => print!("Mods"),
- ModsDp(_) => print!("ModsDp"),
- CmpE(_) => print!("CmpE"),
- CmpNe(_) => print!("CmpNe"),
- CmpSlt(_) => print!("CmpSlt"),
- CmpUlt(_) => print!("CmpUlt"),
- CmpSle(_) => print!("CmpSle"),
- CmpUle(_) => print!("CmpUle"),
- CmpSge(_) => print!("CmpSge"),
- CmpUge(_) => print!("CmpUge"),
- CmpSgt(_) => print!("CmpSgt"),
- CmpUgt(_) => print!("CmpUgt"),
- TestBit(_) => print!("TestBit"),
- AddOverflow(_) => print!("AddOverflow"),
- FcmpE(_) => print!("FcmpE"),
- FcmpNe(_) => print!("FcmpNe"),
- FcmpLt(_) => print!("FcmpLt"),
- FcmpLe(_) => print!("FcmpLe"),
- FcmpGe(_) => print!("FcmpGe"),
- FcmpGt(_) => print!("FcmpGt"),
- FcmpO(_) => print!("FcmpO"),
- FcmpUo(_) => print!("FcmpUo"),
- Fadd(_) => print!("Fadd"),
- Fsub(_) => print!("Fsub"),
- Fmul(_) => print!("Fmul"),
- Fdiv(_) => print!("Fdiv"),
- Adc(_) => print!("Adc"),
- Sbb(_) => print!("Sbb"),
- Rlc(_) => print!("Rlc"),
- Rrc(_) => print!("Rrc"),
- Call(_) => print!("Call"),
- Tailcall(_) => print!("Tailcall"),
- Syscall(_) => print!("Syscall"),
- Intrinsic(_) => print!("Intrinsic"),
- IntrinsicSsa(_) => print!("IntrinsicSsa"),
- CallSsa(_) => print!("CallSsa"),
- TailcallSsa(_) => print!("TailcallSsa"),
- CallUntypedSsa(_) => print!("CallUntypedSsa"),
- TailcallUntypedSsa(_) => print!("TailcallUntypedSsa"),
- SyscallSsa(_) => print!("SyscallSsa"),
- SyscallUntypedSsa(_) => print!("SyscallUntypedSsa"),
- CallUntyped(_) => print!("CallUntyped"),
- TailcallUntyped(_) => print!("TailcallUntyped"),
- SyscallUntyped(_) => print!("SyscallUntyped"),
- SeparateParamList(_) => print!("SeparateParamList"),
- SharedParamSlot(_) => print!("SharedParamSlot"),
- Neg(_) => print!("Neg"),
- Not(_) => print!("Not"),
- Sx(_) => print!("Sx"),
- Zx(_) => print!("Zx"),
- LowPart(_) => print!("LowPart"),
- BoolToInt(_) => print!("BoolToInt"),
- UnimplMem(_) => print!("UnimplMem"),
- Fsqrt(_) => print!("Fsqrt"),
- Fneg(_) => print!("Fneg"),
- Fabs(_) => print!("Fabs"),
- FloatToInt(_) => print!("FloatToInt"),
- IntToFloat(_) => print!("IntToFloat"),
- FloatConv(_) => print!("FloatConv"),
- RoundToInt(_) => print!("RoundToInt"),
- Floor(_) => print!("Floor"),
- Ceil(_) => print!("Ceil"),
- Ftrunc(_) => print!("Ftrunc"),
- Load(_) => print!("Load"),
- LoadStruct(_) => print!("LoadStruct"),
- LoadStructSsa(_) => print!("LoadStructSsa"),
- LoadSsa(_) => print!("LoadSsa"),
- Ret(_) => print!("Ret"),
- Var(_) => print!("Var"),
- AddressOf(_) => print!("AddressOf"),
- VarField(_) => print!("VarField"),
- AddressOfField(_) => print!("AddressOfField"),
- VarSsa(_) => print!("VarSsa"),
- VarAliased(_) => print!("VarAliased"),
- VarSsaField(_) => print!("VarSsaField"),
- VarAliasedField(_) => print!("VarAliasedField"),
- Trap(_) => print!("Trap"),
- }
+ print!("{}", operation.name());
}
fn print_variable(func: &MediumLevelILFunction, var: &Variable) {