radareorg / radare2

UNIX-like reverse engineering framework and command-line toolset
https://www.radare.org/
GNU Lesser General Public License v3.0
20.2k stars 2.96k forks source link

Radare2 crashes when I used -A flag or aaa in command line #15474

Closed dmknght closed 4 years ago

dmknght commented 4 years ago

This template is meant for bug reports, if you have a feature request, please be as descriptive as possible and delete the template

Make sure you are testing using the latest git version of radare2 before submitting any issue.

If you would like to report a bug, please fill the template below

Work environment

Questions Answers
OS/arch/bits (mandatory) Parrot Security OS 4.7 (amd64)
File format of the file you reverse (mandatory) ELF
Architecture/bits of the file (mandatory) x86
r2 -v full output, not truncated (mandatory) radare2 4.1.0-git 0 @ linux-x86-64 git.4.1.0-git commit: unknown build: 2019-11-16__23:15:24

Expected behavior

radare2 analysis file normally (it worked for older versions)

Actual behavior

It crashed when i use r2 -A <binary> or r2 <binary> then aaa. This is output from terminal

[x] Analyze all flags starting with sym. and entry0 (aa)
[x] Analyze function calls (aac)
[x] Analyze len bytes of instructions for references (aar)
[x] Check for objc references
[x] Check for vtables
[Segmentation faultnalysis for all functions (aaft)

Screenshot at 2019-11-16 23-38-54

Steps to reproduce the behavior

Additional Logs, screenshots, source-code, configuration dump, ...

GustavoLCR commented 4 years ago

I cannot repro. Can you build with ./sys/sanitize.sh to get a useful backtrace?

dmknght commented 4 years ago

Here is my output

=========================================================================
Sanitize build script can be configured with the SANITIZE environment variable.
Use one of the following words to specify which sanitizers to use:
  - address     - detect memory errors
  - leak        - find memory leaks
  - memory      - detect uninitialized reads
  - undefined   - find undefined behaviour
  - ...
For more information:
  http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
For example:
  $ SANITIZE='leak memory address' sys/sanitize.sh
Current value:
  SANITIZE=address undefined signed-integer-overflow
=========================================================================
WARNING: Updating from remote repository
Already up to date.
Building on Linux : computing number of allowed parallel jobs.
Maximum allowed RAM memory per job is 150000 kB.
Number of CPUs is 4 and current free RAM allows us to run 27 jobs in parallel.
So, the build will run on 4 job(s).
/tmp/radare2
configure-plugins: Loading ./plugins.cfg ..
configure-plugins: Generating libr/config.h ..
configure-plugins: Generating libr/config.mk ..
SHARED: io.shm
STATIC: anal.6502 anal.6502_cs anal.8051 anal.amd29k anal.arc anal.arm_cs anal.arm_gnu anal.avr anal.bf anal.chip8 anal.cr16 anal.cris anal.dalvik anal.ebc anal.gb anal.h8300 anal.hexagon anal.i4004 anal.i8080 anal.java anal.m680x_cs anal.m68k_cs anal.malbolge anal.mcore anal.mips_cs anal.mips_gnu anal.msp430 anal.nios2 anal.null anal.pic anal.ppc_cs anal.ppc_gnu anal.riscv anal.riscv_cs anal.rsp anal.sh anal.snes anal.sparc_cs anal.sparc_gnu anal.sysz anal.tms320 anal.v810 anal.v850 anal.vax anal.wasm anal.ws anal.x86_cs anal.xap anal.xcore_cs anal.xtensa anal.z80 asm.6502 asm.6502_cs asm.8051 asm.amd29k asm.arc asm.arm_as asm.arm_cs asm.arm_gnu asm.arm_winedbg asm.avr asm.bf asm.chip8 asm.cr16 asm.cris_gnu asm.dalvik asm.dcpu16 asm.ebc asm.gb asm.h8300 asm.hexagon asm.hppa_gnu asm.i4004 asm.i8080 asm.java asm.lanai_gnu asm.lh5801 asm.lm32 asm.m680x_cs asm.m68k_cs asm.malbolge asm.mcore asm.mcs96 asm.mips_cs asm.mips_gnu asm.msp430 asm.nios2 asm.null asm.pic asm.ppc_cs asm.ppc_gnu asm.propeller asm.riscv asm.riscv_cs asm.rsp asm.sh asm.snes asm.sparc_cs asm.sparc_gnu asm.spc700 asm.sysz asm.tms320 asm.tricore asm.v810 asm.v850 asm.vax asm.wasm asm.ws asm.x86_as asm.x86_cs asm.x86_nasm asm.x86_nz asm.xap asm.xcore_cs asm.xtensa asm.z80 bin.any bin.art bin.avr bin.bf bin.bflt bin.bios bin.bootimg bin.cgc bin.coff bin.dex bin.dol bin.dyldcache bin.elf bin.elf64 bin.fs bin.java bin.mach0 bin.mach064 bin.mbn bin.mdmp bin.menuet bin.mz bin.ne bin.nes bin.nin3ds bin.ninds bin.ningb bin.ningba bin.nro bin.nso bin.omf bin.p9 bin.pe bin.pe64 bin.pebble bin.prg bin.psxexe bin.qnx bin.sfc bin.smd bin.sms bin.spc700 bin.symbols bin.te bin.vsf bin.wasm bin.xbe bin.xnu_kernelcache bin.z64 bin.zimg bin_ldr.ldr_linux bin_xtr.xtr_dyldcache bin_xtr.xtr_fatmach0 bin_xtr.xtr_pemixed bp.arm bp.bf bp.mips bp.ppc bp.x86 core.a2f core.java crypto.aes crypto.aes_cbc crypto.base64 crypto.base91 crypto.blowfish crypto.cps2 crypto.des crypto.punycode crypto.rc2 crypto.rc4 crypto.rc6 crypto.rol crypto.ror crypto.rot crypto.serpent crypto.xor debug.bf debug.bochs debug.esil debug.gdb debug.io debug.native debug.null debug.qnx debug.rap debug.windbg egg.exec egg.xor fs.ext2 fs.fat fs.fb fs.hfs fs.hfsplus fs.io fs.iso9660 fs.jfs fs.minix fs.ntfs fs.posix fs.r2 fs.reiserfs fs.sfs fs.tar fs.udf fs.ufs fs.xfs io.ar io.bfdbg io.bochs io.debug io.default io.gdb io.gprobe io.gzip io.http io.ihex io.mach io.malloc io.mmap io.null io.procpid io.ptrace io.qnx io.r2k io.r2pipe io.r2web io.rap io.rbuf io.self io.shm io.sparse io.tcp io.w32 io.w32dbg io.windbg io.winedbg io.zip lang.vala parse.6502_pseudo parse.arm_pseudo parse.att2intel parse.avr_pseudo parse.chip8_pseudo parse.dalvik_pseudo parse.m68k_pseudo parse.mips_pseudo parse.ppc_pseudo parse.sh_pseudo parse.wasm_pseudo parse.x86_pseudo parse.z80_pseudo
cp: './plugins.cfg' and 'plugins.cfg' are the same file
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for working directories... current
using prefix '/usr'
checking for c compiler... gcc
checking for dynamic library... required
checking for patch... /usr/bin/patch
checking for git... /usr/bin/git
checking for libmagic ... yes
checking for libz ... yes
checking for libzip ... yes
checking for libxxhash ... yes
checking declaration of ADDR_NO_RANDOMIZE in sys/personality.h... yes
checking function arc4random_uniform() in c... no
checking function explicit_bzero() in c... yes
checking function explicit_memset() in c... no
checking function clock_nanosleep() in c... yes
checking function sigaction() in c... yes
checking for libssl ... yes
checking pkg-config flags for openssl... yes
checking version of library libuv >= 1.0.0... ok
checking pkg-config flags for libuv... yes
creating ./config-user.mk
creating libr/include/r_userconf.h
creating pkgcfg/r_io.pc
creating pkgcfg/r_magic.pc
creating pkgcfg/r_asm.pc
creating pkgcfg/r_bin.pc
creating pkgcfg/r_anal.pc
creating pkgcfg/r_hash.pc
creating pkgcfg/r_cons.pc
creating pkgcfg/r_core.pc
creating pkgcfg/r_lang.pc
creating pkgcfg/r_socket.pc
creating pkgcfg/r_debug.pc
creating pkgcfg/r_reg.pc
creating pkgcfg/r_config.pc
creating pkgcfg/r_flag.pc
creating pkgcfg/r_syscall.pc
creating pkgcfg/r_util.pc
creating pkgcfg/r_search.pc
creating pkgcfg/r_bp.pc
creating pkgcfg/r_parse.pc
creating pkgcfg/r_fs.pc
creating pkgcfg/r_egg.pc
creating pkgcfg/r_crypto.pc
cleaning temporally files... done

Final report:
 - R_CHECKS_LEVEL = 2
 - PREFIX = /usr
 - HAVE_LIB_GMP = 0
 - HAVE_OPENSSL = 0
 - HAVE_LIBUV = 1
 - USE_CAPSTONE = 0
 - HAVE_PTRACE = 1
 - USE_PTRACE_WRAP = 1
 - HAVE_FORK = 1
 - VERSION = 4.1.0-git
 - USE_LIB_ZIP = 0
 - USE_LIB_MAGIC = 0
 - USE_LIB_XXHASH = 0
 - DEBUGGER = 1
 - CC = gcc
 - USERCC = gcc
 - HAVE_ARC4RANDOM_UNIFORM = 0
 - HAVE_EXPLICIT_BZERO = 1
 - HAVE_EXPLICIT_MEMSET = 0
 - USEROSTYPE = gnulinux
 - LIBVERSION = 4.1.0-git
 - BUILD = x86_64-unknown-linux-gnu
 - HOST = x86_64-unknown-linux-gnu
 - TARGET = x86_64-unknown-linux-gnu
Generating r_version.h file
CC adler32.c
CC crc32.c
CC deflate.c
CC infback.c
CC inffast.c
CC inflate.c
CC inftrees.c
CC trees.c
CC zutil.c
CC compress.c
CC uncompr.c
CC gzclose.c
CC gzlib.c
CC gzread.c
CC gzwrite.c
ar: creating libr_z.a
CC zip_add.c
CC zip_add_dir.c
CC zip_add_entry.c
CC zip_close.c
CC zip_delete.c
CC zip_dir_add.c
CC zip_dirent.c
CC zip_discard.c
CC zip_entry.c
CC zip_err_str.c
CC zip_error.c
CC zip_error_get.c
CC zip_error_get_sys_type.c
CC zip_error_strerror.c
CC zip_error_to_str.c
CC zip_extra_field.c
CC zip_extra_field_api.c
CC zip_fclose.c
CC zip_fdopen.c
CC zip_file_add.c
CC zip_file_error_get.c
CC zip_file_get_comment.c
CC zip_file_get_offset.c
CC zip_file_rename.c
CC zip_file_replace.c
CC zip_file_set_comment.c
CC zip_file_strerror.c
CC zip_filerange_crc.c
CC zip_fopen.c
CC zip_fopen_encrypted.c
CC zip_fopen_index.c
CC zip_fopen_index_encrypted.c
CC zip_fread.c
CC zip_get_archive_comment.c
CC zip_get_archive_flag.c
CC zip_get_compression_implementation.c
CC zip_get_encryption_implementation.c
CC zip_get_file_comment.c
CC zip_get_num_entries.c
CC zip_get_num_files.c
CC zip_get_name.c
CC zip_name_locate.c
CC zip_new.c
CC zip_open.c
CC zip_rename.c
CC zip_replace.c
CC zip_set_archive_comment.c
CC zip_set_archive_flag.c
CC zip_set_default_password.c
CC zip_set_file_comment.c
CC zip_set_file_compression.c
CC zip_set_name.c
CC zip_source_buffer.c
CC zip_source_close.c
CC zip_source_crc.c
CC zip_source_deflate.c
CC zip_source_error.c
CC zip_source_file.c
CC zip_source_filep.c
CC zip_source_free.c
CC zip_source_function.c
CC zip_source_layered.c
CC zip_source_open.c
CC zip_source_pkware.c
CC zip_source_pop.c
CC zip_source_read.c
CC zip_source_stat.c
CC zip_source_window.c
CC zip_source_zip.c
CC zip_source_zip_new.c
CC zip_stat.c
CC zip_stat_index.c
CC zip_stat_init.c
CC zip_strerror.c
CC zip_string.c
CC zip_unchange.c
CC zip_unchange_all.c
CC zip_unchange_archive.c
CC zip_unchange_data.c
CC zip_utf-8.c
ar: creating libr_zip.a
ar q librz.a zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/deflate.o zlib/gzclose.o zlib/gzlib.o zlib/gzread.o zlib/gzwrite.o zlib/infback.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o zlib/uncompr.o zlib/zutil.o zip/zip_add.o zip/zip_add_dir.o zip/zip_add_entry.o zip/zip_close.o zip/zip_delete.o zip/zip_dir_add.o zip/zip_dirent.o zip/zip_discard.o zip/zip_entry.o zip/zip_err_str.o zip/zip_error.o zip/zip_error_get.o zip/zip_error_get_sys_type.o zip/zip_error_strerror.o zip/zip_error_to_str.o zip/zip_extra_field.o zip/zip_extra_field_api.o zip/zip_fclose.o zip/zip_fdopen.o zip/zip_file_add.o zip/zip_file_error_get.o zip/zip_file_get_comment.o zip/zip_file_get_offset.o zip/zip_file_rename.o zip/zip_file_replace.o zip/zip_file_set_comment.o zip/zip_file_strerror.o zip/zip_filerange_crc.o zip/zip_fopen.o zip/zip_fopen_encrypted.o zip/zip_fopen_index.o zip/zip_fopen_index_encrypted.o zip/zip_fread.o zip/zip_get_archive_comment.o zip/zip_get_archive_flag.o zip/zip_get_compression_implementation.o zip/zip_get_encryption_implementation.o zip/zip_get_file_comment.o zip/zip_get_name.o zip/zip_get_num_entries.o zip/zip_get_num_files.o zip/zip_name_locate.o zip/zip_new.o zip/zip_open.o zip/zip_rename.o zip/zip_replace.o zip/zip_set_archive_comment.o zip/zip_set_archive_flag.o zip/zip_set_default_password.o zip/zip_set_file_comment.o zip/zip_set_file_compression.o zip/zip_set_name.o zip/zip_source_buffer.o zip/zip_source_close.o zip/zip_source_crc.o zip/zip_source_deflate.o zip/zip_source_error.o zip/zip_source_file.o zip/zip_source_filep.o zip/zip_source_free.o zip/zip_source_function.o zip/zip_source_layered.o zip/zip_source_open.o zip/zip_source_pkware.o zip/zip_source_pop.o zip/zip_source_read.o zip/zip_source_stat.o zip/zip_source_window.o zip/zip_source_zip.o zip/zip_source_zip_new.o zip/zip_stat.o zip/zip_stat_index.o zip/zip_stat_init.o zip/zip_strerror.o zip/zip_string.o zip/zip_unchange.o zip/zip_unchange_all.o zip/zip_unchange_archive.o zip/zip_unchange_data.o zip/zip_utf-8.o
ar: creating librz.a
ranlib librz.a
CC spp.c
CC cdb.c
CC buffer.c
CC cdb_make.c
CC ls.c
CC sdbht.c
CC ht_uu.c
CC sdb.c
CC num.c
CC base64.c
CC match.c
CC json.c
CC ns.c
CC lock.c
CC util.c
CC disk.c
CC query.c
CC array.c
CC fmt.c
CC journal.c
CC dict.c
CC ht_pp.c
CC ht_up.c
CC set.c
CC diff.c
CC main.c
AR libsdb.a
ar: creating libsdb.a
BIN sdb
CC PIC cdb.c
CC PIC buffer.c
CC PIC cdb_make.c
CC PIC ls.c
CC PIC sdbht.c
CC PIC ht_uu.c
CC PIC sdb.c
CC PIC num.c
CC PIC base64.c
CC PIC match.c
CC PIC json.c
CC PIC ns.c
CC PIC lock.c
CC PIC util.c
CC PIC disk.c
CC PIC query.c
CC PIC array.c
CC PIC fmt.c
CC PIC journal.c
CC PIC dict.c
CC PIC ht_pp.c
CC PIC ht_up.c
CC PIC set.c
CC PIC diff.c
LIB libsdb.so.1.4.1
CC binheap.c
CC mem.c
CC unum.c
CC str.c
CC hex.c
CC file.c
CC range.c
CC tinyrange.c
CC prof.c
CC cache.c
CC sys.c
CC buf.c
CC w32-sys.c
CC ubase64.c
CC base85.c
CC base91.c
CC list.c
CC flist.c
CC chmod.c
CC graph.c
CC event.c
CC alloc.c
CC donut.c
CC regcomp.c
CC regerror.c
CC regexec.c
CC uleb128.c
CC sandbox.c
CC calc.c
CC thread.c
CC thread_sem.c
CC thread_lock.c
CC thread_cond.c
CC strpool.c
CC bitmap.c
CC date.c
CC format.c
CC pie.c
CC print.c
CC ctype.c
CC seven.c
CC randomart.c
CC zip.c
CC debruijn.c
CC log.c
CC getopt.c
CC table.c
CC utf8.c
CC utf16.c
CC utf32.c
CC strbuf.c
CC lib.c
CC name.c
CC spaces.c
CC signal.c
CC syscmd.c
CC diff.c
CC bdiff.c
CC stack.c
CC queue.c
CC tree.c
CC idpool.c
CC assert.c
CC punycode.c
CC pkcs7.c
CC x509.c
CC asn1.c
CC astr.c
CC json_indent.c
CC skiplist.c
CC pj.c
CC rbtree.c
CC qrcode.c
CC vector.c
CC str_constpool.c
CC str_trim.c
CC ascii_table.c
CC protobuf.c
LD libr_util.so
CC socket.c
CC proc.c
CC http.c
CC http_server.c
CC rap_server.c
CC run.c
CC r2pipe.c
CC serial.c
LD libr_socket.so

Run 'make CS_COMMIT_ARCHIVE=1' to download capstone with wget/curl instead of git

[tree-sitter] Cloning tree-sitter from git...
[capstone] Cloning capstone from git...

BUILD SUMARY
============
COMPILER gcc
CC gcc
HOST_CC gcc
HOST_OS linux
BUILD_OS linux
============

>>>>>>>>>>>>>>>>
NATIVE BUILD SDB
>>>>>>>>>>>>>>>>

CC cdb.c
CC buffer.c
CC cdb_make.c
CC ls.c
CC sdbht.c
CC ht_uu.c
CC sdb.c
CC num.c
CC base64.c
ar: creating libr_windbg.a
CC match.c
CC libbochs.c
CC json.c
ar: creating lib/libbochs.a
a - src/libbochs.o
CC ns.c
CC lock.c
CC util.c
CC disk.c
CC query.c
CC array.c
CC fmt.c
CC journal.c
CC dict.c
CC ht_pp.c
CC ht_up.c
CC set.c
CC diff.c
CC main.c
AR libsdb.a
ar: creating libsdb.a
BIN sdb

>>>>>>>>>>>>>>>>
TARGET BUILD SDB
>>>>>>>>>>>>>>>>

CC cdb.c
CC buffer.c
CC cdb_make.c
CC ls.c
CC sdbht.c
CC ht_uu.c
CC sdb.c
CC num.c
CC base64.c
CC match.c
CC json.c
CC ns.c
CC lock.c
CC util.c
CC disk.c
CC query.c
CC array.c
CC fmt.c
CC journal.c
CC dict.c
CC ht_pp.c
CC ht_up.c
CC set.c
CC diff.c
AR libsdb.a
ar: creating libsdb.a
[capstone] Applying patches...
patching file MCInst.c
patching file cs.c
Hunk #1 succeeded at 838 (offset -2 lines).
Hunk #2 succeeded at 856 (offset -2 lines).
Hunk #3 succeeded at 945 (offset -1 lines).
Hunk #4 succeeded at 960 (offset -1 lines).
patching file arch/X86/X86ATTInstPrinter.c
Hunk #1 succeeded at 641 (offset 1 line).
patching file arch/X86/X86IntelInstPrinter.c
Hunk #1 succeeded at 858 (offset 1 line).
patching file arch/Sparc/SparcGenAsmWriter.inc
patching file SStream.c
/tmp/radare2/shlr
  CC      cs.o
  CC      utils.o
  CC      SStream.o
  CC      MCInstrDesc.o
  CC      MCRegisterInfo.o
  CC      arch/ARM/ARMModule.o
  CC      arch/ARM/ARMMapping.o
  CC      arch/ARM/ARMInstPrinter.o
  CC      arch/ARM/ARMDisassembler.o
  CC      arch/AArch64/AArch64Disassembler.o
  CC      arch/AArch64/AArch64Module.o
  CC      arch/AArch64/AArch64Mapping.o
  CC      arch/AArch64/AArch64InstPrinter.o
  CC      arch/AArch64/AArch64BaseInfo.o
  CC      arch/M68K/M68KInstPrinter.o
  CC      arch/M68K/M68KDisassembler.o
  CC      arch/M68K/M68KModule.o
  CC      arch/Mips/MipsDisassembler.o
  CC      arch/Mips/MipsModule.o
  CC      arch/Mips/MipsMapping.o
  CC      arch/Mips/MipsInstPrinter.o
  CC      arch/PowerPC/PPCInstPrinter.o
  CC      arch/PowerPC/PPCDisassembler.o
  CC      arch/PowerPC/PPCModule.o
  CC      arch/PowerPC/PPCMapping.o
  CC      arch/Sparc/SparcInstPrinter.o
  CC      arch/Sparc/SparcDisassembler.o
  CC      arch/Sparc/SparcModule.o
  CC      arch/Sparc/SparcMapping.o
  CC      arch/SystemZ/SystemZDisassembler.o
  CC      arch/SystemZ/SystemZMCTargetDesc.o
  CC      arch/SystemZ/SystemZModule.o
  CC      arch/SystemZ/SystemZMapping.o
In file included from tree-sitter/lib/src/././unicode/utf8.h:37,
                 from tree-sitter/lib/src/././unicode.h:13,
                 from tree-sitter/lib/src/./lexer.c:5,
                 from tree-sitter/lib/src/lib.c:10:
tree-sitter/lib/src/unicode/umachine.h:158:1: warning: multi-line comment [-Wcomment]
  158 | // CPPFLAGS='-DUPRV_BLOCK_MACRO_BEGIN="" -DUPRV_BLOCK_MACRO_END=""' \
      | ^
  CC      arch/SystemZ/SystemZInstPrinter.o
In file included from tree-sitter/lib/src/././././subtree.h:12,
                 from tree-sitter/lib/src/./././tree_cursor.h:4,
                 from tree-sitter/lib/src/././get_changed_ranges.h:8,
                 from tree-sitter/lib/src/./get_changed_ranges.c:1,
                 from tree-sitter/lib/src/lib.c:8:
tree-sitter/lib/src/./query.c: In function ‘ts_query_cursor__advance’:
tree-sitter/lib/src/./././././array.h:64:42: warning: value computed is not used [-Wunused-value]
   64 | #define array_pop(self) ((self)->contents[--(self)->size])
      |                         ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
tree-sitter/lib/src/./query.c:1244:13: note: in expansion of macro ‘array_pop’
 1244 |             array_pop(&self->states);
      |             ^~~~~~~~~
  CC      arch/X86/X86DisassemblerDecoder.o
  CC      arch/X86/X86Disassembler.o
  CC      arch/X86/X86IntelInstPrinter.o
  CC      arch/X86/X86ATTInstPrinter.o
  CC      arch/X86/X86Mapping.o
  CC      arch/X86/X86Module.o
  CC      arch/XCore/XCoreMapping.o
  CC      arch/XCore/XCoreInstPrinter.o
  CC      arch/XCore/XCoreDisassembler.o
  CC      arch/XCore/XCoreModule.o
  CC      arch/TMS320C64x/TMS320C64xDisassembler.o
  CC      arch/TMS320C64x/TMS320C64xModule.o
  CC      arch/TMS320C64x/TMS320C64xMapping.o
  CC      arch/TMS320C64x/TMS320C64xInstPrinter.o
  CC      arch/M680X/M680XDisassembler.o
  CC      arch/M680X/M680XModule.o
  CC      arch/M680X/M680XInstPrinter.o
  CC      arch/EVM/EVMMapping.o
  CC      arch/EVM/EVMInstPrinter.o
  CC      arch/EVM/EVMDisassembler.o
  CC      arch/EVM/EVMModule.o
  CC      MCInst.o
[radare2-shell-parser] Cloning radare2-shell-parser from git...
  AR      libcapstone.a
ar: creating ./libcapstone.a
ar: creating tree-sitter/libtree-sitter.a
a - tree-sitter/lib/src/lib.o
ar: creating radare2-shell-parser/libshell-parser.a
a - radare2-shell-parser/src/parser.o
make -C sdb
CC main.c
BIN sdb
CC PIC cdb.c
CC PIC buffer.c
CC PIC cdb_make.c
CC PIC ls.c
CC PIC sdbht.c
CC PIC ht_uu.c
CC PIC sdb.c
CC PIC num.c
CC PIC base64.c
CC PIC match.c
CC PIC json.c
CC PIC ns.c
CC PIC lock.c
CC PIC util.c
CC PIC disk.c
CC PIC query.c
CC PIC array.c
CC PIC fmt.c
CC PIC journal.c
CC PIC dict.c
CC PIC ht_pp.c
CC PIC ht_up.c
CC PIC set.c
CC PIC diff.c
LIB libsdb.so.1.4.1
make -C zip
make -C java
CC code.c
CC class.c
CC ops.c
CC dsojson.c
ar: creating libr_java.a
make -C tcc
ar: creating libr_tcc.a
make -C mpc
ar: creating libmpc.a
make -C gdb
CC libgdbr.c
CC packet.c
CC arch.c
CC common.c
CC utils.c
CC core.c
CC xml.c
CC core.c
CC responses.c
ar: creating lib/libgdbr.a
a - src/libgdbr.o
a - src/packet.o
a - src/arch.o
a - src/common.o
a - src/utils.o
a - src/gdbserver/core.o
a - src/gdbclient/xml.o
a - src/gdbclient/core.o
a - src/gdbclient/responses.o
make -C qnx
CC packet.c
CC core.c
CC utils.c
CC libqnxr.c
CC sigutil.c
ar: creating lib/libqnxr.a
a - src/packet.o
a - src/core.o
a - src/utils.o
a - src/libqnxr.o
a - src/sigutil.o
make -C ar
ar: creating libr_ar.a
make -C grub
CC file.c
CC term.c
CC device.c
CC err.c
CC env.c
CC disk.c
CC fs.c
CC misc.c
CC time.c
CC list.c
CC partition.c
CC mm.c
CC fshelp.c
CC reiserfs.c
CC ext2.c
CC fat.c
CC ntfs.c
CC ntfscomp.c
CC cpio.c
CC tar.c
CC xfs.c
fs/xfs.c: In function ‘grub_xfs_read_block’:
fs/xfs.c:258:14: warning: taking address of packed member of ‘struct grub_xfs_btree_root’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  258 |       keys = &node->inode.data.btree.keys[0];
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/xfs.c:291:18: warning: taking address of packed member of ‘struct grub_xfs_btree_node’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  291 |           keys = &leaf->keys[0];
      |                  ^~~~~~~~~~~~~~
fs/xfs.c:298:14: warning: taking address of packed member of ‘union <anonymous>’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  298 |       exts = &node->inode.data.extents[0];
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/xfs.c: In function ‘grub_xfs_iterate_dir’:
fs/xfs.c:562:3: warning: converting a packed ‘struct grub_xfs_dir2_entry’ pointer (alignment 1) to a ‘grub_uint16_t’ {aka ‘short unsigned int’} pointer (alignment 2) may result in an unaligned pointer value [-Waddress-of-packed-member]
  562 |   freetag = (grub_uint16_t *) direntry;
      |   ^~~~~~~
In file included from ../../libr/include/r_types.h:200,
                 from fs/xfs.c:28:
fs/xfs.c:81:8: note: defined here
   81 | struct grub_xfs_dir2_entry
      |        ^~~~~~~~~~~~~~~~~~~
../../libr/include/r_types_base.h:155:37: note: in definition of macro ‘R_PACKED’
  155 | #define R_PACKED( __Declaration__ ) __Declaration__ __attribute__((__packed__))
      |                                     ^~~~~~~~~~~~~~~
CC ufs.c
CC ufs2.c
CC hfs.c
fs/hfs.c: In function ‘grub_hfs_iterate_records’:
fs/hfs.c:711:9: warning: taking address of packed member of ‘struct grub_hfs_sblock’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  711 |      ? (&data->sblock.catalog_recs)
      |        ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/hfs.c:712:9: warning: taking address of packed member of ‘struct grub_hfs_sblock’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  712 |      : (&data->sblock.extent_recs));
      |        ~^~~~~~~~~~~~~~~~~~~~~~~~~~
