diff options
-rw-r--r-- | Cargo.lock | 53 | ||||
-rw-r--r-- | Cargo.toml | 5 | ||||
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | src/main.rs | 3 |
4 files changed, 60 insertions, 7 deletions
@@ -33,6 +33,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] +name = "bitvec" +version = "0.19.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11593270830d9b037fbead730bb0c05ef6fbf6be55537a1e8e5892edef7e1f03" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] name = "clap" version = "2.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -48,6 +60,12 @@ dependencies = [ ] [[package]] +name = "funty" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ba62103ce691c2fd80fbae2213dfdda9ce60804973ac6b6e97de818ea7f52c8" + +[[package]] name = "hermit-abi" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -131,6 +149,12 @@ dependencies = [ ] [[package]] +name = "radium" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8" + +[[package]] name = "redox_syscall" version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -191,6 +215,12 @@ dependencies = [ ] [[package]] +name = "tap" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e" + +[[package]] name = "termion" version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -258,6 +288,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[package]] name = "yaxpeax-arch" version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -291,7 +327,7 @@ dependencies = [ [[package]] name = "yaxpeax-dis" -version = "0.2.1" +version = "0.2.2" dependencies = [ "clap", "hex", @@ -299,6 +335,7 @@ dependencies = [ "yaxpeax-arch", "yaxpeax-arm", "yaxpeax-avr", + "yaxpeax-ia64", "yaxpeax-m16c", "yaxpeax-mips", "yaxpeax-msp430", @@ -308,6 +345,16 @@ dependencies = [ ] [[package]] +name = "yaxpeax-ia64" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7217bde169dd630a6a36ba6d39771b3e62ceabc0cbd33330728c95ed94b2691" +dependencies = [ + "bitvec", + "yaxpeax-arch", +] + +[[package]] name = "yaxpeax-m16c" version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -361,9 +408,9 @@ dependencies = [ [[package]] name = "yaxpeax-x86" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd9da115d2a5dcf23e1c5bfc80456a3ae0fad0fd011926dcaf6166eea97caaa4" +checksum = "1421f17039bf6032da3243c2e3f3b8d739da14058ac62ab3c668274fa6140eba" dependencies = [ "num-traits", "serde", @@ -1,6 +1,6 @@ [package] name = "yaxpeax-dis" -version = "0.2.1" +version = "0.2.2" authors = ["iximeow <me@iximeow.net>"] license = "0BSD" edition = "2018" @@ -28,4 +28,5 @@ yaxpeax-mips = { version = "0.0.3" } yaxpeax-msp430 = { version = "0.0.5" } yaxpeax-pic17 = { version = "0.0.3" } yaxpeax-pic18 = { version = "0.0.3" } -yaxpeax-x86 = { version = "0.1.0" } +yaxpeax-x86 = { version = "0.1.2" } +yaxpeax-ia64 = { version = "0.1.1" } @@ -16,8 +16,12 @@ or `yaxdis -a armv7 83591764ab46cd42`, producing: 0x00000000: 83591764 : ldrvs r5, [r7], #-0x260c 0x00000004: ab46cd42 : sbcmi sp, 0x46ab ``` +or `yaxdis -a ia64 e38000000061e200000042c0e1803080`, producing: +``` +0x00000000: e38000000061e200000042c0e1803080: [MII] (p07) mov r16=r0; (p09) mov r14=r0;; and r14=r14,r16;; +``` `yaxdis` also takes a `-v` flag to emit more verbose information (really, a `Debug` display of decoded instructions). ## supported architectures / ! user beware ! -`yaxdis` should support all architectures listed in the [yaxpeax-arch readme](https://git.iximeow.net/yaxpeax-arch/). that is currently `x86_64`, `armv7`, `armv8`, `mips`, `msp430`, `pic17`, `pic18`, and `m16c`. specific levels of support and stability vary, beware. +`yaxdis` should support all architectures listed in the [yaxpeax-arch readme](https://git.iximeow.net/yaxpeax-arch/). that is currently `x86_64`, `armv7`, `armv8`, `mips`, `msp430`, `pic17`, `pic18`, `m16c`, `avr`, and `ia64`. specific levels of support and stability vary, beware. diff --git a/src/main.rs b/src/main.rs index d194a50..732f747 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,7 +16,7 @@ fn main() { .long("--architecture") .takes_value(true) .possible_values(&[ - "x86_64", "x86:32", "armv7", "armv8", "avr", "mips", "msp430", "pic17", + "x86_64", "x86:32", "ia64", "armv7", "armv8", "avr", "mips", "msp430", "pic17", "pic18", "m16c", ]) .help("architecture to disassemble input as."), @@ -74,6 +74,7 @@ fn main() { match arch_str { "x86_64" => decode_input::<yaxpeax_x86::long_mode::Arch>(&buf, verbose), "x86:32" => decode_input::<yaxpeax_x86::protected_mode::Arch>(&buf, verbose), + "ia64" => decode_input::<yaxpeax_ia64::IA64>(&buf, verbose), "avr" => decode_input::<yaxpeax_avr::AVR>(&buf, verbose), "armv7" => decode_input::<yaxpeax_arm::armv7::ARMv7>(&buf, verbose), "armv8" => decode_input::<yaxpeax_arm::armv8::a64::ARMv8>(&buf, verbose), |