rizin/test/db/cmd/cmd_list
Dean bf2871c7eb
Add dotnet PE support (#2528)
* Add CIL support

* refactor dotnet parsing to pe/dotnet.c
* parse PE CLR metatables (based on yara implementation)
* use CLR methoddefs to add binsymbols (including method namespace/class)
* parse CLR method headers
* CIL disassembler using .NET opcodes.def
* CIL analysis plugin
2022-06-21 09:20:47 +08:00

562 lines
35 KiB
Text

NAME=Print the parser plugins
FILE==
CMDS=Lp
EXPECT=<<EOF
6502.pseudo
arm.pseudo
att2intel
avr.pseudo
chip8.pseudo
tms320.pseudo
dalvik.pseudo
m68k.pseudo
mips.pseudo
ppc.pseudo
v850.pseudo
wasm.pseudo
x86.pseudo
sh.pseudo
riscv.pseudo
z80.pseudo
EOF
RUN
NAME=Print the parser plugins in JSON
FILE==
CMDS=Lpj
EXPECT=<<EOF
[{"name":"6502.pseudo"},{"name":"arm.pseudo"},{"name":"att2intel"},{"name":"avr.pseudo"},{"name":"chip8.pseudo"},{"name":"tms320.pseudo"},{"name":"dalvik.pseudo"},{"name":"m68k.pseudo"},{"name":"mips.pseudo"},{"name":"ppc.pseudo"},{"name":"v850.pseudo"},{"name":"wasm.pseudo"},{"name":"x86.pseudo"},{"name":"sh.pseudo"},{"name":"riscv.pseudo"},{"name":"z80.pseudo"}]
EOF
RUN
NAME=Print the core plugins
FILE==
CMDS=Lc
EXPECT=<<EOF
java: Suite of java commands, type `java` for more info (Made by deroad, v1.0, LGPL-3.0-only)
dex: Suite of dex commands, type `dex` for more info (Made by deroad, v1.0, LGPL-3.0-only)
EOF
RUN
NAME=Print the core plugins in JSON
FILE==
CMDS=Lcj
EXPECT=<<EOF
[{"name":"java","description":"Suite of java commands, type `java` for more info","author":"deroad","version":"1.0","license":"LGPL-3.0-only"},{"name":"dex","description":"Suite of dex commands, type `dex` for more info","author":"deroad","version":"1.0","license":"LGPL-3.0-only"}]
EOF
RUN
NAME=Print the io plugins
FILE==
BROKEN=1
CMDS=Lo
EXPECT=<<EOF
rw_ ar Open ar/lib files (LGPL3) ar://,lib://
rw_ fd Local process filedescriptor IO (MIT) fd://
rw_ bfdbg Attach to brainfuck Debugger instance (LGPL3) bfdbg://
rwd bochs Attach to a BOCHS debugger instance (LGPL3) bochs://
r_d debug Attach to native debugger instance (LGPL3) dbg://,pidof://,waitfor:// v0.2.0 pancake
rw_ default Open local files (LGPL3) file://,nocache://
rwd gdb Attach to gdbserver instance (LGPL3) gdb://
rw_ gprobe Open gprobe connection (LGPL3) gprobe://
rw_ gzip Read/write gzipped files (LGPL3) gzip://
rw_ http Make http get requests (LGPL3) http://
rw_ ihex Open intel HEX file (LGPL) ihex://
r__ mach mach debug io (unsupported in this platform) (LGPL)
rw_ malloc Memory allocation plugin (LGPL3) malloc://,hex://
rw_ null Null plugin (LGPL3) null://
rw_ procpid Open /proc/[pid]/mem io (LGPL3) procpid://
rwd ptrace Ptrace and /proc/pid/mem (if available) io plugin (LGPL3) ptrace://,attach://
rwd qnx Attach to QNX pdebug instance (LGPL3) qnx://
rw_ rzk Kernel access API io (LGPL3) rzk://
rw_ rzpipe rzpipe io plugin (MIT) rzpipe://
rw_ rzweb rzweb io client plugin (LGPL3) rzweb://
rw_ rap Remote binary protocol plugin (MIT) rap://,raps://
rw_ self Read memory from self (LGPL3) self://
rw_ shm Shared memory resources plugin (MIT) shm://
rw_ sparse Sparse buffer allocation plugin (LGPL3) sparse://
rw_ tcp Load files via TCP (listen or connect) (LGPL3) tcp://
rwd winkd Attach to a KD debugger (LGPL3) winkd://
rwd winedbg Wine-dbg io and debug.io plugin (MIT) winedbg://
rw_ zip Open zip files (BSD) zip://,apk://,ipa://,jar://,zipall://,apkall://,ipaall://,jarall://
EOF
RUN
NAME=Print the io plugins in JSON
FILE==
BROKEN=1
CMDS=Loj
EXPECT=<<EOF
[{"permissions":"rw_","name":"ar","description":"Open ar/lib files","license":"LGPL3","uris":["ar://","lib://"]},{"permissions":"rw_","name":"fd","description":"Local process filedescriptor IO","license":"MIT","uris":["fd://"]},{"permissions":"rw_","name":"bfdbg","description":"Attach to brainfuck Debugger instance","license":"LGPL3","uris":["bfdbg://"]},{"permissions":"rwd","name":"bochs","description":"Attach to a BOCHS debugger instance","license":"LGPL3","uris":["bochs://"]},{"permissions":"r_d","name":"debug","description":"Attach to native debugger instance","license":"LGPL3","uris":["dbg://","pidof://","waitfor://"],"version":"0.2.0","author":"pancake"},{"permissions":"rw_","name":"default","description":"Open local files","license":"LGPL3","uris":["file://","nocache://"]},{"permissions":"rwd","name":"gdb","description":"Attach to gdbserver instance","license":"LGPL3","uris":["gdb://"]},{"permissions":"rw_","name":"gprobe","description":"Open gprobe connection","license":"LGPL3","uris":["gprobe://"]},{"permissions":"rw_","name":"gzip","description":"Read/write gzipped files","license":"LGPL3","uris":["gzip://"]},{"permissions":"rw_","name":"http","description":"Make http get requests","license":"LGPL3","uris":["http://"]},{"permissions":"rw_","name":"ihex","description":"Open intel HEX file","license":"LGPL","uris":["ihex://"]},{"permissions":"r__","name":"mach","description":"mach debug io (unsupported in this platform)","license":"LGPL"},{"permissions":"rw_","name":"malloc","description":"Memory allocation plugin","license":"LGPL3","uris":["malloc://","hex://"]},{"permissions":"rw_","name":"null","description":"Null plugin","license":"LGPL3","uris":["null://"]},{"permissions":"rw_","name":"procpid","description":"Open /proc/[pid]/mem io","license":"LGPL3","uris":["procpid://"]},{"permissions":"rwd","name":"ptrace","description":"Ptrace and /proc/pid/mem (if available) io plugin","license":"LGPL3","uris":["ptrace://","attach://"]},{"permissions":"rwd","name":"qnx","description":"Attach to QNX pdebug instance","license":"LGPL3","uris":["qnx://"]},{"permissions":"rw_","name":"rzk","description":"Kernel access API io","license":"LGPL3","uris":["rzk://"]},{"permissions":"rw_","name":"rzpipe","description":"rzpipe io plugin","license":"MIT","uris":["rzpipe://"]},{"permissions":"rw_","name":"rzweb","description":"rzweb io client plugin","license":"LGPL3","uris":["rzweb://"]},{"permissions":"rw_","name":"rap","description":"Remote binary protocol plugin","license":"MIT","uris":["rap://","raps://"]},{"permissions":"rw_","name":"self","description":"Read memory from self","license":"LGPL3","uris":["self://"]},{"permissions":"rw_","name":"shm","description":"Shared memory resources plugin","license":"MIT","uris":["shm://"]},{"permissions":"rw_","name":"sparse","description":"Sparse buffer allocation plugin","license":"LGPL3","uris":["sparse://"]},{"permissions":"rw_","name":"tcp","description":"Load files via TCP (listen or connect)","license":"LGPL3","uris":["tcp://"]},{"permissions":"rwd","name":"winkd","description":"Attach to a KD debugger","license":"LGPL3","uris":["winkd://"]},{"permissions":"rwd","name":"winedbg","description":"Wine-dbg io and debug.io plugin","license":"MIT","uris":["winedbg://"]},{"permissions":"rw_","name":"zip","description":"Open zip files","license":"BSD","uris":["zip://","apk://","ipa://","jar://","zipall://","apkall://","ipaall://","jarall://"]}]
EOF
RUN
NAME=Print the bin plugins
FILE==
CMDS=Li
EXPECT=<<EOF
bin any Dummy format rz_bin plugin (LGPL3)
bin art Android Runtime (LGPL3)
bin avr ATmel AVR MCUs (LGPL3)
bin bf brainfuck (LGPL3)
bin bflt bFLT uClinux executable (LGPL3)
bin bios BIOS bin plugin (LGPL)
bin bootimg Android Boot Image (LGPL3)
bin cgc CGC format rz_bin plugin (LGPL3)
bin coff COFF format rz_bin plugin (LGPL3)
bin dex dex bin plugin (LGPL3)
bin dmp64 Windows Crash Dump x64 rz_bin plugin (LGPL3)
bin dol Nintendo Dolphin binary format (BSD)
bin dyldcache dyldcache bin plugin (LGPL3)
bin elf ELF format plugin (LGPL3)
bin elf64 elf64 bin plugin (LGPL3)
bin java java bin plugin (LGPL3)
bin le LE/LX format plugin (LGPL3) GustavoLCR
bin luac LUA Compiled File (LGPL3)
bin mach0 mach0 bin plugin (LGPL3)
bin mach064 mach064 bin plugin (LGPL3)
bin mbn MBN/SBL bootloader things (LGPL3)
bin mdmp Minidump format rz_bin plugin (LGPL3)
bin menuet Menuet/KolibriOS bin plugin (LGPL3)
bin mz MZ bin plugin (MIT)
bin ne NE format plugin (LGPL3) GustavoLCR
bin nes NES (MIT)
bin nin3ds Nintendo 3DS FIRM format rz_bin plugin (LGPL3)
bin ninds Nintendo DS format rz_bin plugin (LGPL3)
bin ningb Gameboy format rz_bin plugin (LGPL3)
bin ningba Game Boy Advance format rz_bin plugin (LGPL3)
bin nro Nintendo Switch NRO0 binaries (MIT)
bin nso Nintendo Switch NSO0 binaries (MIT)
bin omf omf bin plugin (LGPL3)
bin qnx QNX executable file support (LGPL3) deepakchethan
bin p9 Plan9 bin plugin (LGPL3)
bin pe PE bin plugin (LGPL3)
bin pe64 PE64 (PE32+) bin plugin (LGPL3)
bin pebble Pebble Watch App (LGPL)
bin prg C64 PRG (LGPL3)
bin psxexe Sony PlayStation 1 Executable (LGPL3)
bin pyc Python byte-compiled file plugin (LGPL3)
bin sfc Super NES / Super Famicom ROM file (LGPL3)
bin smd SEGA Genesis/Megadrive (LGPL3)
bin sms SEGA MasterSystem/GameGear (LGPL3)
bin spc700 SNES-SPC700 Sound File Data (LGPL3)
bin symbols Apple Symbols file (MIT)
bin te TE bin plugin (LGPL3)
bin vsf VICE Snapshot File (LGPL3)
bin wasm WebAssembly bin plugin (MIT)
bin xbe Microsoft Xbox xbe format rz_bin plugin (LGPL3)
bin kernelcache kernelcache bin plugin (LGPL3)
bin z64 Nintendo 64 binaries big endian rz_bin plugin (LGPL3)
bin zimg zimg format bin plugin (LGPL3)
xtr .fatmach0 fat mach0 bin extractor plugin (LGPL3)
xtr .sep64 64-bit SEP bin extractor plugin (LGPL3)
ldr .linux Linux loader plugin for RzBin (MIT)
EOF
RUN
NAME=Print the bin plugins in quiet mode
FILE==
CMDS=Liq
EXPECT=<<EOF
any
art
avr
bf
bflt
bios
bootimg
cgc
coff
dex
dmp64
dol
dyldcache
elf
elf64
java
le
luac
mach0
mach064
mbn
mdmp
menuet
mz
ne
nes
nin3ds
ninds
ningb
ningba
nro
nso
omf
qnx
p9
pe
pe64
pebble
prg
psxexe
pyc
sfc
smd
sms
spc700
symbols
te
vsf
wasm
xbe
kernelcache
z64
zimg
xtr.fatmach0
xtr.sep64
ldr.linux
EOF
RUN
NAME=Print the bin plugins in JSON
FILE==
CMDS=Lij
EXPECT=<<EOF
[{"name":"any","description":"Dummy format rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"art","description":"Android Runtime","license":"LGPL3","author":"LGPL3"},{"name":"avr","description":"ATmel AVR MCUs","license":"LGPL3","author":"LGPL3"},{"name":"bf","description":"brainfuck","license":"LGPL3","author":"LGPL3"},{"name":"bflt","description":"bFLT uClinux executable","license":"LGPL3","author":"LGPL3"},{"name":"bios","description":"BIOS bin plugin","license":"LGPL","author":"LGPL"},{"name":"bootimg","description":"Android Boot Image","license":"LGPL3","author":"LGPL3"},{"name":"cgc","description":"CGC format rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"coff","description":"COFF format rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"dex","description":"dex bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"dmp64","description":"Windows Crash Dump x64 rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"dol","description":"Nintendo Dolphin binary format","license":"BSD","author":"BSD"},{"name":"dyldcache","description":"dyldcache bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"elf","description":"ELF format plugin","license":"LGPL3","author":"LGPL3"},{"name":"elf64","description":"elf64 bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"java","description":"java bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"le","description":"LE/LX format plugin","license":"LGPL3","author":"LGPL3"},{"name":"luac","description":"LUA Compiled File","license":"LGPL3","author":"LGPL3"},{"name":"mach0","description":"mach0 bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"mach064","description":"mach064 bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"mbn","description":"MBN/SBL bootloader things","license":"LGPL3","author":"LGPL3"},{"name":"mdmp","description":"Minidump format rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"menuet","description":"Menuet/KolibriOS bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"mz","description":"MZ bin plugin","license":"MIT","author":"MIT"},{"name":"ne","description":"NE format plugin","license":"LGPL3","author":"LGPL3"},{"name":"nes","description":"NES","license":"MIT","author":"MIT"},{"name":"nin3ds","description":"Nintendo 3DS FIRM format rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"ninds","description":"Nintendo DS format rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"ningb","description":"Gameboy format rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"ningba","description":"Game Boy Advance format rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"nro","description":"Nintendo Switch NRO0 binaries","license":"MIT","author":"MIT"},{"name":"nso","description":"Nintendo Switch NSO0 binaries","license":"MIT","author":"MIT"},{"name":"omf","description":"omf bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"qnx","description":"QNX executable file support","license":"LGPL3","author":"LGPL3"},{"name":"p9","description":"Plan9 bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"pe","description":"PE bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"pe64","description":"PE64 (PE32+) bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"pebble","description":"Pebble Watch App","license":"LGPL","author":"LGPL"},{"name":"prg","description":"C64 PRG","license":"LGPL3","author":"LGPL3"},{"name":"psxexe","description":"Sony PlayStation 1 Executable","license":"LGPL3","author":"LGPL3"},{"name":"pyc","description":"Python byte-compiled file plugin","license":"LGPL3","author":"LGPL3"},{"name":"sfc","description":"Super NES / Super Famicom ROM file","license":"LGPL3","author":"LGPL3"},{"name":"smd","description":"SEGA Genesis/Megadrive","license":"LGPL3","author":"LGPL3"},{"name":"sms","description":"SEGA MasterSystem/GameGear","license":"LGPL3","author":"LGPL3"},{"name":"spc700","description":"SNES-SPC700 Sound File Data","license":"LGPL3","author":"LGPL3"},{"name":"symbols","description":"Apple Symbols file","license":"MIT","author":"MIT"},{"name":"te","description":"TE bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"vsf","description":"VICE Snapshot File","license":"LGPL3","author":"LGPL3"},{"name":"wasm","description":"WebAssembly bin plugin","license":"MIT","author":"MIT"},{"name":"xbe","description":"Microsoft Xbox xbe format rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"kernelcache","description":"kernelcache bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"z64","description":"Nintendo 64 binaries big endian rz_bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"zimg","description":"zimg format bin plugin","license":"LGPL3","author":"LGPL3"},{"name":"xtr.fatmach0","description":"fat mach0 bin extractor plugin","license":"LGPL3"},{"name":"xtr.sep64","description":"64-bit SEP bin extractor plugin","license":"LGPL3"},{"name":"ldr.linux","description":"Linux loader plugin for RzBin","license":"MIT"}]
EOF
RUN
NAME=Print the hash plugins
FILE==
CMDS=Lh
EXPECT=<<EOF
algorithm license author
md4 LGPL3 deroad
md5 LGPL2 Alan DeKok (md5 algorithm implementation), deroad (plugin)
sha1 LGPL3 deroad
sha256 BSD-3 Aaron D. Gifford
sha384 BSD-3 Aaron D. Gifford
sha512 BSD-3 Aaron D. Gifford
fletcher8 LGPL3 deroad
fletcher16 LGPL3 deroad
fletcher32 LGPL3 deroad
fletcher64 LGPL3 deroad
adler32 LGPL3 deroad
crc8smbus LGPL3 deroad
crc8cdma2000 LGPL3 deroad
crc8darc LGPL3 deroad
crc8dvbs2 LGPL3 deroad
crc8ebu LGPL3 deroad
crc8icode LGPL3 deroad
crc8itu LGPL3 deroad
crc8maxim LGPL3 deroad
crc8rohc LGPL3 deroad
crc8wcdma LGPL3 deroad
crc15can LGPL3 deroad
crc16 LGPL3 deroad
crc16citt LGPL3 deroad
crc16usb LGPL3 deroad
crc16hdlc LGPL3 deroad
crc16augccitt LGPL3 deroad
crc16buypass LGPL3 deroad
crc16cdma2000 LGPL3 deroad
crc16dds110 LGPL3 deroad
crc16dectr LGPL3 deroad
crc16dectx LGPL3 deroad
crc16dnp LGPL3 deroad
crc16en13757 LGPL3 deroad
crc16genibus LGPL3 deroad
crc16maxim LGPL3 deroad
crc16mcrf4xx LGPL3 deroad
crc16riello LGPL3 deroad
crc16t10dif LGPL3 deroad
crc16teledisk LGPL3 deroad
crc16tms37157 LGPL3 deroad
crca LGPL3 deroad
crc16kermit LGPL3 deroad
crc16modbus LGPL3 deroad
crc16x25 LGPL3 deroad
crc16xmodem LGPL3 deroad
crc24 LGPL3 deroad
crc32 LGPL3 deroad
crc32ecma267 LGPL3 deroad
crc32c LGPL3 deroad
crc32bzip2 LGPL3 deroad
crc32d LGPL3 deroad
crc32mpeg2 LGPL3 deroad
crc32posix LGPL3 deroad
crc32q LGPL3 deroad
crc32jamcrc LGPL3 deroad
crc32xfer LGPL3 deroad
crc64 LGPL3 deroad
crc64ecma182 LGPL3 deroad
crc64we LGPL3 deroad
crc64xz LGPL3 deroad
crc64iso LGPL3 deroad
xor8 LGPL3 deroad
xor16 LGPL3 deroad
xxhash32 LGPL3 deroad
parity LGPL3 deroad
entropy LGPL3 deroad
entropy_fract LGPL3 deroad
EOF
RUN
NAME=Print the hash plugins in JSON
FILE==
CMDS=Lhj
EXPECT=<<EOF
[{"name":"md4","license":"LGPL3","author":"deroad"},{"name":"md5","license":"LGPL2","author":"Alan DeKok (md5 algorithm implementation), deroad (plugin)"},{"name":"sha1","license":"LGPL3","author":"deroad"},{"name":"sha256","license":"BSD-3","author":"Aaron D. Gifford"},{"name":"sha384","license":"BSD-3","author":"Aaron D. Gifford"},{"name":"sha512","license":"BSD-3","author":"Aaron D. Gifford"},{"name":"fletcher8","license":"LGPL3","author":"deroad"},{"name":"fletcher16","license":"LGPL3","author":"deroad"},{"name":"fletcher32","license":"LGPL3","author":"deroad"},{"name":"fletcher64","license":"LGPL3","author":"deroad"},{"name":"adler32","license":"LGPL3","author":"deroad"},{"name":"crc8smbus","license":"LGPL3","author":"deroad"},{"name":"crc8cdma2000","license":"LGPL3","author":"deroad"},{"name":"crc8darc","license":"LGPL3","author":"deroad"},{"name":"crc8dvbs2","license":"LGPL3","author":"deroad"},{"name":"crc8ebu","license":"LGPL3","author":"deroad"},{"name":"crc8icode","license":"LGPL3","author":"deroad"},{"name":"crc8itu","license":"LGPL3","author":"deroad"},{"name":"crc8maxim","license":"LGPL3","author":"deroad"},{"name":"crc8rohc","license":"LGPL3","author":"deroad"},{"name":"crc8wcdma","license":"LGPL3","author":"deroad"},{"name":"crc15can","license":"LGPL3","author":"deroad"},{"name":"crc16","license":"LGPL3","author":"deroad"},{"name":"crc16citt","license":"LGPL3","author":"deroad"},{"name":"crc16usb","license":"LGPL3","author":"deroad"},{"name":"crc16hdlc","license":"LGPL3","author":"deroad"},{"name":"crc16augccitt","license":"LGPL3","author":"deroad"},{"name":"crc16buypass","license":"LGPL3","author":"deroad"},{"name":"crc16cdma2000","license":"LGPL3","author":"deroad"},{"name":"crc16dds110","license":"LGPL3","author":"deroad"},{"name":"crc16dectr","license":"LGPL3","author":"deroad"},{"name":"crc16dectx","license":"LGPL3","author":"deroad"},{"name":"crc16dnp","license":"LGPL3","author":"deroad"},{"name":"crc16en13757","license":"LGPL3","author":"deroad"},{"name":"crc16genibus","license":"LGPL3","author":"deroad"},{"name":"crc16maxim","license":"LGPL3","author":"deroad"},{"name":"crc16mcrf4xx","license":"LGPL3","author":"deroad"},{"name":"crc16riello","license":"LGPL3","author":"deroad"},{"name":"crc16t10dif","license":"LGPL3","author":"deroad"},{"name":"crc16teledisk","license":"LGPL3","author":"deroad"},{"name":"crc16tms37157","license":"LGPL3","author":"deroad"},{"name":"crca","license":"LGPL3","author":"deroad"},{"name":"crc16kermit","license":"LGPL3","author":"deroad"},{"name":"crc16modbus","license":"LGPL3","author":"deroad"},{"name":"crc16x25","license":"LGPL3","author":"deroad"},{"name":"crc16xmodem","license":"LGPL3","author":"deroad"},{"name":"crc24","license":"LGPL3","author":"deroad"},{"name":"crc32","license":"LGPL3","author":"deroad"},{"name":"crc32ecma267","license":"LGPL3","author":"deroad"},{"name":"crc32c","license":"LGPL3","author":"deroad"},{"name":"crc32bzip2","license":"LGPL3","author":"deroad"},{"name":"crc32d","license":"LGPL3","author":"deroad"},{"name":"crc32mpeg2","license":"LGPL3","author":"deroad"},{"name":"crc32posix","license":"LGPL3","author":"deroad"},{"name":"crc32q","license":"LGPL3","author":"deroad"},{"name":"crc32jamcrc","license":"LGPL3","author":"deroad"},{"name":"crc32xfer","license":"LGPL3","author":"deroad"},{"name":"crc64","license":"LGPL3","author":"deroad"},{"name":"crc64ecma182","license":"LGPL3","author":"deroad"},{"name":"crc64we","license":"LGPL3","author":"deroad"},{"name":"crc64xz","license":"LGPL3","author":"deroad"},{"name":"crc64iso","license":"LGPL3","author":"deroad"},{"name":"xor8","license":"LGPL3","author":"deroad"},{"name":"xor16","license":"LGPL3","author":"deroad"},{"name":"xxhash32","license":"LGPL3","author":"deroad"},{"name":"parity","license":"LGPL3","author":"deroad"},{"name":"entropy","license":"LGPL3","author":"deroad"},{"name":"entropy_fract","license":"LGPL3","author":"deroad"}]
EOF
RUN
NAME=Print the hash plugins in JSON
FILE==
CMDS=Lhq
EXPECT=<<EOF
md4 md5 sha1 sha256 sha384 sha512 fletcher8 fletcher16 fletcher32 fletcher64 adler32 crc8smbus crc8cdma2000 crc8darc crc8dvbs2 crc8ebu crc8icode crc8itu crc8maxim crc8rohc crc8wcdma crc15can crc16 crc16citt crc16usb crc16hdlc crc16augccitt crc16buypass crc16cdma2000 crc16dds110 crc16dectr crc16dectx crc16dnp crc16en13757 crc16genibus crc16maxim crc16mcrf4xx crc16riello crc16t10dif crc16teledisk crc16tms37157 crca crc16kermit crc16modbus crc16x25 crc16xmodem crc24 crc32 crc32ecma267 crc32c crc32bzip2 crc32d crc32mpeg2 crc32posix crc32q crc32jamcrc crc32xfer crc64 crc64ecma182 crc64we crc64xz crc64iso xor8 xor16 xxhash32 parity entropy entropy_fract
EOF
RUN
NAME=Set the debug backend
FILE==
CMDS=<<EOF
Ld esil
Ld~!windbg
EOF
EXPECT=<<EOF
0 --- bf LGPL3
1 --- bochs LGPL3
2 --- dmp LGPL3
3 dbg esil LGPL3
4 --- gdb LGPL3
5 --- io MIT
6 --- null MIT
7 --- rap LGPL3
8 --- winkd LGPL3
9 --- qnx LGPL3
10 --- native LGPL3
EOF
RUN
NAME=Print the debug plugins
FILE==
CMDS=Ld~!windbg
EXPECT=<<EOF
0 --- bf LGPL3
1 --- bochs LGPL3
2 --- dmp LGPL3
3 --- esil LGPL3
4 --- gdb LGPL3
5 --- io MIT
6 --- null MIT
7 --- rap LGPL3
8 --- winkd LGPL3
9 --- qnx LGPL3
10 dbg native LGPL3
EOF
RUN
NAME=Print the debug plugins in JSON
FILE==
CMDS=<<EOF
Ldj~{[0]}
Ldj~{[1]}
Ldj~{[2]}
Ldj~{[3]}
Ldj~{[4]}
Ldj~{[5]}
Ldj~{[6]}
Ldj~{[7]}
Ldj~{[8]}
Ldj~{[9]}
Ldj~{[10].name}
Ldj~{[10].license}
EOF
EXPECT=<<EOF
{"arch":"bf","name":"bf","license":"LGPL3"}
{"arch":"x86","name":"bochs","license":"LGPL3"}
{"arch":"x86,arm","name":"dmp","license":"LGPL3"}
{"arch":"any","name":"esil","license":"LGPL3"}
{"arch":"x86,arm,sh,mips,avr,lm32,v850,ba2","name":"gdb","license":"LGPL3"}
{"arch":"any","name":"io","license":"MIT"}
{"arch":"any","name":"null","license":"MIT"}
{"arch":"any","name":"rap","license":"LGPL3"}
{"arch":"x86","name":"winkd","license":"LGPL3"}
{"arch":"x86,arm","name":"qnx","license":"LGPL3"}
native
LGPL3
EOF
RUN
NAME=Print the asm/analysis plugins
FILE==
CMDS=La
EXPECT=<<EOF
_dAe 8 16 6502 LGPL3 6502/NES/C64/Tamagotchi/T-1000 CPU
adAe 8 8051 PD 8051 Intel CPU
_dA_ 32 amd29k LGPL3 AMD 29k RISC CPU (by deroad)
a___ 16 32 64 arm.as LGPL3 as ARM Assembler (use RZ_ARM32_AS and RZ_ARM64_AS environment) (by pancake)
adAe 16 32 64 arm BSD Capstone ARM disassembler
adAe 8 16 avr LGPL3 AVR Atmel
adA_ 16 32 64 bf LGPL3 Brainfuck (by pancake, nibble) v4.0.0
_dA_ 32 chip8 LGPL3 Chip8 disassembler
_dA_ 16 32 64 cil LGPL3 .NET Common Intermediate Language
_dA_ 16 cr16 LGPL3 cr16 disassembly plugin
adA_ 32 64 dalvik LGPL3 AndroidVM Dalvik
ad__ 16 dcpu16 PD Mojang's DCPU-16
_dA_ 32 64 ebc LGPL3 EFI Bytecode (by Fedor Sakharov)
adAe 16 gb LGPL3 GameBoy(TM) (z80-like) (by condret)
_dAe 16 h8300 LGPL3 H8/300 disassembly plugin
_dA_ 32 hexagon LGPL3 Qualcomm Hexagon (QDSP6) V6 (by Rot127)
_dA_ 4 i4004 LGPL3 Intel 4004 microprocessor
_dA_ 8 i8080 BSD Intel 8080 CPU
adA_ 32 java LGPL-3 Java bytecode disassembler (by deroad)
_d__ 8 lh5801 LGPL3 SHARP LH5801 disassembler
_d__ 32 lm32 BSD disassembly plugin for Lattice Micro 32 ISA (by Felix Held)
adA_ 8 luac LGPL3 luac disassemble plugin
_dA_ 32 m68k BSD Capstone M68K disassembler
_dA_ 8 32 m680x BSD Capstone M680X Disassembler
_dA_ 32 malbolge LGPL3 Malbolge Ternary VM (by condret)
_dA_ 32 mcore LGPL3 Motorola MCORE disassembler
_d__ 16 mcs96 LGPL3 condrets car
adAe 16 32 64 mips BSD Capstone MIPS disassembler
_dA_ 16 msp430 LGPL3 msp430 disassembly plugin
adA_ 16 32 64 null MIT no disassemble (by pancake) v1.0.0
_dA_ 32 or1k LGPL3 OpenRISC 1000
_dAe 8 pic LGPL3 PIC disassembler
a___ 32 64 ppc.as LGPL3 as PPC Assembler (use RZ_PPC_AS environment) (by eagleoflqj)
_dAe 32 64 ppc BSD Capstone PowerPC disassembler (by pancake)
_dA_ 32 propeller LGPL3 propeller disassembly plugin
_dA_ 8 16 pyc LGPL3 PYC disassemble plugin
_dAe 32 rsp LGPL3 Reality Signal Processor
_dA_ 8 16 snes LGPL3 SuperNES CPU
_dA_ 32 64 sparc BSD Capstone SPARC disassembler
_dA_ 16 spc700 LGPL3 spc700, snes' sound-chip
_dA_ 32 64 sysz BSD SystemZ CPU disassembler
_dA_ 32 tms320 LGPLv3 TMS320 DSP family (c54x,c55x,c55x+,c64x)
_d__ 32 tms320c64x BSD Capstone TMS320c64x disassembler
_dAe 32 v810 LGPL3 v810 disassembly plugin (by pancake)
_dAe 32 v850 LGPL3 v850 disassembly plugin
adAe 32 wasm MIT WebAssembly (by cgvwzq) v0.1.0
a___ 16 32 64 x86.as LGPL3 Intel X86 GNU Assembler (Use RZ_X86_AS env)
_dAe 16 32 64 x86 BSD Capstone X86 disassembler
a___ 16 32 64 x86.nasm LGPL3 X86 nasm assembler
a___ 16 32 64 x86.nz LGPL3 x86 handmade assembler
_dA_ 16 xap PD XAP4 RISC (CSR)
_dA_ 32 xcore BSD Capstone XCore disassembler (by pancake)
_dA_ 16 32 arc GPL3 Argonaut RISC Core
_dA_ 32 cris GPL3 Axis Communications 32-bit embedded processor (by pancake)
_d__ 32 hppa GPL3 HP PA-RISC
_d__ 32 lanai GPL3 LANAI
adAe 32 64 mips.gnu GPL3 MIPS CPU
_dA_ 32 nios2 GPL3 NIOS II Embedded Processor
_dAe 32 64 riscv GPL3 RISC-V
_dAe 32 sh GPL3 SuperH-4 CPU
_dA_ 32 64 sparc.gnu GPL3 Scalable Processor Architecture
_dA_ 32 tricore GPL3 Siemens TriCore CPU
_dA_ 8 32 vax GPL3 VAX
_dAe 32 xtensa GPL3 XTensa CPU
adA_ 8 z80 GPL3 Zilog Z80 (by condret)
EOF
RUN
NAME=Print the asm/analysis plugins in quiet mode
FILE==
CMDS=Laq
EXPECT=<<EOF
6502
8051
amd29k
arm.as
arm
avr
bf
chip8
cil
cr16
dalvik
dcpu16
ebc
gb
h8300
hexagon
i4004
i8080
java
lh5801
lm32
luac
m68k
m680x
malbolge
mcore
mcs96
mips
msp430
null
or1k
pic
ppc.as
ppc
propeller
pyc
rsp
snes
sparc
spc700
sysz
tms320
tms320c64x
v810
v850
wasm
x86.as
x86
x86.nasm
x86.nz
xap
xcore
arc
cris
hppa
lanai
mips.gnu
nios2
riscv
sh
sparc.gnu
tricore
vax
xtensa
z80
EOF
RUN
NAME=Print the asm/analysis plugins in JSON
FILE==
CMDS=Laj
EXPECT=<<EOF
["6502":{"bits":"8 16 ","license":"LGPL3","description":"6502/NES/C64/Tamagotchi/T-1000 CPU","features":"_d"},"8051":{"bits":"8 ","license":"PD","description":"8051 Intel CPU","features":"ad"},"amd29k":{"bits":"32 ","license":"LGPL3","description":"AMD 29k RISC CPU","features":"_d"},"arm.as":{"bits":"16 32 64 ","license":"LGPL3","description":"as ARM Assembler (use RZ_ARM32_AS and RZ_ARM64_AS environment)","features":"a_"},"arm":{"bits":"16 32 64 ","license":"BSD","description":"Capstone ARM disassembler","features":"ad"},"avr":{"bits":"8 16 ","license":"LGPL3","description":"AVR Atmel","features":"ad"},"bf":{"bits":"16 32 64 ","license":"LGPL3","description":"Brainfuck","features":"ad"},"chip8":{"bits":"32 ","license":"LGPL3","description":"Chip8 disassembler","features":"_d"},"cil":{"bits":"16 32 64 ","license":"LGPL3","description":".NET Common Intermediate Language","features":"_d"},"cr16":{"bits":"16 ","license":"LGPL3","description":"cr16 disassembly plugin","features":"_d"},"dalvik":{"bits":"32 64 ","license":"LGPL3","description":"AndroidVM Dalvik","features":"ad"},"dcpu16":{"bits":"16 ","license":"PD","description":"Mojang's DCPU-16","features":"ad"},"ebc":{"bits":"32 64 ","license":"LGPL3","description":"EFI Bytecode","features":"_d"},"gb":{"bits":"16 ","license":"LGPL3","description":"GameBoy(TM) (z80-like)","features":"ad"},"h8300":{"bits":"16 ","license":"LGPL3","description":"H8/300 disassembly plugin","features":"_d"},"hexagon":{"bits":"32 ","license":"LGPL3","description":"Qualcomm Hexagon (QDSP6) V6","features":"_d"},"i4004":{"bits":"4 ","license":"LGPL3","description":"Intel 4004 microprocessor","features":"_d"},"i8080":{"bits":"8 ","license":"BSD","description":"Intel 8080 CPU","features":"_d"},"java":{"bits":"32 ","license":"LGPL-3","description":"Java bytecode disassembler","features":"ad"},"lh5801":{"bits":"8 ","license":"LGPL3","description":"SHARP LH5801 disassembler","features":"_d"},"lm32":{"bits":"32 ","license":"BSD","description":"disassembly plugin for Lattice Micro 32 ISA","features":"_d"},"luac":{"bits":"8 ","license":"LGPL3","description":"luac disassemble plugin","features":"ad"},"m68k":{"bits":"32 ","license":"BSD","description":"Capstone M68K disassembler","features":"_d"},"m680x":{"bits":"8 32 ","license":"BSD","description":"Capstone M680X Disassembler","features":"_d"},"malbolge":{"bits":"32 ","license":"LGPL3","description":"Malbolge Ternary VM","features":"_d"},"mcore":{"bits":"32 ","license":"LGPL3","description":"Motorola MCORE disassembler","features":"_d"},"mcs96":{"bits":"16 ","license":"LGPL3","description":"condrets car","features":"_d"},"mips":{"bits":"16 32 64 ","license":"BSD","description":"Capstone MIPS disassembler","features":"ad"},"msp430":{"bits":"16 ","license":"LGPL3","description":"msp430 disassembly plugin","features":"_d"},"null":{"bits":"16 32 64 ","license":"MIT","description":"no disassemble","features":"ad"},"or1k":{"bits":"32 ","license":"LGPL3","description":"OpenRISC 1000","features":"_d"},"pic":{"bits":"8 ","license":"LGPL3","description":"PIC disassembler","features":"_d"},"ppc.as":{"bits":"32 64 ","license":"LGPL3","description":"as PPC Assembler (use RZ_PPC_AS environment)","features":"a_"},"ppc":{"bits":"32 64 ","license":"BSD","description":"Capstone PowerPC disassembler","features":"_d"},"propeller":{"bits":"32 ","license":"LGPL3","description":"propeller disassembly plugin","features":"_d"},"pyc":{"bits":"8 16 ","license":"LGPL3","description":"PYC disassemble plugin","features":"_d"},"rsp":{"bits":"32 ","license":"LGPL3","description":"Reality Signal Processor","features":"_d"},"snes":{"bits":"8 16 ","license":"LGPL3","description":"SuperNES CPU","features":"_d"},"sparc":{"bits":"32 64 ","license":"BSD","description":"Capstone SPARC disassembler","features":"_d"},"spc700":{"bits":"16 ","license":"LGPL3","description":"spc700, snes' sound-chip","features":"_d"},"sysz":{"bits":"32 64 ","license":"BSD","description":"SystemZ CPU disassembler","features":"_d"},"tms320":{"bits":"32 ","license":"LGPLv3","description":"TMS320 DSP family (c54x,c55x,c55x+,c64x)","features":"_d"},"tms320c64x":{"bits":"32 ","license":"BSD","description":"Capstone TMS320c64x disassembler","features":"_d"},"v810":{"bits":"32 ","license":"LGPL3","description":"v810 disassembly plugin","features":"_d"},"v850":{"bits":"32 ","license":"LGPL3","description":"v850 disassembly plugin","features":"_d"},"wasm":{"bits":"32 ","license":"MIT","description":"WebAssembly","features":"ad"},"x86.as":{"bits":"16 32 64 ","license":"LGPL3","description":"Intel X86 GNU Assembler (Use RZ_X86_AS env)","features":"a_"},"x86":{"bits":"16 32 64 ","license":"BSD","description":"Capstone X86 disassembler","features":"_d"},"x86.nasm":{"bits":"16 32 64 ","license":"LGPL3","description":"X86 nasm assembler","features":"a_"},"x86.nz":{"bits":"16 32 64 ","license":"LGPL3","description":"x86 handmade assembler","features":"a_"},"xap":{"bits":"16 ","license":"PD","description":"XAP4 RISC (CSR)","features":"_d"},"xcore":{"bits":"32 ","license":"BSD","description":"Capstone XCore disassembler","features":"_d"},"arc":{"bits":"16 32 ","license":"GPL3","description":"Argonaut RISC Core","features":"_d"},"cris":{"bits":"32 ","license":"GPL3","description":"Axis Communications 32-bit embedded processor","features":"_d"},"hppa":{"bits":"32 ","license":"GPL3","description":"HP PA-RISC","features":"_d"},"lanai":{"bits":"32 ","license":"GPL3","description":"LANAI","features":"_d"},"mips.gnu":{"bits":"32 64 ","license":"GPL3","description":"MIPS CPU","features":"ad"},"nios2":{"bits":"32 ","license":"GPL3","description":"NIOS II Embedded Processor","features":"_d"},"riscv":{"bits":"32 64 ","license":"GPL3","description":"RISC-V","features":"_d"},"sh":{"bits":"32 ","license":"GPL3","description":"SuperH-4 CPU","features":"_d"},"sparc.gnu":{"bits":"32 64 ","license":"GPL3","description":"Scalable Processor Architecture","features":"_d"},"tricore":{"bits":"32 ","license":"GPL3","description":"Siemens TriCore CPU","features":"_d"},"vax":{"bits":"8 32 ","license":"GPL3","description":"VAX","features":"_d"},"xtensa":{"bits":"32 ","license":"GPL3","description":"XTensa CPU","features":"_d"},"z80":{"bits":"8 ","license":"GPL3","description":"Zilog Z80","features":"ad"}]
EOF
RUN
NAME=Print the lang plugins
FILE==
CMDS=<<EOF
Ll~^pipe
Ll~lib
EOF
EXPECT=<<EOF
pipe: Use #!pipe node script.js (LGPL)
lib: Load libs directly into rizin (LGPL)
EOF
RUN
NAME=Print the lang plugins in JSON
BROKEN=1
FILE==
CMDS=Llj
EXPECT=<<EOF
[{"name":"c","description":"C language extension","license":"LGPL"},{"name":"cpipe","description":"rzpipe scripting in C","license":"LGPL"},{"name":"vala","description":"Vala language extension","license":"LGPL"},{"name":"rust","description":"Rust language extension","license":"MIT"},{"name":"zig","description":"Zig language extension","license":"MIT"},{"name":"spp","description":"SPP template programs","license":"MIT"},{"name":"pipe","description":"Use #!pipe node script.js","license":"LGPL"},{"name":"lib","description":"Load libs directly into rizin","license":"LGPL"}]
EOF
RUN