CC hfsplus.c
CC udf.c
CC iso9660.c
fs/hfsplus.c: In function ‘grub_hfsplus_cmp_catkey’:
fs/hfsplus.c:543:64: warning: taking address of packed member of ‘struct grub_hfsplus_catkey’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  543 |   if (! grub_utf16_to_utf8 ((grub_uint8_t *) filename, catkey_a->name,
      |                                                        ~~~~~~~~^~~~~~
fs/hfsplus.c: In function ‘list_nodes’:
fs/hfsplus.c:794:62: warning: taking address of packed member of ‘struct grub_hfsplus_catkey’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  794 |   if (! grub_utf16_to_utf8 ((grub_uint8_t *) filename, catkey->name,
      |                                                        ~~~~~~^~~~~~
CC minix.c
CC jfs.c
CC fb.c
CC sfs.c
fs/jfs.c: In function ‘grub_jfs_getent’:
fs/jfs.c:534:15: warning: taking address of packed member of ‘struct grub_jfs_leaf_dirent’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  534 |   addstr (leaf->namepart, len < 11 ? len : 11, filename, &strpos);
      |           ~~~~^~~~~~~~~~
fs/jfs.c:544:19: warning: taking address of packed member of ‘struct grub_jfs_leaf_next_dirent’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  544 |  addstr (next_leaf->namepart, len < 15 ? len : 15, filename, &strpos);
      |          ~~~~~~~~~^~~~~~~~~~
CC grubfs.c
CC msdos.c
CC gpt.c
CC apple.c
CC amiga.c
CC sun.c
CC bsdlabel.c
partmap/sun.c: In function ‘grub_sun_is_valid’:
partmap/sun.c:81:3: warning: converting a packed ‘struct grub_sun_block’ pointer (alignment 1) to a ‘grub_uint16_t’ {aka ‘short unsigned int’} pointer (alignment 2) may result in an unaligned pointer value [-Waddress-of-packed-member]
   81 |   for (pos = (grub_uint16_t *) label;
      |   ^~~
In file included from ../../libr/include/r_types.h:200,
                 from partmap/sun.c:28:
partmap/sun.c:51:8: note: defined here
   51 | struct grub_sun_block
      |        ^~~~~~~~~~~~~~
../../libr/include/r_types_base.h:155:37: note: in definition of macro ‘R_PACKED’
  155 | #define R_PACKED( __Declaration__ ) __Declaration__ __attribute__((__packed__))
      |                                     ^~~~~~~~~~~~~~~
CC sunpc.c
partmap/sunpc.c: In function ‘grub_sun_is_valid’:
partmap/sunpc.c:62:3: warning: converting a packed ‘struct grub_sun_pc_block’ pointer (alignment 1) to a ‘grub_uint16_t’ {aka ‘short unsigned int’} pointer (alignment 2) may result in an unaligned pointer value [-Waddress-of-packed-member]
   62 |   for (pos = (grub_uint16_t *) label;
      |   ^~~
In file included from ../../libr/include/r_types.h:200,
                 from partmap/sunpc.c:28:
partmap/sunpc.c:44:8: note: defined here
   44 | struct grub_sun_pc_block
      |        ^~~~~~~~~~~~~~~~~
../../libr/include/r_types_base.h:155:37: note: in definition of macro ‘R_PACKED’
  155 | #define R_PACKED( __Declaration__ ) __Declaration__ __attribute__((__packed__))
      |                                     ^~~~~~~~~~~~~~~
ar: creating libgrubfs.a
make -C ptrace-wrap
ar: creating libptrace_wrap.a
DIR util
DIR socket
DIR hash
DIR reg
DIR cons
CC reg.c
CC cons.c
CC state.c
CC arena.c
CC hash.c
CC pipe.c
CC value.c
CC hamdist.c
CC crca.c
CC output.c
CC fletcher.c
CC grep.c
CC entropy.c
CC cond.c
CC less.c
CC calc.c
CC more.c
CC double.c
CC adler32.c
CC luhn.c
CC pager.c
CC md4.c
CC profile.c
CC utf8.c
CC line.c
CC hud.c
LD libr_reg.so
DIR magic
CC md5.c
CC apprentice.c
DIR bp
CC bp.c
CC sha1.c
CC sha2.c
CC bp_watch.c
CC xxhash.c
CC bp_io.c
CC rgb.c
LD libr_hash.so
DIR search
CC bp_plugin.c
CC search.c
CC ascmagic.c
CC input.c
CC bp_traptrace.c
CC fsmagic.c
CC pal.c
CC funcs.c
CC bp_arm.c
CC bp_bf.c
CC bytepat.c
CC is_tar.c
CC magic.c
CC bp_mips.c
CC strings.c
CC softmagic.c
CC bp_ppc.c
CC bp_x86.c
CC aes-find.c
LD libr_bp.so
CC rsa-find.c
DIR config
CC config.c
CC regexp.c
CC editor.c
CC xrefs.c
CC 2048.c
CC keyword.c
CC callback.c
LD libr_magic.so
CC canvas.c
CC canvas_line.c
LD libr_search.so
CC hold.c
CC stiv.c
LD libr_config.so
LD libr_cons.so
DIR syscall
DIR lang
DIR io
DIR crypto
CC lang.c
CC io_ar.c
CC crypto_aes.c
CC io_bfdbg.c
CC crypto_aes_algo.c
SDB dos-x86-16.sdb.txt
SDB ios-x86-32.sdb.txt
SDB ios-arm-32.sdb.txt
SDB ios-arm-64.sdb.txt
SDB linux-x86-32.sdb.txt
SDB linux-x86-64.sdb.txt
CC io_bochs.c
SDB linux-arm-32.sdb.txt
LD libr_lang.so
SDB linux-arm-64.sdb.txt
SDB s110-arm-16.sdb.txt
CC io_debug.c
DIR flag
SDB linux-mips-32.sdb.txt
CC flag.c
SDB linux-sparc-32.sdb.txt
CC crypto_aes_cbc.c
SDB darwin-x86-32.sdb.txt
p/io_debug.c:221:13: warning: ‘handle_posix_error’ defined but not used [-Wunused-function]
  221 | static void handle_posix_error(int err) {
      |             ^~~~~~~~~~~~~~~~~~
SDB darwin-x86-64.sdb.txt
SDB darwin-arm-32.sdb.txt
CC io_default.c
SDB darwin-arm-64.sdb.txt
CC crypto_base64.c
SDB netbsd-x86-32.sdb.txt
SDB freebsd-x86-32.sdb.txt
SDB openbsd-x86-32.sdb.txt
CC crypto_base91.c
SDB openbsd-x86-64.sdb.txt
SDB windows-x86-32.sdb.txt
CC io_gdb.c
CC crypto_blowfish.c
SDB windows-x86-64.sdb.txt
CC zones.c
CC syscall.c
CC crypto_cps2.c
CC io_gprobe.c
CC tags.c
CC ioports.c
LD libr_flag.so
CC io_gzip.c
CC io_http.c
LD libr_syscall.so
CC crypto_des.c
CC crypto_punycode.c
CC io_ihex.c
CC crypto_rc2.c
CC crypto_rc4.c
CC crypto_rc6.c
CC crypto_rol.c
CC io_mach.c
CC crypto_ror.c
CC io_malloc.c
CC crypto_rot.c
CC io_mmap.c
CC crypto_serpent.c
CC crypto_serpent_algo.c
CC io_null.c
CC crypto_xor.c
CC io_procpid.c
CC io_ptrace.c
CC io_qnx.c
CC crypto.c
CC io_r2k.c
CC io_r2k_linux.c
CC des.c
CC io_r2pipe.c
CC io_r2web.c
LD libr_crypto.so
CC io_rap.c
CC io_rbuf.c
CC io_self.c
CC io_shm.c
CC io_sparse.c
CC io_tcp.c
CC io_w32.c
CC io_w32dbg.c
CC io_windbg.c
CC io_winedbg.c
CC io_zip.c
CC io.c
CC plugin.c
CC map.c
CC desc.c
CC cache.c
CC p_cache.c
CC undo.c
CC ioutils.c
CC fd.c
LD libr_io.so
DIR fs
DIR parse
DIR bin
CC bin.c
CC dbginfo.c
  SDB dospart
CC parse.c
CC bin_ldr.c
CC fs_ext2.c
CC filter.c
CC bin_write.c
CC fs_fat.c
CC demangle.c
CC fs_fb.c
CC code.c
CC dwarf.c
CC fs_hfs.c
CC fs_hfsplus.c
CC fs_io.c
CC fs_iso9660.c
CC fs_jfs.c
CC fs_minix.c
CC fs_ntfs.c
CC filter.c
CC fs_posix.c
CC fs_r2.c
CC fs_reiserfs.c
CC bfile.c
CC fs_sfs.c
CC fs_tar.c
CC fs_udf.c
CC fs_ufs.c
CC fs_xfs.c
CC fs.c
CC bobj.c
CC ctype.c
CC parse_6502_pseudo.c
CC parse_arm_pseudo.c
CC parse_att2intel.c
CC file.c
CC blang.c
CC shell.c
CC parse_avr_pseudo.c
CC cp-demangle.c
LD libr_fs.so
CC parse_chip8_pseudo.c
CC parse_dalvik_pseudo.c
CC bin_any.c
CC parse_m68k_pseudo.c
CC bin_art.c
CC parse_mips_pseudo.c
CC parse_ppc_pseudo.c
CC bin_avr.c
CC parse_sh_pseudo.c
CC bin_bf.c
CC parse_wasm_pseudo.c
CC bin_bflt.c
CC parse_x86_pseudo.c
CC bflt.c
CC bin_bios.c
CC bin_bootimg.c
CC bin_cgc.c
CC parse_z80_pseudo.c
CC bin_coff.c
CC coff.c
LD libr_parse.so
CC bin_dex.c
CC bin_dbginfo_dex.c
CC dex.c
CC bin_dol.c
CC bin_dyldcache.c
CC bin_elf.c
CC bin_dbginfo_elf.c
CC bin_write_elf.c
CC elf.c
CC elf_write.c
CC bin_elf64.c
CC bin_dbginfo_elf64.c
CC bin_write_elf64.c
CC elf64.c
CC elf64_write.c
CC bin_fs.c
CC bin_java.c
CC bin_mach0.c
CC mach0.c
CC mach0_classes.c
CC mach064_classes.c
CC bin_write_mach0.c
CC bin_mach064.c
CC bin_write_mach064.c
CC mach064.c
CC bin_mbn.c
CC bin_mdmp.c
CC mdmp.c
CC mdmp_pe.c
CC mdmp_pe64.c
CC bin_menuet.c
CC bin_mz.c
CC mz.c
CC bin_ne.c
CC ne.c
CC bin_nes.c
CC bin_nin3ds.c
CC bin_ninds.c
CC bin_ningb.c
CC bin_ningba.c
CC bin_nro.c
CC bin_nso.c
CC nxo.c
CC bin_omf.c
CC omf.c
CC bin_p9.c
CC p9bin.c
CC bin_pe.c
CC bin_write_pe.c
CC pe.c
CC pe_write.c
CC bin_pe64.c
CC bin_write_pe64.c
CC pe64.c
CC pe64_write.c
CC bin_pebble.c
CC bin_prg.c
CC bin_psxexe.c
CC bin_qnx.c
CC bin_sfc.c
CC bin_smd.c
CC bin_sms.c
CC bin_spc700.c
CC bin_symbols.c
CC bin_te.c
CC te.c
CC bin_vsf.c
CC bin_wasm.c
CC wasm.c
CC bin_xbe.c
CC bin_xnu_kernelcache.c
CC yxml.c
CC r_cf_dict.c
CC bin_z64.c
CC bin_zimg.c
CC zimg.c
CC bin_xtr_dyldcache.c
CC dyldcache.c
CC bin_xtr_fatmach0.c
CC fatmach0.c
CC bin_xtr_pemixed.c
CC pemixed.c
CC bin_ldr_linux.c
CC demangler.c
CC microsoft_demangle.c
CC objc.c
CC cxx.c
CC msvc.c
CC swift.c
CC swift-sd.c
CC java.c
CC rust.c
CC pdb_downloader.c
CC omap.c
CC stream_pe.c
CC gdata.c
CC fpo.c
CC dbi.c
CC tpi.c
CC stream_file.c
CC pdb.c
LD libr_bin.so
DIR asm
CC asm_6502.c
CC asm_6502_cs.c
CC asm_8051.c
CC 8051_disas.c
p/../arch/8051/8051_disas.c:64:14: warning: ‘r_8051_disas’ defined but not used [-Wunused-function]
   64 | static char *r_8051_disas(ut64 pc, const ut8 *buf, int len, int *olen) {
      |              ^~~~~~~~~~~~
CC 8051_ass.c
CC asm_amd29k.c
CC amd29k.c
CC asm_arc.c
CC arc-dis.c
CC arc-ext.c
CC arc-opc.c
CC arcompact-dis.c
CC asm_arm_as.c
CC asm_arm_cs.c
CC armass.c
CC armass64.c
CC asm_arm_gnu.c
CC arm-dis.c
CC floatformat.c
CC aarch64-dis.c
CC aarch64-dis-2.c
CC aarch64-opc.c
CC aarch64-opc-2.c
CC asm_arm_winedbg.c
CC be_arm.c
CC asm_avr.c
CC asm_bf.c
CC asm_chip8.c
CC asm_cr16.c
CC cr16_disas.c
CC asm_cris_gnu.c
CC cris-dis.c
CC cris-opc.c
CC asm_dalvik.c
CC asm_dcpu16.c
CC asm_ebc.c
CC ebc_disas.c
CC asm_gb.c
CC asm_h8300.c
CC h8300_disas.c
CC asm_hexagon.c
CC hexagon.c
CC hexagon_disas.c
CC asm_hppa_gnu.c
CC hppa-dis.c
CC asm_i4004.c
CC asm_i8080.c
CC asm_java.c
CC asm_lanai_gnu.c
CC lanai-dis.c
CC lanai-opc.c
CC asm_lh5801.c
CC asm_lm32.c
CC asm_m680x_cs.c
CC asm_m68k_cs.c
CC asm_malbolge.c
CC asm_mcore.c
CC mcore.c
CC asm_mcs96.c
CC asm_mips_cs.c
CC mipsasm.c
CC asm_mips_gnu.c
CC mips-dis.c
CC mips16-opc.c
CC mips-opc.c
CC asm_msp430.c
CC msp430_disas.c
CC asm_nios2.c
CC nios2-dis.c
CC nios2-opc.c
CC asm_null.c
CC asm_pic.c
CC pic_baseline.c
CC pic_pic18.c
CC pic_midrange.c
CC asm_ppc_cs.c
CC vle.c
CC libps.c
CC asm_ppc_gnu.c
CC ppc-dis.c
CC ppc-opc.c
CC asm_propeller.c
CC propeller_disas.c
CC asm_riscv.c
CC asm_riscv_cs.c
CC asm_rsp.c
CC rsp_idec.c
CC asm_sh.c
CC sh-dis.c
CC asm_snes.c
CC asm_sparc_cs.c
CC asm_sparc_gnu.c
CC sparc-dis.c
CC sparc-opc.c
CC asm_spc700.c
CC asm_sysz.c
CC asm_tms320.c
CC tms320_dasm.c
CC c55plus.c
CC c55plus_decode.c
CC decode_funcs.c
CC hashtable.c
CC ins.c
CC utils.c
CC asm_tricore.c
CC tricore-dis.c
CC tricore-opc.c
CC cpu-tricore.c
CC asm_v810.c
CC v810_disas.c
CC asm_v850.c
CC v850_disas.c
CC asm_vax.c
CC vax-dis.c
CC asm_wasm.c
CC wasm.c
CC asm_ws.c
CC asm_x86_as.c
CC asm_x86_cs.c
CC asm_x86_nasm.c
CC asm_x86_nz.c
CC asm_xap.c
CC asm_xcore_cs.c
CC asm_xtensa.c
CC xtensa-dis.c
CC xtensa-isa.c
CC xtensa-modules.c
CC elf32-xtensa.c
CC asm_z80.c
CC asm.c
CC code.c
CC op.c
LD libr_asm.so
DIR anal
DIR egg
CC egg.c
CC egg_lang.c
CC emit_x86.c
SDB types.sdb
SDB types-16.sdb
SDB types-32.sdb
SDB types-64.sdb
CC emit_arm.c
SDB types-android.sdb
SDB types-darwin.sdb
SDB types-windows.sdb
CC emit_x64.c
CC emit_trace.c
CC egg_Cfile.c
SDB types-x86-windows-32.sdb
CC egg_exec.c
SDB types-x86-windows-64.sdb
SDB types-linux.sdb
SDB types-x86-macos-64.sdb
CC egg_xor.c
SDB types-arm-ios-16.sdb
CC anal_6502.c
SDB types-arm-ios-32.sdb
SDB types-arm-ios-64.sdb
SDB spec.sdb
SDB cc-x86-64.sdb
SDB cc-x86-32.sdb
SDB cc-x86-16.sdb
SDB cc-mips-32.sdb
SDB cc-mips-64.sdb
LD libr_egg.so
SDB cc-m68k-32.sdb
SDB cc-sparc-32.sdb
SDB cc-arm-64.sdb
SDB cc-arm-32.sdb
CC anal_6502_cs.c
SDB cc-arm-16.sdb
CC anal_8051.c
SDB cc-avr-8.sdb
SDB cc-powerpc-32.sdb
SDB cc-powerpc-64.sdb
SDB cc-xtensa-32.sdb
SDB cc-riscv-64.sdb
SDB cc-hexagon-32.sdb
CC anal_amd29k.c
CC anal_arc.c
CC anal_arm_cs.c
CC anal_arm_gnu.c
/tmp/radare2/libr/..//libr/anal/p/anal_arm_cs.c: In function ‘anal_preludes’:
/tmp/radare2/libr/..//libr/anal/p/anal_arm_cs.c:3611:18: warning: unused variable ‘kw’ [-Wunused-variable]
 3611 |  RSearchKeyword* kw;
      |                  ^~
CC anal_avr.c
CC anal_bf.c
CC anal_chip8.c
CC anal_cr16.c
CC anal_cris.c
CC anal_dalvik.c
CC anal_ebc.c
CC anal_gb.c
CC anal_h8300.c
CC anal_hexagon.c
CC hexagon_anal.c
CC anal_i4004.c
CC anal_i8080.c
CC anal_java.c
CC anal_m680x_cs.c
CC anal_m68k_cs.c
CC anal_malbolge.c
CC anal_mcore.c
CC anal_mips_cs.c
CC anal_mips_gnu.c
CC anal_msp430.c
CC anal_nios2.c
/tmp/radare2/libr/..//libr/anal/p/anal_mips_cs.c: In function ‘anal_preludes’:
/tmp/radare2/libr/..//libr/anal/p/anal_mips_cs.c:1172:18: warning: unused variable ‘kw’ [-Wunused-variable]
 1172 |  RSearchKeyword* kw;
      |                  ^~
CC anal_null.c
CC anal_pic.c
CC anal_ppc_cs.c
CC anal_ppc_gnu.c
/tmp/radare2/libr/..//libr/anal/p/anal_ppc_cs.c: In function ‘anal_preludes’:
/tmp/radare2/libr/..//libr/anal/p/anal_ppc_cs.c:1231:18: warning: unused variable ‘kw’ [-Wunused-variable]
 1231 |  RSearchKeyword* kw;
      |                  ^~
CC anal_riscv.c
CC anal_riscv_cs.c
CC anal_rsp.c
CC anal_sh.c
CC anal_snes.c
CC anal_sparc_cs.c
CC anal_sparc_gnu.c
CC anal_sysz.c
CC anal_tms320.c
CC anal_tms320_c55x_plus.c
CC hashvector.c
/tmp/radare2/libr/..//libr/anal/p/anal_sysz.c: In function ‘opex’:
/tmp/radare2/libr/..//libr/anal/p/anal_sysz.c:39:21: warning: comparison between ‘ppc_reg’ {aka ‘enum ppc_reg’} and ‘enum sysz_reg’ [-Wenum-compare]
   39 |    if (op->mem.base != SYSZ_REG_INVALID) {
      |                     ^~
/tmp/radare2/libr/..//libr/anal/p/../..//asm/arch/tms320/c55x_plus/hashvector.c:97:25: warning: ‘ins_hash’ defined but not used [-Wunused-variable]
   97 | static HASHCODE_ENTRY_T ins_hash[] = {
      |                         ^~~~~~~~
CC anal_v810.c
CC anal_v850.c
CC anal_vax.c
CC anal_wasm.c
CC anal_ws.c
CC anal_x86_cs.c
CC anal_xap.c
/tmp/radare2/libr/..//libr/anal/p/anal_x86_cs.c: In function ‘anal_preludes’:
/tmp/radare2/libr/..//libr/anal/p/anal_x86_cs.c:3533:18: warning: unused variable ‘kw’ [-Wunused-variable]
 3533 |  RSearchKeyword* kw;
      |                  ^~
CC anal_xcore_cs.c
CC anal_xtensa.c
CC anal_z80.c
CC meta.c
CC reflines.c
CC op.c
CC fcn.c
CC bb.c
CC var.c
CC cond.c
CC value.c
CC cc.c
CC class.c
CC diff.c
CC type.c
CC hint.c
CC anal.c
CC data.c
CC xrefs.c
CC esil.c
CC sign.c
CC anal_ex.c
CC switch.c
CC state.c
CC cycles.c
CC esil_dfg.c
CC esil_sources.c
CC esil_interrupt.c
CC esil_cfg.c
CC esil_stats.c
CC esil_trace.c
CC flirt.c
CC labels.c
CC esil2reil.c
CC pin.c
CC session.c
CC vtable.c
CC rtti.c
CC rtti_msvc.c
CC rtti_itanium.c
CC jmptbl.c
LD libr_anal.so
DIR debug
CC signal.c
CC map.c
CC trace.c
CC arg.c
CC debug.c
CC plugin.c
CC snap.c
CC session.c
CC pid.c
CC dreg.c
CC ddesc.c
CC esil.c
CC debug_bf.c
CC debug_bochs.c
CC debug_esil.c
CC debug_gdb.c
CC debug_io.c
p/debug_gdb.c:1144:12: warning: initialization of ‘int (*)(RDebug *, int,  int)’ {aka ‘int (*)(struct r_debug_t *, int,  int)’} from incompatible pointer type ‘_Bool (*)(RDebug *, int,  int)’ {aka ‘_Bool (*)(struct r_debug_t *, int,  int)’} [-Wincompatible-pointer-types]
 1144 |  .select = &r_debug_gdb_select,
      |            ^
p/debug_gdb.c:1144:12: note: (near initialization for ‘r_debug_plugin_gdb.select’)
CC debug_native.c
CC debug_null.c
CC debug_qnx.c
CC debug_rap.c
CC debug_windbg.c
CC linux_debug.c
CC procfs.c
CC linux_coredump.c
LD libr_debug.so
DIR core
CC core.c
CC cmd.c
CC cfile.c
CC cconfig.c
CC visual.c
CC cio.c
CC yank.c
CC libs.c
CC agraph.c
CC fortune.c
CC hack.c
CC vasm.c
CC patch.c
CC cbin.c
CC corelog.c
cbin.c: In function ‘_print_strings’:
cbin.c:224:13: warning: variable ‘last_processed’ set but not used [-Wunused-but-set-variable]
  224 |  RListIter *last_processed = NULL;
      |             ^~~~~~~~~~~~~~
CC rtr.c
CC cmd_api.c
CC carg.c
CC canal.c
CC project.c
CC gdiff.c
CC casm.c
CC disasm.c
CC plugin.c
CC vmenus.c
vmenus.c: In function ‘r_core_visual_classes’:
vmenus.c:1126:13: warning: variable ‘fur’ set but not used [-Wunused-but-set-variable]
 1126 |  RBinField *fur = NULL;
      |             ^~~
CC vmenus_graph.c
CC vmenus_zigns.c
CC zdiff.c
CC citem.c
CC task.c
CC panels.c
CC pseudo.c
CC vmarks.c
CC anal_tp.c
CC anal_objc.c
CC blaze.c
CC cundo.c
CC esil_data_flow.c
CC core_a2f.c
CC core_java.c
LD libr_core.so
DIR main
CC version.c
CC main.c
CC rax2.c
CC rasm2.c
CC ragg2.c
CC rarun2.c
CC rabin2.c
CC rafind2.c
CC r2agent.c
CC radiff2.c
CC radare2.c
CC rahash2.c
LD libr_main.so
CC rax2.c
LD rax2
CC rasm2.c
LD rasm2
CC rabin2.c
LD rabin2
CC rahash2.c
LD rahash2
CC radiff2.c
LD radiff2
CC radare2.c
LD radare2
CC rafind2.c
LD rafind2
CC rarun2.c
LD rarun2
CC ragg2.c
LD ragg2
CC r2agent.c
LD r2agent
mkdir -p "/usr/share/man/man1"
mkdir -p "/usr/share/man/man7"
for FILE in r2agent.1 r2-docker.1 r2pm.1 rabin2.1 radare2.1 radiff2.1 rafind2.1 ragg2.1 rahash2.1 rarun2.1 rasm2.1 rax2.1 ; do \
    ln -fs "/tmp/radare2/man/$FILE" "/usr/share/man/man1/$FILE" ; done
cd "/usr/share/man/man1" && ln -fs radare2.1 r2.1
for FILE in *.7 ; do \
    ln -fs "/tmp/radare2/man/$FILE" "/usr/share/man/man7/$FILE" ; done
/usr/bin/install -d "/usr/share/doc/radare2"
for FILE in 3D all68k.r2 android.md avr.md bash_autocompletion.sh brainfuck.md calling-conventions.md capstone.md cows128.data crosscompile debug-internals.md debug.md dexdump.sh dospart dwarf-line.rsc emscripten.md esil.md flirt.md fortunes.creepy fortunes.fun fortunes.nsfw fortunes.tips freebsd.md gdb.md gprobe.md haiku.md hud ida.md images indent-example.c intro.md iocache io-fixing.md io.md ios.md iphone.md kvast.md lang-plugins license.md macos.md macros maemo.md node.js objc.pl oo.md openbsd.md pdb plugins.md portscan.r2 qnx.md r2ascii.txt r2pipe.html rapatch.md rap.md releases.md repo rgraph.md sandbox sdb_ordinal.md siol.md solaris.md static-plugins statis.md strings.md termux.md uncrustify.cfg vim vim2r2.js vlang-example.v windbg.md windows.md yara.md zsh ; do \
    ln -fs "/tmp/radare2/doc/$FILE" "/usr/share/doc/radare2" ; done
for FILE in r_anal.pc r_asm.pc r_bin.pc r_bp.pc r_config.pc r_cons.pc r_core.pc r_crypto.pc r_debug.pc r_egg.pc r_flag.pc r_fs.pc r_hash.pc r_io.pc r_lang.pc r_magic.pc r_parse.pc r_reg.pc r_search.pc r_socket.pc r_syscall.pc r_util.pc ; do \
    ln -fs "/tmp/radare2/pkgcfg/$FILE" "/usr/lib/pkgconfig/$FILE" ; done
rm -rf "/usr/share/radare2/4.1.0-git/www"
rm -rf "/usr/lib/radare2/4.1.0-git/www" # old dir
mkdir -p "/usr/share/radare2/4.1.0-git/www"
for FILE in console.html d3 enyo f favicon.ico graph index.html index.old.html log.html m old p r2.svg rlogo.png t upload.html ; do \
    ln -fs "/tmp/radare2/shlr/www/$FILE" "/usr/share/radare2/4.1.0-git/www" ; done
for DIR in libr/cons/d libr/flag/d libr/bin/d libr/asm/d libr/syscall/d libr/magic/d libr/anal/d ; do (\
    cd "$DIR" ; \
    echo "$DIR" ; \
    make install-symlink ); \
done
libr/cons/d
make[1]: Entering directory '/tmp/radare2/libr/cons/d'
mkdir -p "/usr/share/radare2/4.1.0-git/cons"
for FILE in * ; do \
    if [ $FILE != Makefile -a $FILE != meson.build -a -f $FILE ]; then \
        ln -fs "/tmp/radare2/libr/cons/d/$FILE" "/usr/share/radare2/4.1.0-git/cons/$FILE" ; \
    fi ; \
done
make[1]: Leaving directory '/tmp/radare2/libr/cons/d'
libr/flag/d
make[1]: Entering directory '/tmp/radare2/libr/flag/d'
rm -f *.r2
for a in alloc crypto dylib env fs network process stdout string threads time ; do b=$(echo `cat $a`); echo "ft $a $b" ; done > tags.r2
mkdir -p "/usr/share/radare2/4.1.0-git/flag"
ln -fs /tmp/radare2/libr/flag/d/tags.r2 /usr/share/radare2/4.1.0-git/flag/tags.r2
make[1]: Leaving directory '/tmp/radare2/libr/flag/d'
libr/bin/d
make[1]: Entering directory '/tmp/radare2/libr/bin/d'
mkdir -p "/usr/share/radare2/4.1.0-git/format"
for FILE in * ; do \
    if [ "$FILE" != Makefile ]; then \
        ln -fs "/tmp/radare2/libr/bin/d/$FILE" "/usr/share/radare2/4.1.0-git/format/$FILE" ; \
    fi ; \
done
make[1]: Leaving directory '/tmp/radare2/libr/bin/d'
libr/asm/d
make[1]: Entering directory '/tmp/radare2/libr/asm/d'
mkdir -p "/usr/share/radare2/4.1.0-git/opcodes"
for FILE in *.sdb ; do ln -fs "/tmp/radare2/libr/asm/d/$FILE" "/usr/share/radare2/4.1.0-git/opcodes/$FILE" ; done
make[1]: Leaving directory '/tmp/radare2/libr/asm/d'
libr/syscall/d
make[1]: Entering directory '/tmp/radare2/libr/syscall/d'
mkdir -p "/usr/share/radare2/4.1.0-git/syscall"
for FILE in *.sdb ; do ln -fs "/tmp/radare2/libr/syscall/d/$FILE" "/usr/share/radare2/4.1.0-git/syscall/$FILE" ; done
make[1]: Leaving directory '/tmp/radare2/libr/syscall/d'
libr/magic/d
make[1]: Entering directory '/tmp/radare2/libr/magic/d'
mkdir -p "/usr/share/radare2/4.1.0-git/magic"
for FILE in apple archive cafebabe code compressed database elf filesystems firmware flash freebsd gimp gpg html images java jpeg linux mach mail.news microsoft mime netbsd network openbsd pdf perl python riff sniffer sql ssh uuencode video vim vorbis zfs ; do \
    ln -fs "/tmp/radare2/libr/magic/d/default/$FILE" "/usr/share/radare2/4.1.0-git/magic/$FILE" ; \
done
make[1]: Leaving directory '/tmp/radare2/libr/magic/d'
libr/anal/d
make[1]: Entering directory '/tmp/radare2/libr/anal/d'
cd ../../.. && mkdir -p "/usr/share/radare2/4.1.0-git/fcnsign" && \
for FILE in cc-arm-16.sdb cc-arm-32.sdb cc-arm-64.sdb cc-avr-8.sdb cc-hexagon-32.sdb cc-m68k-32.sdb cc-mips-32.sdb cc-mips-64.sdb cc-powerpc-32.sdb cc-powerpc-64.sdb cc-riscv-64.sdb cc-sparc-32.sdb cc-x86-16.sdb cc-x86-32.sdb cc-x86-64.sdb cc-xtensa-32.sdb spec.sdb types-16.sdb types-32.sdb types-64.sdb types-android.sdb types-arm-ios-16.sdb types-arm-ios-32.sdb types-arm-ios-64.sdb types-darwin.sdb types-linux.sdb types.sdb types-windows.sdb types-x86-macos-64.sdb types-x86-windows-32.sdb types-x86-windows-64.sdb; do \
    ln -fs "/tmp/radare2/libr/anal/d/$FILE" "/usr/share/radare2/4.1.0-git/fcnsign/$FILE" ; \
done
make[1]: Leaving directory '/tmp/radare2/libr/anal/d'
cd libr && make install-symlink
make[1]: Entering directory '/tmp/radare2/libr'
make[2]: Entering directory '/tmp/radare2'
for FILE in r_anal.pc r_asm.pc r_bin.pc r_bp.pc r_config.pc r_cons.pc r_core.pc r_crypto.pc r_debug.pc r_egg.pc r_flag.pc r_fs.pc r_hash.pc r_io.pc r_lang.pc r_magic.pc r_parse.pc r_reg.pc r_search.pc r_socket.pc r_syscall.pc r_util.pc ; do \
    ln -fs "/tmp/radare2/pkgcfg/$FILE" "/usr/lib/pkgconfig/$FILE" ; done
make[2]: Leaving directory '/tmp/radare2'
make[1]: Leaving directory '/tmp/radare2/libr'
cd binr && make install-symlink
make[1]: Entering directory '/tmp/radare2/binr'
cd .. && \
mkdir -p "/usr/bin" && \
for BINARY in rax2 rasm2 rabin2 rahash2 radiff2 radare2 rafind2 rarun2 ragg2 r2agent ; do ln -fs "/tmp/radare2/binr/$BINARY/$BINARY" "/usr/bin/$BINARY" ; done
cd .. && ln -fs "/tmp/radare2/binr/r2pm/r2pm" "/usr/bin/r2pm"
cd .. && rm -rf "/usr/share/radare2/4.1.0-git/r2pm"
cd .. && mkdir -p "/usr/share/radare2/4.1.0-git/"
#ln -fs "/tmp/radare2/binr/r2pm/d" "/usr/share/radare2/4.1.0-git/r2pm"
cd .. && ln -fs "/usr/bin/radare2" "/usr/bin/r2"
cd .. && ln -fs "/usr/bin/radare2" "/usr/bin/r2p"
cd .. && ln -fs "/tmp/radare2/binr/preload/libr2.so" "/usr/lib/libr2.so"
cd .. && cd "/usr/lib" && \
    mv libr2.so libr2.so.4.1.0-git && \
    ln -fs libr2.so.4.1.0-git libr2.so
make[1]: Leaving directory '/tmp/radare2/binr'
cd shlr && make install-symlink
make[1]: Entering directory '/tmp/radare2/shlr'
mkdir -p "/usr/lib"
#cd tcc ; for FILE in libr_tcc* ; do \
#   ln -fs `pwd`/$FILE /usr/lib/$FILE ; done
make[1]: Leaving directory '/tmp/radare2/shlr'
mkdir -p "/usr/bin"
ln -fs "/tmp/radare2/sys/indent.sh" "/usr/bin/r2-indent"
ln -fs "/tmp/radare2/sys/r2-docker.sh" "/usr/bin/r2-docker"
mkdir -p "/usr/share/radare2/4.1.0-git/hud"
ln -fs "/tmp/radare2/doc/hud" "/usr/share/radare2/4.1.0-git/hud/main"
#mkdir -p "/usr/share/radare2/4.1.0-git/flag"
#ln -fs /tmp/radare2/libr/flag/d/tags.r2 "/usr/share/radare2/4.1.0-git/flag/tags.r2"
cd "/usr/lib/radare2/" ;\
    rm -f last ; ln -fs 4.1.0-git last
cd "/usr/share/radare2/" ;\
    rm -f last ; ln -fs 4.1.0-git last
mkdir -p "/usr/share/radare2/4.1.0-git/"
/bin/sh sys/ldconfig.sh
/bin/sh ./configure-plugins --rm-static //usr/lib/radare2/last/
configure-plugins: Loading ./plugins.cfg ..
Removed 0 shared plugins that are already static
GustavoLCR commented 4 years ago

That's the compilation output, try reproducing the crash now and paste the backtrace output

dmknght commented 4 years ago

Ah sure sorry about that!!! Here is my result

[x] Analyze all flags starting with sym. and entry0 (aa)
[x] Analyze function calls (aac)
[x] Analyze len bytes of instructions for references (aar)
[x] Check for objc references
[x] Check for vtables
[AddressSanitizer:DEADLYSIGNAL all functions (aaft)
=================================================================
==31634==ERROR: AddressSanitizer: SEGV on unknown address 0x603000094840 (pc 0x603000094840 bp 0x7ffe23e495c0 sp 0x7ffe23e49578 T0)
==31634==The signal is caused by a READ memory access.
==31634==Hint: PC is at a non-executable region. Maybe a wild jump?
    #0 0x60300009483f  (<unknown module>)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (<unknown module>) 
==31634==ABORTING

Screenshot at 2019-11-17 12-10-15

dmknght commented 4 years ago

More information showed up for PE32 file

/tmp/radare2/libr/..//libr/bin/p/../format/pe/pe.c:679:10: runtime error: member access within misaligned address 0x625000299112 for type 'struct SymbolRecord', which requires 8 byte alignment
0x625000299112: note: pointer points here
 20 00  03 01 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  1e 00 00 00 40 01
              ^ 
/tmp/radare2/libr/..//libr/bin/p/../format/pe/pe.c:680:11: runtime error: member access within misaligned address 0x625000299124 for type 'struct SymbolRecord', which requires 8 byte alignment
0x625000299124: note: pointer points here
  00 00 00 00 00 00 00 00  1e 00 00 00 40 01 00 00  01 00 20 00 03 00 00 00  00 00 32 00 00 00 60 02
              ^ 
/tmp/radare2/libr/..//libr/bin/p/../format/pe/pe.c:682:25: runtime error: member access within misaligned address 0x625000299124 for type 'struct SymbolRecord', which requires 8 byte alignment
0x625000299124: note: pointer points here
  00 00 00 00 00 00 00 00  1e 00 00 00 40 01 00 00  01 00 20 00 03 00 00 00  00 00 32 00 00 00 60 02
              ^ 
/tmp/radare2/libr/..//libr/bin/p/../format/pe/pe.c:698:62: runtime error: member access within misaligned address 0x625000299124 for type 'struct SymbolRecord', which requires 8 byte alignment
0x625000299124: note: pointer points here
  00 00 00 00 00 00 00 00  1e 00 00 00 40 01 00 00  01 00 20 00 03 00 00 00  00 00 32 00 00 00 60 02
              ^ 
/tmp/radare2/libr/..//libr/bin/p/../format/pe/pe.c:699:39: runtime error: member access within misaligned address 0x625000299124 for type 'struct SymbolRecord', which requires 8 byte alignment
0x625000299124: note: pointer points here
  00 00 00 00 00 00 00 00  1e 00 00 00 40 01 00 00  01 00 20 00 03 00 00 00  00 00 32 00 00 00 60 02
              ^ 
/tmp/radare2/libr/..//libr/bin/p/../format/pe/pe.c:689:48: runtime error: load of misaligned address 0x62500029913a for type 'unsigned int', which requires 4 byte alignment
0x62500029913a: note: pointer points here
 00 00  00 00 32 00 00 00 60 02  00 00 01 00 20 00 02 00  00 00 00 00 42 00 00 00  80 02 00 00 01 00
              ^ 
[x] Analyze all flags starting with sym. and entry0 (aa)
AddressSanitizer:DEADLYSIGNAL
=================================================================
==4080==ERROR: AddressSanitizer: SEGV on unknown address 0x603000094840 (pc 0x603000094840 bp 0x7ffc34337fe0 sp 0x7ffc34337f98 T0)
==4080==The signal is caused by a READ memory access.
==4080==Hint: PC is at a non-executable region. Maybe a wild jump?
    #0 0x60300009483f  (<unknown module>)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (<unknown module>) 
==4080==ABORTING
dmknght commented 4 years ago

My r2 -V output

https://pastebin.com/TpNA37cR
dmknght commented 4 years ago

I ran radare2 under gdb as Itay Cohen suggestion and i found the bug. Remove r2dec solved problem. Command i ran: gdb --args r2 -A crackme0x02 run bt I guess the problem is r2dec was compiled for older version so when i upgraded it, it made the crash. Screenshot at 2019-11-17 19-36-38 Screenshot at 2019-11-17 19-36-46