head 1.44; access; symbols pkgsrc-2023Q4:1.44.0.2 pkgsrc-2023Q4-base:1.44 pkgsrc-2023Q3:1.42.0.4 pkgsrc-2023Q3-base:1.42 pkgsrc-2023Q2:1.42.0.2 pkgsrc-2023Q2-base:1.42 pkgsrc-2023Q1:1.40.0.2 pkgsrc-2023Q1-base:1.40 pkgsrc-2022Q4:1.37.0.2 pkgsrc-2022Q4-base:1.37 pkgsrc-2022Q3:1.36.0.2 pkgsrc-2022Q3-base:1.36 pkgsrc-2022Q2:1.33.0.6 pkgsrc-2022Q2-base:1.33 pkgsrc-2022Q1:1.33.0.4 pkgsrc-2022Q1-base:1.33 pkgsrc-2021Q4:1.33.0.2 pkgsrc-2021Q4-base:1.33 pkgsrc-2021Q3:1.31.0.4 pkgsrc-2021Q3-base:1.31 pkgsrc-2021Q2:1.31.0.2 pkgsrc-2021Q2-base:1.31 pkgsrc-2021Q1:1.29.0.2 pkgsrc-2021Q1-base:1.29 pkgsrc-2020Q4:1.27.0.4 pkgsrc-2020Q4-base:1.27 pkgsrc-2020Q3:1.27.0.2 pkgsrc-2020Q3-base:1.27 pkgsrc-2020Q2:1.26.0.2 pkgsrc-2020Q2-base:1.26 pkgsrc-2020Q1:1.25.0.2 pkgsrc-2020Q1-base:1.25 pkgsrc-2019Q4:1.22.0.4 pkgsrc-2019Q4-base:1.22 pkgsrc-2019Q3:1.21.0.2 pkgsrc-2019Q3-base:1.21 pkgsrc-2019Q2:1.18.0.4 pkgsrc-2019Q2-base:1.18 pkgsrc-2019Q1:1.18.0.2 pkgsrc-2019Q1-base:1.18 pkgsrc-2018Q4:1.17.0.4 pkgsrc-2018Q4-base:1.17 pkgsrc-2018Q3:1.17.0.2 pkgsrc-2018Q3-base:1.17 pkgsrc-2018Q2:1.15.0.2 pkgsrc-2018Q2-base:1.15 pkgsrc-2018Q1:1.14.0.2 pkgsrc-2018Q1-base:1.14 pkgsrc-2017Q4:1.10.0.6 pkgsrc-2017Q4-base:1.10 pkgsrc-2017Q3:1.10.0.4 pkgsrc-2017Q3-base:1.10 pkgsrc-2017Q2:1.9.0.4 pkgsrc-2017Q2-base:1.9 pkgsrc-2017Q1:1.9.0.2 pkgsrc-2017Q1-base:1.9 pkgsrc-2016Q4:1.8.0.4 pkgsrc-2016Q4-base:1.8 pkgsrc-2016Q3:1.8.0.2 pkgsrc-2016Q3-base:1.8 pkgsrc-2016Q2:1.7.0.2 pkgsrc-2016Q2-base:1.7 pkgsrc-2016Q1:1.6.0.2 pkgsrc-2016Q1-base:1.6 pkgsrc-2015Q4:1.5.0.4 pkgsrc-2015Q4-base:1.5 pkgsrc-2015Q3:1.5.0.2 pkgsrc-2015Q3-base:1.5 pkgsrc-2015Q2:1.2.0.2 pkgsrc-2015Q2-base:1.2 pkgsrc-2015Q1:1.1.0.2 pkgsrc-2015Q1-base:1.1; locks; strict; comment @# @; 1.44 date 2023.11.08.13.18.59; author wiz; state Exp; branches; next 1.43; commitid PsuHTklAIsF4bOLE; 1.43 date 2023.10.24.22.08.57; author wiz; state Exp; branches; next 1.42; commitid MTsrqKm6aGrQAVJE; 1.42 date 2023.05.15.19.05.33; author he; state Exp; branches; next 1.41; commitid yhUroFjhG0gjN5pE; 1.41 date 2023.04.19.08.08.19; author adam; state Exp; branches; next 1.40; commitid B8gCWhWtMX9vZGlE; 1.40 date 2023.01.28.01.28.42; author khorben; state Exp; branches; next 1.39; commitid ZhLI2Vly5QgomfbE; 1.39 date 2023.01.04.01.48.48; author khorben; state Exp; branches; next 1.38; commitid HKU6u73DOpbSfa8E; 1.38 date 2022.12.28.04.36.55; author khorben; state Exp; branches; next 1.37; commitid SMJBNm0QjK6Nmh7E; 1.37 date 2022.10.26.10.31.02; author wiz; state Exp; branches; next 1.36; commitid PVFjlIYUKslkpdZD; 1.36 date 2022.09.21.15.43.53; author wiz; state Exp; branches; next 1.35; commitid eecEuYoYB6osgKUD; 1.35 date 2022.09.21.13.49.39; author ast; state Exp; branches; next 1.34; commitid htJCxJXo4kxwAJUD; 1.34 date 2022.06.28.11.33.42; author wiz; state Exp; branches; next 1.33; commitid D2UoJrTHpoHEANJD; 1.33 date 2021.12.08.16.02.02; author adam; state Exp; branches; next 1.32; commitid 2PyWjHx5T8rqARjD; 1.32 date 2021.09.29.19.00.06; author adam; state Exp; branches; next 1.31; commitid WsBUbBM52TSePSaD; 1.31 date 2021.05.24.19.52.01; author wiz; state Exp; branches; next 1.30; commitid qokaiStTApGMcrUC; 1.30 date 2021.04.21.13.24.10; author adam; state Exp; branches; next 1.29; commitid RAyVO2K5RkoQ8aQC; 1.29 date 2021.03.21.13.16.47; author leot; state Exp; branches; next 1.28; commitid 8ogS7GxNwrQ76bMC; 1.28 date 2021.01.26.14.25.00; author kamil; state Exp; branches; next 1.27; commitid OwDifNJiK45v5fFC; 1.27 date 2020.08.31.18.09.20; author wiz; state Exp; branches; next 1.26; commitid 7zxRbfOkDOoxbfmC; 1.26 date 2020.05.22.10.55.45; author adam; state Exp; branches; next 1.25; commitid m1Z0QPvTTTWz3e9C; 1.25 date 2020.03.08.16.47.41; author wiz; state Exp; branches; next 1.24; commitid rcNYzTQo8icypCZB; 1.24 date 2020.01.26.17.31.04; author rillig; state Exp; branches; next 1.23; commitid 4fBBvoSLJaGd0eUB; 1.23 date 2020.01.18.21.48.09; author jperkin; state Exp; branches; next 1.22; commitid JW4hJgY8ZdoTFdTB; 1.22 date 2019.11.03.10.39.29; author rillig; state Exp; branches; next 1.21; commitid REW2CfrA7HdqqoJB; 1.21 date 2019.08.11.13.20.50; author wiz; state Exp; branches; next 1.20; commitid Ifet9Pg6Qt99ZByB; 1.20 date 2019.08.04.14.30.13; author ryoon; state Exp; branches; next 1.19; commitid eXaetNV57tP6DIxB; 1.19 date 2019.07.20.22.46.00; author wiz; state Exp; branches; next 1.18; commitid dMrQLvIeoazTQPvB; 1.18 date 2019.03.26.19.29.52; author ryoon; state Exp; branches; next 1.17; commitid e3E7AST6ooQYuUgB; 1.17 date 2018.09.08.15.14.56; author khorben; state Exp; branches; next 1.16; commitid IVHQiFsRxwEtsjRA; 1.16 date 2018.08.22.09.44.59; author wiz; state Exp; branches; next 1.15; commitid YLub8g3ofvFGb6PA; 1.15 date 2018.04.17.22.29.32; author wiz; state Exp; branches; next 1.14; commitid 2vVfqOUBo6B4wQyA; 1.14 date 2018.03.12.11.15.31; author wiz; state Exp; branches; next 1.13; commitid Mv60lx3Uo1UqW9uA; 1.13 date 2018.02.19.02.54.59; author kamil; state Exp; branches; next 1.12; commitid twetoCnD89RxQprA; 1.12 date 2018.02.18.18.00.22; author kamil; state Exp; branches; next 1.11; commitid Myhrg7r0y2KhTmrA; 1.11 date 2018.02.18.17.36.58; author kamil; state Exp; branches; next 1.10; commitid a6oqVucDiquxFmrA; 1.10 date 2017.09.02.22.02.25; author wiz; state Exp; branches; next 1.9; commitid 1F38QIu5pGecFF5A; 1.9 date 2017.02.23.07.44.09; author wiz; state Exp; branches; next 1.8; commitid KWrYuQwUQ5er33Hz; 1.8 date 2016.09.16.14.46.25; author jperkin; state Exp; branches; next 1.7; commitid FFp6CRbgxC64xwmz; 1.7 date 2016.06.13.12.26.11; author wiz; state Exp; branches; next 1.6; commitid IwoGvdjp88pdOiaz; 1.6 date 2016.03.05.11.28.25; author jperkin; state Exp; branches; next 1.5; commitid 1LoxeQftu903HrXy; 1.5 date 2015.07.19.16.02.51; author kamil; state Exp; branches; next 1.4; commitid TyMezMs4qxv8CUty; 1.4 date 2015.07.09.09.25.55; author kamil; state Exp; branches; next 1.3; commitid hv8f3onw2eFiGAsy; 1.3 date 2015.07.03.16.05.02; author khorben; state Exp; branches; next 1.2; commitid o7DNc6CZ1Cc45Rry; 1.2 date 2015.05.04.21.14.24; author wiz; state Exp; branches; next 1.1; commitid XqCYim3T8xEHMaky; 1.1 date 2015.02.27.12.11.20; author gdt; state Exp; branches; next ; commitid GKWPey060twZTDby; desc @@ 1.44 log @*: recursive bump for icu 74.1 @ text @# $NetBSD: Makefile,v 1.43 2023/10/24 22:08:57 wiz Exp $ DISTNAME= radare2-5.8.2 PKGREVISION= 4 CATEGORIES= devel MASTER_SITES= ${MASTER_SITE_GITHUB:=radareorg/} DISTFILES= ${DEFAULT_DISTFILES} DISTFILES+= vector35-arch-arm64-55d73c6bbb94448a5c615933179e73ac618cf876.tar.gz DISTFILES+= vector35-arch-armv7-f270a6cc99644cb8e76055b6fa632b25abd26024.tar.gz SITES.vector35-arch-arm64-55d73c6bbb94448a5c615933179e73ac618cf876.tar.gz= \ -${MASTER_SITES:=vector35-arch-arm64/archive/55d73c6bbb94448a5c615933179e73ac618cf876.tar.gz} SITES.vector35-arch-armv7-f270a6cc99644cb8e76055b6fa632b25abd26024.tar.gz= \ -${MASTER_SITES:=vector35-arch-armv7/archive/f270a6cc99644cb8e76055b6fa632b25abd26024.tar.gz} MAINTAINER= pkgsrc-users@@NetBSD.org HOMEPAGE= https://www.radare.org/ COMMENT= Reverse engineering framework LICENSE= gnu-gpl-v3 AND gnu-lgpl-v3 HAS_CONFIGURE= YES CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR} CONFIGURE_ARGS+= --with-sysmagic CONFIGURE_ARGS+= --with-syscapstone CONFIGURE_ARGS+= --with-syszip PKGCONFIG_OVERRIDE+= pkgcfg/*.pc* USE_TOOLS+= gmake patch pkg-config perl # node CHECK_INTERPRETER_SKIP+= share/radare2/${PKGVERSION_NOREV}/www/m/fonts/iconjar-map.js #R2VERSION= ${PKGVERSION_NOREV}-git # trunk revision R2VERSION= ${PKGVERSION_NOREV} # release version R2VERSION_MN= ${R2VERSION:C/([0-9]*\.[0-9]*).*/\1/} PLIST_SUBST+= R2VERSION=${R2VERSION} PLIST_SUBST+= R2VERSION_MN=${R2VERSION_MN} PRINT_PLIST_AWK+= { gsub(/${R2VERSION}/, "$${R2VERSION}") } PRINT_PLIST_AWK+= { gsub(/${R2VERSION_MN}/, "$${R2VERSION_MN}") } post-extract: ${MV} ${WRKDIR}/vector35-arch-arm64-55d73c6bbb94448a5c615933179e73ac618cf876\ ${WRKSRC}/libr/arch/p/arm/v35/arch-arm64 ${MV} ${WRKDIR}/vector35-arch-armv7-f270a6cc99644cb8e76055b6fa632b25abd26024 \ ${WRKSRC}/libr/arch/p/arm/v35/arch-armv7 .include "options.mk" .include "../../devel/capstone/buildlink3.mk" .include "../../sysutils/file/buildlink3.mk" .include "../../archivers/libzip/buildlink3.mk" .include "../../mk/bsd.pkg.mk" @ 1.43 log @*: bump for openssl 3 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.42 2023/05/15 19:05:33 he Exp $ d4 1 a4 1 PKGREVISION= 3 @ 1.42 log @radare: do the minimum to make this build on NetBSD/macppc. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.41 2023/04/19 08:08:19 adam Exp $ d4 1 a4 1 PKGREVISION= 2 @ 1.41 log @revbump after textproc/icu update @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.40 2023/01/28 01:28:42 khorben Exp $ d4 1 a4 1 PKGREVISION= 1 @ 1.40 log @radare2: update to 5.8.2 Changes in 5.8.2: ### anal * Honor the micromips codealign, add missing =SN and cc * Set indirect code refs from load instructions * Make r_anal_optype_{to,from}_string use the same optypes array * Rework of the function merging * Add Plan 9 calling conventions * Basic blocks are not modified if not initialized * Add test for gb srcs/dsts json and valtype * Fix multiple typos in ios-syscalls.txt ### analysis * Make r_anal_optype_{to,from}_string use the same optypes array * Rework of the function merging ### api * Make r_str_casecmp() null-proof to fix weird crash on windows * Implement RCore.cmdCallAt() + minor improve internal cmd calls * Fix RFile.path() when $PATH contains no colon ### arch * Add esil support for v850 ei and di instructions * Add esil support for v850 reti instruction * Add esil support for v850 stsr instruction * Add esil support for v850 ldsr instruction * Blindfix for a glitch in the v850 disassembler * Simplify esil generation of v850 bcond instructions * Add esil support for v850 setf instruction * Improve v850 esil support and fix some related bugs * Fix asm.cpu=? when using arch plugins * Fix rasm2 -a mips{.gnu} -b16 -e -c micro -d '4fe5' * Move mcore into the arch * Support micromips on both gnu and capstone plugins * Move anal.propeller * Add micromips cpu for the mips.gnu plugin * Move nios2 away from anal * Register RArch plugins to be loaded dynamically ### asm * Implement .extern directive in rasm2, fix other directives * Fix ARM assembler for blt, ble, cmn, tst, and teq instructions ### bin * Fix null deref assert in the TE parser * Fix unnecessary memory exhaustion in the elf parser * Fix allocation crash in bin.symbols * Support elf-micromips auto detection * DWARF5 line header parsing * License Plan 9 code as MIT * Add Plan 9 line number information * Fix load address of arm64 kernel ### build * Do not depend on strcasecmp in libzip, build fail on Centos7 * Upgrade v35arm64 to fix non-c99 compilation * Update to the latest tinycc in the CI * Remove the need for ios-include.tar.gz * Use an authorized API call for the abi job to increase the rate limit * Remove condition on 'linux-static' job * Integrate ABI diffing into CI scripts * Add --with-ssl-crypto, rename --with-openssl to --with-ssl * meson: Install various missing files * Use fakeroot if available when packaging for debian * Integrate ABI diffing into CI scripts ### ci * Upgrade CodeQL actions from v1 to v2 * Update the SPEC file and build RPM packages in the CI * Update the SPEC file and build RPM packages in the CI ### crash * Fix infinite loop and null derefs when calling pd from pd in Cr * Blindfix with a hack and a workaround to fix an UAF in Cr * Fix an UAF in the visual bit editor * Fix null deref segfault in Vd1 * Fix UAF in oc * Fix null deref in io.bank ### debug * Fix #8992 - Apply command line settings before initializing debug plugin * Add required A0 register into x86 register profile provided by GDB * Use proper type for the XMM register inside profile recieved * Implement dpt. command to print the current selected process ### disasm * Optimize RAnal.kind() as its called many times with a large buffer from pd * Bring back and improve the Cr command ### doc * Reference abidiff's ci usage in doc/abi.md * Reference doc/abi in DEVELOPERS ### esil * Fix emulation of the arm64 tst instruction ### fs * Improve json output for mlj - mountpoint type and delta ### globals * Remove global in util/lib and just use RLogLevel ### indent * Balance spacings in braces ### js * Add experimental r2.cmd0 and r2.call0 for qjs * Enable stack overflow check when recursive calls * Improve error messages in the qjs repl * Rename qjs's dir function to dump * Support loading/unloading multiple QJS plugins * Update typescript compiler and move r2plugin into r2 * Fix undefined behaviour in quickjs when casting double to int64 * Fix #21205 - Missing object definition for aoj * Fix undefined behaviour in double->int cast * Extra checks and enforce the singleton core plugin * Improve typescript entrypoint logic detection * Initial support for javascript core plugins * Upgrade r2papi-ts from 0.0.4 to 0.0.10 * Support typescript Main namespace and pass --allowJs ### json * Fix #21205 - Missing object definition for aoj ### lang * Initial implementation of lang.s assembly scripting * R_TH_LOCAL two globals in RLang.c * Reestructure lib dependencies, add lang.asm plugin ### perf * Massage the bottleneck that was making r2dec super slow * Some more likely hints in RCore.cmd from valgrind ### print * Fix pA and pA? (/A was moved into /a) * Implement pvp and wvp to print and write pointers * Fix fortune message for #md5 and add ph: variant of "ph " ### qjs * Add QJS_NOABORT option to avoid aborts * r2pm * Improvements for r2pm when getcwd is null * Add R2PM_NEEDS and auto-install system build deps if possible * Fix git check before cloning the repo * Fix R2PM_DEPS first time issue * Report better errors on first r2pm setup * Initial experimental support for portable qjs packages ### search * Implement tire algorithm in ### shell * Fix assert in ph * Initial skeleton integration with GNU/Poke * Fix profiling RCore.cmdCall() via ?t"" * Add help message for the quote command "? * Implement LAj and LAq commands to list arch plugins * Implement uname -h, -m, -b, -j ... * Handle unknown subcommands for t * pdrj shouldnt be modifying the current seek * Add -j command as an alias for js: * Add the ability to run qjs scripts with r2 -je ### slides:xa * Improve r2slides with title, colors and 2 column mode ### test * Update libfuzz build instructions * Add the dwarf fuzzer program * Add some test for ARM assembler ### tools * Add R2_DEBUG_NOPAPI env var * Show error when passing un-even hexpair to rasm2 ### visual * Fix (null) regression in visual bit editor's disasm * Handle JK in bit editor to move 8 bytes fwd/backward ### vuln * Fix ANSI Escape Sequence Injection vulns via DWARF @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.39 2023/01/04 01:48:48 khorben Exp $ d4 1 @ 1.39 log @radare2: remove requirement on Git to build This removes the need to clone repositories to build radare2. Thanks wiz@@ for the heads up. Tested on NetBSD/amd64. No revision bump as the resulting package should be identical. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.38 2022/12/28 04:36:55 khorben Exp $ d3 1 a3 1 DISTNAME= radare2-5.8.0 d7 6 a12 6 DISTFILES+= vector35-arch-arm64-9ab2b0bedde459dc86e079718333de4a63bbbacb.tar.gz DISTFILES+= vector35-arch-armv7-dde39f69ffea19fc37e681874b12cb4707bc4f30.tar.gz SITES.vector35-arch-arm64-9ab2b0bedde459dc86e079718333de4a63bbbacb.tar.gz= \ -${MASTER_SITES:=vector35-arch-arm64/archive/9ab2b0bedde459dc86e079718333de4a63bbbacb.tar.gz} SITES.vector35-arch-armv7-dde39f69ffea19fc37e681874b12cb4707bc4f30.tar.gz= \ -${MASTER_SITES:=vector35-arch-armv7/archive/dde39f69ffea19fc37e681874b12cb4707bc4f30.tar.gz} a18 6 post-extract: ${MV} ${WRKDIR}/vector35-arch-arm64-9ab2b0bedde459dc86e079718333de4a63bbbacb \ ${WRKSRC}/libr/arch/p/arm/v35arm64/arch-arm64 ${MV} ${WRKDIR}/vector35-arch-armv7-dde39f69ffea19fc37e681874b12cb4707bc4f30 \ ${WRKSRC}/libr/arch/p/arm/v35arm64/arch-armv7 d40 6 @ 1.38 log @radare2: update to 5.8.0 Changes: abi * RAnalOp.srcs,dsts are not pointers anal * Working apt and add apl to list function preludes * Rename axj to axlj, because axj is for jmp refs * Introduce anal.tailcall.delta and use flags for better metrics * Improve the tailcall detection logic * Improve warning that only seems to happen when anal.nopskip is set * Always show all the archinfo, even when not provided by the plug * Dont show analysis progress on non-interactive shells * Add esil.dfg.mapinfo and esil.dfg.maps config vars * Some more improvements to esil_dfg * Fix size returned from r_anal_op * Fix warning in aflj when parsing vargarg signatures * Add register computed const pointer support for esil dfg * Add memory computed const pointer support for esil dfg * Introduce R_ANAL_ESIL_DFG_TAG_{REG,MEM} * Use treebuf io plugin as memory access backed for esil_dfg * Fix pickle asm rejecting empty strings * Do not recurse noreturn inspection when !addr or -1 * Generalize vector instruction types instead of following intel-specific * Add /au to search for unknown destination jmp/call * Add anal.noret and refactor anal.noret.refs * Fix #20827 - Show srcs/dsts in aoj * Fix aae argument parsing regression in and improve help * Add support for stack-computed const pointers in esil_dfg * Fix anal.a2f in aac * Increase default anal.depth from 64 to 128 * Clarify which commands are used on each aaaa line * Fix anal.depth usage when analyzing one basic block * Loongarch analysis bug fixes (bl, race condition) * Implement aflxv and aflx? commands * Run /azq in aaaa * Fix long1,long4 pickle opcodes * Fix #20798 - Fix bx after add lr,pc,0 in arm32 * Fix null pointer in aflxj * Implement aflxj * Add noreturn column in afll * Use RPVector in RAnalOp src/dst to support ldm/stm/simd * Fix pickle arch thinking 0 is 64 bit * Don't show the linearsize in the afl output * Add anal.vars.newstack - configurable improved stack-relative var analysis * Working apt and add apl to list function preludes * Rename axj to axlj, because axj is for jmp refs * Introduce anal.tailcall.delta and use flags for better metrics * Improve the tailcall detection logic * Improve warning that only seems to happen when anal.nopskip is set * Always show all the archinfo, even when not provided by the plug * Dont show analysis progress on non-interactive shells * Do not recurse noreturn inspection when !addr or -1 * Generalize vector instruction types instead of following intel-specific * Add /au to search for unknown destination jmp/call * Add anal.noret and refactor anal.noret.refs * Fix #20827 - Show srcs/dsts in aoj * Fix aae argument parsing regression in and improve help * Fix anal.a2f in aac * Increase default anal.depth from 64 to 128 * Clarify which commands are used on each aaaa line * Loongarch analysis bug fixes (bl, race condition) * Implement aflxv and aflx? commands * Run /azq in aaaa * Add noreturn column in afll * Add anal.vars.newstack - configurable improved stack-relative var api * Make RReg refcounted * Implement {ctz|clz}{32|64} RNum * Define RPluginMeta and RPluginStatus * Add new RCore.cmdCallf() helper function * Merge RParse into RAsm * Refactor RLang api to use the new design * Fix null deref on wrong api usage for RCore.cmdStr * Moving more logic between asm, arch, parse and anal * RAnalEsil -> REsil api refactor * Deprecate reil and sysarch defines * More refactorings and api redesigns in r_arch * Remove eprintf calls in favor of R_LOG * Implement RReg.clone() * Deprecate r_str_dup() - related to #20959 * Rename RVector.len to RVector.length for consistency * Remove the unnecessary RThread.CpuAffinity() * Add portable NaN and INF defines for different float sizes * Deprecate r_cons_eprintf and use R_LOG instead * Rename RStr.home() to RFile.home() as part of the Plan * Rename r_mem_memzero to r_mem_zero * Prefer _tostring() instead of _to_string() * Improve r_ref implementation with debugging support * R_BIN_NM -> R_BIN_LANG * Implement thread-safe refcounting - but disabled by default * Deprecate the unused RFList * Implement r_str_ntrim() and speedup r_str_trim() with it * Initial implementation of RString (30% faster than RStrBuf) * Implement r_sys_getenv_asint * Add r_cons_is_initialized * Boolify r_core_yank_file_all() and fix shadow var bug * Add r_file_is_executable and r_file_extension apis * Fix UB bug when using r_vector random access * Change R_LOG_INFO to R_LOG_TODO where suitable * Merge rhash into rcrypto and improve apis * Fix memory leak in r_str_list_join() * Boolify and rename some methods and fields from RFS * Add .author field in all the RLang plugins * Add a public api for the yank-unset action * Constify the help arch * Add the arch.preludes() callback and new RSearchKeyword constructor * Move anal.v850 to arch * Fix counted string bug in pickle * Fix negative unsigned cast in the xtensa disassembler * Add RAnalOp.weakbytes() and move more analop apis to arch * Move anal.xap into the arch * Update tests and better arch.patch/modify callback * Move anal.{6502,snes} into arch * Kill RAsmOp, we can reuse RAnalOp in here * Improve pickle disasm on invalid instructions * Remove RAsmPlugin struct and add the 'aia' command to show archinfo * Move the remaining asm plugins into the arch * Minor plugin selection improvements * Move asm.nasm into the arch * Move asm.vasm into arch.any_vasm * Assemble large pickle instructions * Fix and move failing tests, reorder lib build * Move the arm assembler plugin from asm to arch * Temporary add RAnal as dependency for REgg * Improve x86.nz assembler parsing and other bugs in rnum * Initial implementation of the arch.any.as plugin * Better handle of RNum errors for egg and arch.x86.nz * Support reg+idx and idx+reg in x86.nz assembler * Move the x86.nz plugin * Fix asm.acur supporting arch, anal and asm plugins * Fix asm.acur supporting arch, anal and asm plugins * Move anal_riscv to arch_riscv * Fix rasm2 -LLL using the new multi-bits macros * Introduce RSysBits and its packing/checking macros * Implement archinfo() in RAnal.Plugin.tms320 * Deprecate the unused RArchPlugin.esil field * Use PJ to return the list of mnemonics aoml in arm.v35 * Move anal.rsp to the new home * Move anal.v810 into arch.v810 * Move pickle from anal to arch and add it to meson * Remove anal.malbolge and fix CI r_esil issues * Move the 'sh' plugin to the new home * Honor plugin name in rate matching for RArch.use * Move jdh8 from asm/anal to arch * Unify RArchOp into RAnalOp using common include files * Fix RArchOp.refptr from bool to int * Bump cs5 to support FNOP on m68k * Wire-up RArch into RAnalOp * Fix arm64 plugin to work well with latest arm64 changes in capstone * Use the latest capstone5-next with updated aarch64 support * Copy anal_amd29k.c to rarch * Change arch plugin definition * Add some more arch config vars * Introduce arch.endian config var * Instantiate RArch in anal * Introduce RArchConfig->decoder * Add R_LIB_TYPE_ARCH and i4004 arch-plugin * First arch plugin (arch.null), implement basic lib api * Start moving EVM analysis from extras to core * First implementation of r_arch decoder api * Introduce the new r_arch library, just the skeleton * Add some r_arch api declarations * Initial commit on RArch structs asm * Deprecate more unused fields from RAsmPlugin * Fix the parse.z80.pseudo plugin and add a test * Remove the unused RAsm.binb * Internal cleanup of asm.c, deprecate the disassembly callback * Load cpu descriptions for multiarch plugins * Fix rasm2 x86.nz for "xchg eax,eax" and add tests bin * Fix JSON encoding of section addresses * Add test for cwd source listing, CLL and list * Add warning when loading DWARF5 files (not supported) * Add test for the obm with CL, support noncwd paths * Use obm when spotting a companion dwarf file on macOS * Implement RBinFile.merge() and obm command to use it * Initial implementation of the ob-- command to close the last binobj * Autoload the dwarf companion file on macOS systems if available * Use rabin2 -rO for raw dump operations * Use glob expressions to specify section name to dump * Fix #14540 - klass->super must be an RList instead of char* * Support for Xbox 360 PE32 architecture (PPC BE) * Fix wrong detection of main in elf-arm32 * Fix rabin2 -gj and add tests * Add bin.types and disable by default for CI reasons * Support loading Plan 9 kernels * Use API instead of commands to autoload a pdb * Fix #21020 - fix json format for rabin2 -jM when no main is found * Expose section type for coff, elf and macho formats * Fix #18375 - Only patch arm64 relocs when not initialized * Add experimental bin.str.nofp config for less false positives * Parse the PT_DYNAMIC elf section for the preinit pointers * Fix validation check in xnu * Initialize macho header pf definitions * Speedup class bin loading with bin.filter=false * Implement 'ic.' command * Fix initial seek for Rosetta2 aot binaries * Silent noisy warning in dwarfprocess * Expose klass->super details for objc categories * Include fields in the ic output * Enable the swift metadata parser by default and import classinfo * Add lang field for classes, symbols and methods, expose it via ic * Warn about unpatched relocs when no bin.cache is set for macho fixups * Add support for 32bit Mach-O fixups * Expose the macho reloc fixups and use internal buffer for parsing * Fix obf and add tests for it * Fix Cd4[ invalid syntax used in macho _const section * Expose the id_dylib macho command info into the bin kv * Enlarge the c++ demangler stack limit to solve a warning * Implement Dwarf.register identifier mapping for v850 * Infuse asm.cpu from the elf flags for v850 ELFs * Remove asm.features, improve RBinInfo with flags and abi details * Improve brainfuck detection to reduce false positives * Implement dwarf.regName() for arm64 * Import the free pascal symbol demangler from rizin build * Double lowerdash defines should be defined only by the compiler * Fix and improve static build, faster libr.a with libtool if available * Improve libr.a creation with ar -rcT instead of ar -x * Speedup tcc builds by not using -g * Move esil one level up in libs.mk * Update sdb to remove double include paths * Fix compilation with -lcrypto * Do not use macos-latest (macos-11 is fine for LTS) * Update the capstone4 support to 4.0.2 * Fix zig's @@Cinclude of r_th.h * Add crosscompiling support with sys/zig.sh * Do not install the v35 archives (-50MB) in make install * Fix capstone dynamic memory allocation setup issue * Support sys/debian.sh crossbuilds * Remove unused lc-printscan-long-double wasi flag * Check if CWD contain spaces in sys/install.sh * Add the acr --enable-threadsafety flag and the same for meson * Fix meson infinite loop * Disable libuv by default on meson and acr * Change build order as long as now bin depends on fs ci * Test r2 build with all sysdependencies enabled * Upgrade al-cheb/configure-pagefile-action to the v1.3 * Run unit tests in parallel * Upgrade github actions/checkout from v2 to v3 * Upgrade actions/upload-artifact from v2 to v3 cmd * Fix bugs in aeg command parser config * Deprecate the use of comma in e: as stated in the r2580 prophecy * Deprecate graph.web eval config var * Remove the file.offset unused config variable cons * Fix static themes listing * Add support for statically compiled themes * Fix Ctrl+Arrow dietline shortcut for word cursor * Fix console history log path regression core * Enable cmd.undo by default * Rename many bin.str evars into bin.str. * Use XDG instead of R2_HOME_CACHEDIR and R2_HOME_HISTORY * Initial support for XDG env vars and paths * Fix RConfig.setB when the key doesnt exist * Deprecate scr.seek configuration variable * Initial implementation of R_LOG_TODO crash * Fix segfault in poa 1 * Fix integer overflow in fuzzed dwarf rendering in graphs * Fix use-after-free after @@@@@@e spotted by meme * Fix UAF in aaft when the BB is removed during the loop * Fix UAF on quit exposed by r2frida crypto * Initial abi breaking changes in RCrypto/RHash * Fix rahash2 -L listing full hash * Initial work on the way RCrypto handles plugins * Separate SM4 algorithm from plugin * Implement the SIP hash algorithm debug * Bring back the 'dms' command * Fixed incorrect thread arena output * IO uses PID to read from child, tid is just for regs * Fix r2 -d foo\bar.exe and r2 -d bar.exe on windows * Make RDebug.regRead() and regWrite() return bool decompiler * Improve the outpuf of pdc by trimming the addresses of inline nops and colorize numbers * Add colorization support to pdc output disasm * Implement asm.bytes.align to justify them to the right * Fix char auto-comment in cmp instructions * Improve pseudodisasm for arm64 * Improve arm.pseudo when no function information is available * Fix mips.pseudo shortpath when function is null * Fix x86.pseudo shortpath when function is null * Fix NULL function xrefs in pd * Implement asm.flags.right option * Add dummy parse.evm plugin to fix portability of test * Add a dummy bpf pseudo plugin * Add RParse.justify() to easily fix commas and spaces * Better spacing in arm.pseudo parse plugin esil * Initial support for threads in esil * Fix #21052 - wrong emulation for pop rsp * Move anal.esil into the new esil * Add aegb command as an alias for 'aeg pieq $Fi' * Add aegn command to combine N esil instructions into one dfg * Use a function instead for the spaguetti code in all cmp esil opcodes -30LOC globals * Remove one global variable in RCore.cmdEval() * Remove two globals from RCons.cpipe * Remove the 3 globals in anal.xtensa * Remove 3 globals from anal.tricore * Remove the 3 globals from anal.vax * Remove 3 globals from anal.nios2 * Remove 3 globals from anal.arc * Remove 3 globals from anal.sparc.gnu * Remove 3 globals from anal.sh * Remove 3 globals from anal.alpha * Remove 3 globals from anal.lanai.gnu * Remove 3 more globals from anal.pdp11 * Remove 3 globals from anal.hppa * Remove 3 globals from anal.m68k.gnu * Remove the 3 globals in anal.ppc.gnu * Remove 3 globals from anal.cris * Remove 4 globals from anal.mips.gnu * Deglob 4 vars in the arm.gnu disassembler * Remove 3 globals in s390.gnu * Remove 10 more globals from analysis and capstone * Remove 3 globals in ccarg analysis * Remove all global variables from RCrypto * Move colortable global into the RConsContext * Remove global from utf8 * Remove the last global variable in libmagic * Remove in_log_process global * Remove global in bin.obj.reloc_patch * Remove global variable in esil loop graph * Initial work in graph.bubble for custom bg color in nodes * Honor graph.layout in aegv too, instead of harcoding horizontal one * Deprecate aegi and aggi, those were dupes for aegv and aggv * Fix null deref in agg and avoid destructive manners of 'V ,' help * Make the anal.depth warning more useful indent * Balance spacings in braces io * Initial implementation of the generic io-stream api * Fix UAF in streaming io plugins when used with io.va=1 * Remove invocation of v layer cache in r_io_desc_read * Start rewriting io_cache.c * Kill r_io_read_at_mapped * Initial import of the serial plugin * Kill io->buffer * Remove unused fcn declarations * omfg runs omm if no map is set * New o++ command to create and open a new file * Add "reset" system command to treebuf io plugin * Minor bugfix in treebuf io plugin * Add treebuf io plugin * Fix free-before-use on r_io_reopen of a rbuf:// fd/desc * Handle reloc maps properly in r_io_map_remap and r_io_map_resize * Fix reloc map memleak * Add rio reloc maps * [5.8.0] Disable the default io.basemap json * Fix tj ttj tfj outputs * Fix invalid json in tj command * Fix #20772 - ihj rendering an invalid json because of pfj lang * Make r2 -j work as a hashbang handler for qjs * Enable BigNum in qjs * Use r2papi 0.0.4 with base64 and R2Api is now known as R2Papi * Add requirejs, simplify compilation and add js_ prefix to all the c files * Add typescript support * Minor improvements for js: with r2.call() and r2.cmdj * Enable Bignum support to the QJS interpreter * Import the alpha r2papi 0.0.2 api for qjs * Integrate the qjs repl into the js: command * Initial import of the interactive QJS repl * Import the quickjs rlang plugin * Implement py command and add stdin slurp support for js- too * Add 'js' and 'js:' commands, as well as improve help for #!? * Fix null deref in rlang * Add "lua" as an alias for "#!lua" leaks * Fix leaks in pdc * Fix more memory leaks in rbin and ranal for arm64 * Patch more leaks in the analysis and rbin * Some safe memleaks related to analysis and registers refcounting * Fix memory leak in dietline lint * Enable the leading spaces linter rule and fix them all * Use more tabs and add a (disabled for now) linter for it logs * Redirect RLog messages into the Corelog * Add base64 support to the T and T* commands panels * Add ve command to set fg/bg colors for current panel print * New RPrint.spinBar() API used from scr.demo for now * Fix pcc trifids confussion issue * New command CLL (aka list) show function source using addrline (dwarf) info * Fix #21080 - Add cfg.codevar to change the buffer varname from pc * ASN.1 and x509: correct OCTET_STRING and Public key info parsing * Add ASN1 Algorithm Identifiers for Edwards curves * Fix #20993 - Correct ASN.1 BIT_STRING parsing * Implement pcn command to print bytes as space separated numbers * Add support for the swatch dot-beat internet time * Workaround for "too large buffer" in formats * px* is an alias for pc* * Implement pFoj command * Implement pFaj for asn1 json decoding * Initial refactoring/cleanup of ASN1 parser api * Add pFxj command to print x509 certificates in JSON format * Add pFpj command to print PKCS7 files as JSON * Fix issue in 'pdc' that was showing empty orphan nodes * Implement new 'pcq' command, like pc, but inline-include-friendly * Implement the new pieb command as an alias for pie $Fi * Fix read buffer overflow in pxq -272 * Implement pFbJ command with quiet and verbose json formats * Implemen pFbj for json printing of protobuf * Set hex.hdroff=true by default * Implement pFAj to render android xml in JSON (abi break) * Implement TSV output format for RTable projects * Fix some problems when renaming projects * Fix some bugs in projects * Quote commit message to avoid git error when saving project * @@radare Do changes in Px->Pc, Pc->PS* as planned r2pipe * Check magic header before assuming an interpreted file is executable r2pm * Fix assert in Str.Trim() when r2 is not installed * Add support for tarball and zip packages * Honor EDITOR in r2pm -e * Remove all the references to the old r2pm.sh * Implement R2PM_FAIL and mark it as deprecation for r2-5.9.x * Implement r2pm -cp like it was in r2pm.sh * Fix clean installations with r2pm -c * Expose R2PM_SUDO and list R2PM_PREFIX in -H * Handle -HH in r2pm for verbose env listing and remove unused R2PM_GITSKIP * Fixes pull/install/uninstall on windows * r2pm -Ui can be combined now and fix extras package building * Honor R2PM_DBDIR env var * Honor -f in r2pm -U to force clean the r2pm db * Support XDG on r2pm and expose the PKG_CONFIG_PATH * Expose R2_LIBEXT for r2pm packages * Update r2pm manpage and add -q and -a flags * Show package source with r2pm -d * Implement r2pm -H to make more packages build * Fixes parsing the GIT URL on some packages * Test the new default native r2pm fix flushing and using RLOG * Make R2PM_NATIVE the default and provide R2PM_LEGACY r2r * Fix rvector assert when indexing empty ones refactor * Move the RParse.cparse into RAnal.cparse * Stop aeg from abusing agg * Rename R_ANAL_ESIL_DFG_BLOCK_ to R_ANAL_ESIL_DFG_TAG_ * Rename EsilDFGRegVar to EsilDFGVar and introduce EsilDFGVarType * Avoid using RArchConfig->big_endian * Add addr_bits to RArchPlugins and make info and decode cbs cfg aware * Add archcond api to rarch, some small cleanup in anal * Make bitness, endianess and esil-support fields of RArchPlugin again * Copy value.c and op.c from anal to arch * Copy switch.c from anal to arch * Add some more typedefs and enums to r_arch * Rename r_arch_set_ to r_arch_config_set_ * Rename R_ASM_SYNTAX to R_ARCH_SYNTAX * Simplify x86_cs BSR and BSF esil * Use r_strbuf_replacef in anal_mips_gnu esil generation * Use r_strbuf_replacef in anal_mips_cs esil generation rvc * Initial refactoring of the version control api * Move rvc from core to util * Fix rvc.commit when non-interactive with a default message scan * Fix crash in the swift metadata parser spotted by coverity search * Fix JSON encoding of unsigned search values * Fix /au after aeim * Fix /w and /wi, add tests, minor code cleanup * Add r_anal_optype_index to make /atl and /at use full listings of optypes * Support space separated instruction types and family in /at and /af * Improve json output for /asj and /atj * Fix calling /re twice after ^C * /az uses anal.in instead of search.in to improve scan results * Make /az faster after aeim, skipping unrelated regions * Fix last char bug in swift strings found with /az * Add x86-64 support to /az * Add flags under the asm.str flag prefix when doing /az * Honor bin.minsz in /az is no argument is provided * Implement /azq to search for assembly strings and add tests * Implement the new /az command to find assembly constructed strings * Superseed #20447 - remove some magic globals shell * Fix ?vi:123 and ?v:123 commands * Print whatever is taken from io_system to rcons * Fix runtime warning after leaving an rlang session * Add "" command to run RCore.cmdCall() * Fix #21136 - o autocompletion not working * Show help when using invalid subcommand of afi * Implement abo and afbo commands to list opcode offsets in function or bb * Implement o-. command, add help for future o-$ * Expose RCore.cmdCall() and fix b64: command + add tests * Show number conversion error messages in ?v command * Fixes for the line editor using live save/load with new RFile apis * Implement oe command to open a file using cfg.editor * Add quiet and table listing for lang plugins * Implement Ll, Llq and #!?q commands for better rlang listing * Fix r2 /directory behaviour * Support $r:REGNAME syntax and document it * Implement cmd.usr1 and cmd.usr2 to handle signals on unix * Add #!qjs and #!tiny for autocompletion * Fix behaviour of -a and -b flags (no arg= show current, append? for help) * Rename the drm command to drv for consistency * Add -s -i -f r2 commands * Implement -a, -b, -c and -e commands in r2 * Add tabhelp exception for pf. * Add r2 -LL to list core plugins * Improve help message for f subcommands * Take into account static themes when listing * Add ot command as an alias for touch * Implement the ji: command as an alternative to ~{} without cons filtering * Also handle (j) and (*), more syntax-consistent and add a test * Implement (j for json output of macro commands * Initial implementation of ?ie * Add missing help for the '?i?' command * Use RCoreHelp for /ca? * Fix #20760 - Implement native gron via ~{=} * Remove RPrintRowlog and use R_LOG isntead * Allow changing number of saved input lines * Implement log.source and log.origin * Add the new ucu and ucd commands using the new core-undo apis * Rename asm.{off} variables to asm.offset syntax * Move the preincrement and void arg from tests to lint.sh threads * Initial ref-counted RRegItems, needed for threadsafety * Move the readahead logic to a local variable * Guard more critical sections in cons and core * Analysis now waits in background for the bin parsing to finish * Add some RThreadLocks and start to use the critical sections thready * Dont call RCore.seek() and read a new buffer in disasm tools * rax2: corrects base64 encoding for null bytes * Fix r2 -2 * Fix broken tests for long number conversion * Fix base64 null byte decoding bug in rax2 * Implement rasm2 -LLL to list arch plugins * Add Ls to list assemblers, and LA to list analysis plugins * Bring back the r2 -t for parsing bin and analysing in background * rarun2 supports multiple preload directives util * Fix the XML parser * shlr/yxml -> libr/util/rxml - fork the abandoned yxml parser and expose it * Add RStr.ansiStrip() and RStr.insert() * Improve internal RBuffer API checks * Add log error when pj depth limit reached * Add R_SYS_BITS_12 * Introduce R_SYS_BITS_4 * Add :header and :noheader in RTable * Fix crash in r_vector_shrink * Minor COV fix in r_str_char_count * Fix return type of r_str_char_count * Add new RStr.replaceAll() api * Use R_PRINTF_CHECK for r_strbuf_replacef * Add r_strbuf_replace{f} vc * Initial rvc refactoring and cleanup of the api * Move rvc apis into callbacks * Make ravc2 accessible via blob and r2 shell visual * Use RAnalOp instead of RAsmOp in r_core_visual_bit_editor * Fix issue with cursor disappearing towards the bottom of the screen * Don't draw two cursors when too many bytes are on disasm panels * Make j/k movement in panels' cursor mode more consistent with it's visual counterpart * Don't skip byte when moving left/right in cursor mode (disassembly panel) * Fix pdc glitching in panels * Handle arrow keys in VT * Handle JK0 keys in VT * Honor cmd.vprompt and scr.notch in VT * RStr.wrap() supports ansi and use it in VT * Implement Tv command and use it from VT * Fix the cache and other bugs in panels * Override scr.maxpage in panels to avoid undesired prompts wasm * Upgrade to the latest wasi16 sdk @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.37 2022/10/26 10:31:02 wiz Exp $ d6 7 d19 5 a23 1 TOOL_DEPENDS+= git-base-[0-9]*:../../devel/git-base @ 1.37 log @*: bump PKGREVISION for libunistring shlib major bump @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.36 2022/09/21 15:43:53 wiz Exp $ d3 1 a3 2 DISTNAME= radare2-5.7.8 PKGREVISION= 1 @ 1.36 log @radare2: add missing tool dependency on git XXX: this should be changed to not needed git at build time @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.35 2022/09/21 13:49:39 ast Exp $ d4 1 @ 1.35 log @devel/radare2: Update to 5.7.8 (codename "boredom") from 5.1.1 ("lasagna") and fix build on pkgsrc / NetBSD 9.x. 5.1.1->5.7.8 skips a handful of bug-fixing and refinement releases that happened between Feb 2021 and Sep 2022. Way too many changes to list here - see https://github.com/radareorg/radare2/releases OK-ed by wiz during freeze. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.34 2022/06/28 11:33:42 wiz Exp $ d12 2 @ 1.34 log @*: recursive bump for perl 5.36 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.33 2021/12/08 16:02:02 adam Exp $ d3 1 a3 2 DISTNAME= radare2-5.1.1 PKGREVISION= 5 d25 1 d28 1 d31 1 @ 1.33 log @revbump for icu and libffi @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.32 2021/09/29 19:00:06 adam Exp $ d4 1 a4 1 PKGREVISION= 4 @ 1.32 log @revbump for boost-libs @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.31 2021/05/24 19:52:01 wiz Exp $ d4 1 a4 1 PKGREVISION= 3 @ 1.31 log @*: recursive bump for perl 5.34 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.30 2021/04/21 13:24:10 adam Exp $ d4 1 a4 1 PKGREVISION= 2 @ 1.30 log @revbump for boost-libs @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.29 2021/03/21 13:16:47 leot Exp $ d4 1 a4 1 PKGREVISION= 1 @ 1.29 log @radare2: Update to 5.1.1 pkgsrc changes: - Remove no longer needed patches: applied upstream - Use PRINT_PLIST_AWK so print-PLIST will generate proper PLIST Changes: 5.1.1 ----- This is a minor bug fix release after 5.1.0 was out. But as usual it comes with some new features! Contents are mainly bug fixes and behaviour and abi compat should be fine 5.0.0, this is, all the built packages for 5.1.x will work. - New: * UDS Search: new `/cu' command search for UDS tables, code taken from binbloom * Color2g graph nodes * Visual Gameboy 2bpp Pixmaps: visual mode can be used to search for 2bpp bitmaps usually embedded in Gameboy roms * Encoding charsets * Reverse Shell: new `=r' command to get access to a shell on a machine under NAT or firewall - Other Improvements * Analysis * Allow to analyze bigger functions by reducing the stackframe usage and using anal.depth better * Reclassify some AVR instructions away from SWI * Assembler * Improve .fill and rasm2 -hh with documented directives * Refactor and cleanup the z80 assembler * bin * Faster mach0 and dyldcache parsers * Fix iCj for mach0 * build * Fix a credentials downgrade problem in Install.sh * Introduce w32 and w64 in the CI * Add Windows ZIP in the CI (#18310) * Assign radare2 binr target * Support statically linking system OpenSSL * Define PYC_ROOT and WASM_ROOT (#18290) * shell * Add print, println, and placeholder for printf and printfln @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.28 2021/01/26 14:25:00 kamil Exp $ d4 1 @ 1.28 log @radare2: Upgrade to 5.1.0 5.1.0 - codename lasagna @@trufae trufae released this 23 hours ago - 4 commits to master since this release Release Notes Version: 5.1.0 (2021-01-26) Previous: 5.0.0 (2020-12-21) Commits: 291 CommitsFromRizin: 35 TotalContributors: 45 I will try to be more verbose with the release notes this time, it could help everyone to understand better the changes that happen, project directions and new features, as well as be more entertaining, even readable by Siri. As I'm writing these lines I know I will be missing something, so please, if you think this summary is missing any important details let us know and our apologize in advance! Updates from r2land Contributors Highlights This release comes with a large list of bug fixes, many of them you may probably not even noticed, but some of them are important for users and packagers, it has been tested on a large list of platforms, not just in the CI, but also in sparc, mips, powerpc and other funky hardware (Thanks @@unixfreaxjp !). We are not forgetting the new Macs, and this release comes with few fixes for fat binaries, kernel caches and arm64 floating point emulation (kudos to @@mrmacete and @@aemmitt-ns for them!). Projects: One of the most awaited feature is now finally available for testing, the git support has been enabled by default and some options and backward compatibility transitional code have been removed. Please test this out and let us know if you spot any issue! thanks @@trufae for this! The CI have been rewritten for simplicity and it's now building and publishing Android, iOS, macOS, Linux and Windows artifacts on every commit, ASAN, LGTM and COVERITY are still there, but all jobs run in github actions. Lots of improvements in the support for JSON have been added by @@liumeo also, several memory leaks have been cutted down, which are always welcome. Support for streaming large files over mg, and added support in r2frida is now available thanks to @@as0ler! r2wars The r2wars game runs on top of r2, but it needs some tweaks for the esil vm to work, this version optimizes this by checking configuration options outside hot loops. Cache cfg.r2wars value outside the eval loop Those 'hacks' will be eventually removed when r2wars gets able to emulate syscalls, traps and low level stepping for context switching at esil-expression level. Support sbfm/ubfm in arm64 Initial support for arm64 asm extendtype Add test and update arm.winedbg (#18117) The arm64 assembler has been extended support more instructions and be more formal and correct. Implement i4004 assembler It's always great to welcome a new supported architecture for assembling code (disassembler for i4004 was already available). Kudos to Liumeo for this nice addition! bin COFF: handle empty sections (#447) Dont demangle with libs unless requested Add bin.cache evar to use io.cache when bins need to patch relocs Fix Mach-O rebase on fat slices Add additional ELF header fields to rz-bin output Fix PE Delay Imports for multiple delayed DLLs (rizin) Lowercase DEX method attributes and move r_num_bit_count() Initial implementation of the DEX annotation parser The DEX annotation metadata is now parsed in the DEX plugin, this means, that parsing is actually a bit slower (it's parsing more information) but provides more context and information of the application classes and methods. Use bin.verbose=true to get that information. This metadata must be imported into r2 somehow, but this interface hasnt been defined yet, so only plaintext representation is supported at load time. Probably finding a good tree representation for an Sdb instance could work. radiff2 Add more checks on the passed files and fail early. Honor graph.font in diffing graphs too Remove buggy Levenshtein diff algorithm and rename the original code Some confusing usage and documentation have been updated and the default diffing algorithm is now faster. (Thanks MaskRay for spotting it and Liumeo for massaging it) ci The whole CI scripts have been rewritten to run everything in GithubActions, and adjust the test of PRs to 20min, ASAN is only running in master (takes 1h), and every commit is compiled for linux, macos, windows, ios and android. No breaking commits can be merged. And all artifacts are available to download for every single commit and architecture. As long as the Sanitized build takes 1h to run the testsuite we decided to make it run only in the master branch, if any regression happens there it's easy to fix with the crash logs in GHA. This is the setup of jobs in the current CI: Add android-arm64 target to build release artifacts Add TCC ci task which is able to build and run the testuite Added cydia builds for arm64 Add job to test build and install with spaces in builddir and installdir Add job to test install, uninstall, symstall for proper purgation and avoid disasters Fix the badge in the README Add asan ci job to run all fuzzed bins with a sanitized build (takes 1h) linux-test builds with acr and takes about 20min to run all tests CoverityScan service find vulnerabilities with advanced source code analysis. LGTM service spots static source analysis good practices Initial attempt to switch to Capstone 5, needs more RTable Dashes in RTable with X format Implement RTable:sql and add RTable.name You may not know about RTable yet, but it's an api and command modifier that will be used more and more over time. In short, RTable provides an API to create tables with columns with types and rows with data and an api and query syntax to operate over those tables in the same way as you would do in an SQL database but using the cryptic syntax of commands we like in r2land. This release introduces a new output for SQL. This means that any information stored in r2 can be exported in SQL statements and processed in your favourite SQL database. This is an example usage: $ r2 -AA /bin/ls > afl,:sql > functions.sql > !sqlite3 sqlite> .read functions.sql sqlite> .tables fcns sqlite> select count(name) from fcns; 128 RISCV Fix #18212 - Detect RISCV gdb servers Add riscv in RSysArch and make it an enum, not a bitmask Update RISC-V ESIL with sign extention operator (#18109) Native support for Linux/RISC-V is now available as well as remote debugging via GDB, the ESIL emulation have been improved a little bit. disasm Fix HUGE bottleneck in the WebAssembly pseudo disassembler and analyzer pd, is an alias for pdt (pdt will be removed soon) Honor meta size in asm.meta=false and add tests Fix #18202 - Large Cd truncates and crashes in pd Implement print disasm until optype ESIL Fix x86_cs cmpbs esil fix x86-cs rep/repe/repne esil expressions @@condret find out (and fixed) a bug in the way rep instructions were constructed in ESIL in x86. Support arm32 esil stmib/ldmib Add sign extension assignment operator (#18092) Add floating point operations for emulation Thanks to @@aemmitt-ns (Austin Emmitt) for implementing support for floating point arithmetics in ESIL as well as adding support for most FPU instructions for ARM64. That's an important move forward in order to improve the language to handle more instructions and architectures. A work in progress support for RIOBanks is not yet included in this release. But hopefully in the next release @@condret and @@trufae will be manage to finish the new API and commands and integrate them into the ESIL to support memory banks in GameBoy emulation for example (as well as add support later for other archs). Add support for RAnal.ESIL plugins Those new types of plugins are right now just a place holder to call init/fini and do whatever you want from there. But in the next release ESIL plugins will provide the ability to expose some functionalities to the ESIL VM, syscall implementations in userland, libc emulation functions, custom esil operations, hardware devices, etc. Join the Discord, Telegram or IRC channels to raise the topic if you are interested on more details. fs Add support to stream files using mg (#18253) This feature has been added pair to pair with the r2frida implementation, this way enables r2 to download all the files and its contents without any file size limitation from the remote device to your host. All the RFS plugins API has been changed to if you are using custom RFS plugins you may take care of that. Support for uploading is not yet implemented, but it is planned in the near future. Thanks Murphy for that great contrib! io Accept rwx argument in onn command Add onn command to fix custom map assignments Those changes and new command are required for the projects to be able to save and restore the status of files, binfile and iomaps in proper order and reference. Fix and refactor the ar:// plugin The refactoring of the io.ar plugin spotted a regression in open_many() which is not yet fixed, brave volunteers are welcome! Projects The most requested feature for r2 has been reworked to actually make it work and improved several use cases that weren't handled before: prj.git is now enabled by default if git is in path this means that everytime you run Ps after saving the changes in will prompt you for a commit message. The ability to rollback to any previous state of the project by just calling git reset and Po becomes very handy when bad things happen or you just want to track your progress. As long as projects are in plain text they are readable in git diff. Improved support to ease the workflow to support multiple users sharing the same project via git will be implemented in future releases. Handle io.maps and bin.segments in o* to handle custom maps in projects Add map name information in o* output Honor mapaddr for malloc in o* Save the write cache in projects As long as the user can create custom maps on specific files, the projects need to determine if there's any binobject associated with a specific file for processing a map. This puzzle is solved by the o* command which now prints the right commands to reconstruct the same IO environment starting from a clean session. Reworked P command with RProject and prj.name integration dir.projects becomes abspath when set Fix projects by removing code and honoring prj.name Save the write cache in projects The P command is now much more stable and all the subcommands work as expected, some tests have been added and project renaming can be done via command or via evar prj.name. The magic behind this evar-project-action is done by using the RConfig.getter APIs that have been there for a while but barely used, the value is updated at get time from the project instance details. This way it's possible to rename a project like this: > e prj.name test > e prj.name=case1 Tell the user that debugging projects don't work Projects are working, but they are far from perfect, one of these missing corners is the debugging support, the main reason for that is the lack of integration of aslr rebasing in projects, this will be eventually implemented, but for now it's better to avoid the user to mess the thing. In any case, it's always recommended to have your own manually writen scripts to do setup some flags, memory patches or breakpoints, so you are more in control of what you run in a living process. Fix calling convention save/restore Print call convention once in afi Warn once about the missing anal.cc Use RConfigNode.getter callback in anal.cc to be in sync with k anal/cc/default.cc Some improvements in the way calling conventions are handled inside r2 enabled the use of anal.cc like it's done in prj.name, with a 'live' evar. default calling convention is defined by the architecture but can be redefined by the rbin plugin or the analysis information. In addition the user can also specify a custom CC for each function, all those details are preserved with the anal.cc evar and the tc and afc commands. Remove transitional projects code Remove file.path and file.lastpath and add RProject Remove the prj.simple option dir.projects becomes abspath when set Use UID instead of PID to identify the user to avoid changing projects everytime Refactor Refactor tcc and afcl commands, improve help and JSON 25 commits refactoring the code to use the formal PJ api to generate JSON This includes honoring the settings defined by the user in the cfg.json evars, this nice feature was introduced by @@hexploitable in the previous 5.0 release. [0x00000000]> e cfg.json.num =? none string hex Rizin Added support for regex in test output and stderr Massage RRegex to fix codingstyle and a null deref. This resulted in a cleanup and refactoring of RRegex One of the changes introduced in Rizin is the ability to use regexps to check the output of an r2r test, but after doing some cleanup in the regex code some issues were spotted in the logic, so it's not encouraged to write tests using regexps yet. Unit tests has been added, but it still requires to be fixed. The bugs are logic bugs, not exploitable, but some match expressions won't work. But at least the feature is in sync. Other commits taken from RZ grouped by author are: Paul I COFF empty sections memleaks in ophandlers rtable X dashes xvilka part of the improvements for indentation wargio avr anal warning due unpopulated mnemonic and further refactoring fix ao rjmp issue ret2libc Fix misusess of r2 commands inside r2 Use r_core_flag_get_by_spaces() in getFunctionName() kazarmi Fixed AVR anal plugin warning due unpopulated mnemonic Fixing clang flow warnings (#321) Fix #rizin302 - Fix function modification detection false Remove all dead assignment detect by clang sa (#310) yossizap Fix trace crash Add regex support in r2r Florian Fix null deref in rbtree Implement delay imports in PE parser shell Implement rax2 -I to convert from/to LONG and IP Address Sometimes a shellcode or a piece of program is doing some operations with IP addresses and it stores the IP address on a 32 bit register value. rax2 now provides a handy commandline option to ease this conversion. This feature was already available as a hint for the disassembly to convert instruction arguments to ip addresses. $ rax2 -I 192.168.1.32 0x2001a8c0 $ rax2 -I 0x2001a8c0 192.168.1.32 $ Implement $i and $I numvars Those two variables have been added in order to ease writing some scripts that navigate thru the code moving forward and backward honoring the instruction boundaries of the current analysis information. So $i is the address of the next instruction and $I of the previous. Things get more interesting when the braces join the game: Using $i{3} gives you the address of 3 instructions forward. and the same goes for $I{3} to go backward. Fix #18171 - Support RNum for syscall-name in asl command The asl command has been modified to use RNum when parsing the argument, so its possible to API Add RFile.new and RFile.move APIs RFSPlugin API has changed Plugin delegates return int instead of RFSFile to avoid leaks and uafs, needed for streaming largs files over mg. New RAnal.ESIL plugins Add esil.dummy in your plugins.cfg if the build fail with missing R_ESIL_PLUGINS error. Visual Fix ecn (and VR) when no custom theme was set in .rc In human words: rotating color themes is working again! Implement history filtering for dietline Initial implementation of r_cons_eprintf This new API is wrapping eprintf() but its also able to buffer the results and flush them after r_cons_flush(). FUTURE: The need for this API is to improve the r2pipe API and handle a 3rd communication pipe to handle asyncronous error messages. This is a long term plan and should be backward compatible, so no r2pipe scripts may break. Fix help rendering: avoid printing trailing whitespaces (#18115) Improve str.wrap, add cons.line and fix cons.printat glitch Fix #17940 - Show ConfigNode options when selected in Ve Box borders in graph and panels are now in yellow Update www/t from radare2-webui Fix cascading solitaire issue in panels menus Fix the 'c' cursor behaviour in disasm Those commits improve the experience in panels, fixing an anoying bug in the menus, improving the cursor mode. The default color theme for the frames makes it easier the eye. The heavy webuis were removed in 5.0, but we are still shipping t/iled and p/anel ones, it's known that the webui repo needs some attention bindings The bindings have been also updated with some more valadoc documentation that can be read in here: https://radare.org/vdoc This documentation and API can be used for any bindings generated by valabind, this is: python, nodejs, ruby, go, v, ... the work to stabilize the apis in this module focused in RConfig, some fixes have been done in this module. security As usual, every release of r2 comes with a large list of security vulnerabilities, bugs and crash fixes. The list below sumarizes the most relevant ones: Fix #18274 - Fix crash in r2 *.wasm Fix crash in XNU kernel parsing (no cache) Fix code injection vuln in .ic* with ObjC classes Fix trace crash caused by a mismatch between the register profile and op anal AVR: Fixed profile, (null) instruction and anal Fix potential null-deref in r_rbtree_cont_foreach() Fix crash when wasm file contains symbols with large names Handle ^C and fix ASAN crash in aeA command build Disable AVR plugin from all static builds because of the duplicated symbols issue introduced in recent refactoring. Add r2.1 when installing with symstall Fix debugger build problem in android-x86_64 Remove --without-r2r configure option Create dist/ to hold all the distribution build files Merged some patches coming from Termux to improve the debugger support on android-x86. The r2r testsuite executable is always built and should be available to all the user installations. Also, some issues has been fixed in sys/install as well as new CI jobs to verify no regressions happen on install/uninstall/spacesinpaths, etc. config Fix some returns to fix initialization issues in evars Remove unused cmd.xterm and use * instead of strcmp for ? Support evar filtering in eq and check for bool type in RConfig.toggle Expose RConfigNode.options APIs to avoid messing with internals Count lines is a prefix operator Add a progress bar for when scripts are running Honor R2_CFG_NEWSHELL=0 to disable it Seek command ignores the tmpseek Add missing vars from ?$? in ?$ and sort them alphabetically 5.0.0 - codename: phoenix @@trufae trufae released this on 21 Dec 2020 - 298 commits to master since this release r2-5.0 Commits: 510 Contributors: 65 Interface Added the Comma API Added r_str_wrap() and r_cons_printat() APIs Fix adding comments in panels Improved help messages Removed problematic fortunes Add ?et command to change terminal title Fix double-click issue in vte terminals Formalize the flag names and its filtering APIs Fix return code when using q!. Fixes r2pipe.go Add experimental asm.flags.real to get strings from bin.str.real Removed unmaintained enyo and panels webuis (-2MB) Set realname on all bin strings for better asm.flags.real when bin.str.real is set Fix ansi colors embedded inside json output formatting Improve socket and http server APIs Add opn/opr/opp commands to rotate between opened files Initial implementation of scr.cursor for keyboard accessibility in visual and panels Add asm.hint.call.indirect to make indirect calls follow the target address (#17968) Performance Use sdb_set instead of sdb_querys (aaaa is 7x faster) Optimize IO.cache (makes bins with relocs much faster) Signatures Debugger Sync anal and debug tracing information Fix a crash in dts+ command with empty register arenas Attach to target pid/tid on remote lldb connect Add a warning when a breakpoint is placed in an invalid map Add commands to parse mangling pointers glibc heap Analysis Improve signature matching, threshold, refactor and optimize related code Directly apply Callee Args in Type Matching Takeover variables when splitting functions Always register the derived CC from the reg profile Add bbhash to detect modifications in functions (and reanalize if patched) Implement basic block listing commands (abl*) Implement tcc-* commmand to unload all calling conventions X86 Add amd64syscall and anal.cc evar Fix esil for cmp/sub instructions Add amd64syscall calling convention Fix ELF R_X86_64_PLT32 relocation entries patching (#17587) Fix x86 CMC instruction MIPS Improves mips.gnu esil Add JALR JR when the address can be computed Fix GP calculation when there are multiple entries Fix MIPS C-TYPE instruction check Set asm.cpu for mips.gnu derived from the ISA defined in the ELF ARM arm mte addg/subg decoding fix arm it block analysis BLR arm64 is type=RCALL (before it was UCALL) ARM64 assembler can now assemble AND and BIC instructions (Thanks @@mrmacete!) Add initial support for arm and arm64 ELF relocs Handle RELATIVE (todo) and IRELATIVE relocs in ARM64 ELFs COFF: add ARMNT and ARM64 support All testsuite run on arm32 and arm64 v850 Improve invalid instruction detection Implement the pseudo disassembler plugin Fallback to anal=v850 when using asm=v850.gnu Add ep, sp, gp lp register aliases for v850 Added function preludes (aap finds much more functions) Fix calling convention argument register usage for v850 Add all instruction descriptions Set v850 disassembler when opening v800 ELF files TMS320 Implement pseudo disassembler plugin PowerPC Initial assembler support Improve reg profile to support calling conventions RISC-V Add all instruction descriptions Add Fix shift instruction analysis Fix ESIL for JALR and AUIPC instruction SPC700 plugins moved to extras ESIL Add sign-extension operations Implement aof to filter expressions using the dfg api Fix unexpected FPU exception in ESIL emulation bug Enlarge ESIL VM stack from 32 to 256 BSD Support pkgconf (BSD alternative to pkg-config) Fix build with tinycc, unfortunely the final binary segfaults Fix debugger support in FreeBSD Implements r_sys_aslr for NetBSD Fixing r_sys_pid_to_path for DragonFlyBSD Setting ASLR support for DragonFlyBSD Windows Fix r_core_editor() on Windows (#17887) Fix MSVC template demangling symbols Expose TEB address as a flag on Windows Add network support to WinDbg/KD (KDNET) Apple Support ObjC small method lists Support iOS 14.x dyld shared cache Add support for new macOS kernelcache Changes Rename asm.filter to asm.sub.names Rename asm.var.sub to asm.sub.var Deprecate the afc= command. Removed all globals from main functions afc= -> e anal.cc Fix big endian DWARF parsing labels no longer stored in sdb Refactor Variable Constraints out of SDB Fix r_anal_block_automerge incorrectly merging blocks Release 4.5.1 @@github-actions github-actions released this on 3 Sep 2020 - 35 commits to 293cf5ae65ba4e28828095dcae212955593ba255 since this release Release Notes Version: 4.5.1 Previous: 4.5.0 Commits: 20 Contributors: 9 Highlights bin PE Fix null dereference in Pe64_bin_pe_compute_authentihash ELF Avoid buffer overflow while identifying imports build Fix Cydia/iOS packaging and compilation issues Enable LTO in sys/static.sh Install ldid2 as well, to sign packages for cydia Use meson install instead of manual installation in meson.py core Add Function Name, Constants, Globals and Local Variables to RAnnotatedCode port Backtrace support for haiku util Add r_sys_now_mono() and use in r2r Fix NULL dereference in r_pkcs7_parse_spcinfo() 4.5.0 Codename: Organized Chaos @@github-actions github-actions released this on 18 Jul 2020 Release Notes Version: 4.5.0 Previous: 4.4.0 Commits: 426 Contributors: 58 Highlights Analysis Initial API for base type kinds (enum, struct, union) Rename PowerPC to PPC Improve RISC-V analysis for compressed instructions Add endbr64 as a function prelude for x86-64 binaries Improve BP vars/args detection Detect register args used only by callee Match args name/types from function definition Improve itanium RTTI parsing and vtable search Refactor Variables out of SDB Implement basic concept of signature bestmatch asm Add support for WebAssembly SIMD extension Boolify r_asm_is_valid and r_asm_set_syntax API x86_64/x86_32: Implement assembler endbr32 and endbr64 instructions x86_64: Support mov r64, 0xffffffffffffffff x86_64: Fix mov r32, -imm32 encoding Move inferior GNU Hexagon plugin to extras bin Apple Symbols file Improve Xcode symbols parser COFF Improve relocation support on COFF file format DEX Fix several crashes when loading corrupted files Performance improvements in DEX parsing DWARF DWARF 4 and 5 line parsing additions Several improvements/fixes in parsing ELF Use Dynamic segment entries instead of sections to find relocations Add support for BA2 ELF Add support for relocation entries for AARCH64 and PPC Print a warning when the entrypoint cannot be found and it is automatically set somewhere else Make glibc heap commands faster by resolving main_arena symbol Add support for glibc heap tcache pre/post glibc version 2.30 Add missing reloc definitions for C-SKY, RISCV and AARCH64 kernelcache Fix rebasing offset Mach-O Fix symbol names truncation issue when dealing with overly long strings Support arbitrary length identifiers Fix relocations on ARM Thumb Support Mach-O threaded binding for arm64e Rebase and strip pointers on Mach-O arm64e Fix parsing of objc class data pointer Do not automatically set the entrypoint of libraries PDB Add support for multiple PDB symbol servers Add function for reading PDB from buffer Fix command injection on PDB download (CVE-2020-15121, advisory GHSA-r552-vp94-9358) Pyc Move to radare2 core repository and improve/clean it PE Fix crash when resolving corrupted ordinal exports Speedup parsing PE exports build Various fixes for Haiku Add support for binr/blob and fix android build in meson Add --without-dylink configure flag to disable libdl features Add Debian 8 Jessie to GitHub CI CentOS tree sitter fix using gnu99 when available Fix the static build by dynamically resolving libutil symbols Add release Github workflow to create all the release artifacts Introduce --without-r2r configure option to disable compilation of r2r cons Add VT sequences input support for Windows crypto Remove hardcoded supported encoders names (e.g. base64, base91, punycode) debug Fixes for windows debugger Improve exception logging Fix inconsistencies in killing/restarting a process Fix detaching without killing debuggee Expose exception reason for di io Add new fd:// (handle:// on windows) plugin Support self:// plugin for Solaris and Haiku OS Fix regression while loading large files (>2GB) on 32bit systems lang Fix C/Cpipe when non standard library paths are used Implement RLang.spp for templated scripting Move #!v out of core (it's now available via r2pm) Fix usage of #!python, #rust, and #cpipe Do not include C/cpipe RLangPlugins on windows magic Add Android boot image signature socket Fix socket connect with SSL util Move RAnnotatedCode API from r2ghidra to r_util so it can be reused Refactor r_big for gmp and SSL Remove unused RConstr API Remove unused RRangeTiny API Add support for weakref RStrBuf and add r_strbuf_setptr API Add r_vector_fini and r_pvector_new_with_len API and add bound checks on all RVector APIs Add support for n# in pfc Add generic reference counting implementation rabin2 Fix go detection in non-elf binaries radare2 Config variables Renamed variables asm.jmpsub -> asm.sub.jmp asm.var.submin -> asm.sub.varmin asm.tailsub -> asm.sub.tail asm.section.sub -> asm.sub.section asm.var.subonly -> asm.sub.varonly asm.regsub -> asm.sub.reg asm.relsub -> asm.sub.rel anal.in=raw -> anal.in=range asm.bytespace -> asm.bytes.space scr.ansicon -> scr.vtmode (only on Windows build) New variables/options anal.vars.stackname: (true/false) Name variables based on their offset on the stack asm.bytes.right: (true/false) Display the bytes at the right of the disassembly bin.str.enc=ascii is a new option Commands Add axv and afvx and afv= commands to visualize var R/W accesses Add afvxj to print JSON output of afvx Add dmia command to list all info of a target lib and accept more print modes in dmi Fix invalid json output for drtj command Add key to highlight and go-to highlighted text in graph mode Add JSON print to /E command with /Ej Add zb command to find n closest matching graph zignature Initial refactoring to generate commands help automatically and support argv-style command handlers (e cfg.newshell=true) Add API to print decompiled code Optimize aao objc analysis Display file associated to the current file in the visual title Fix runaway scrolling in Visual mode after mashing down movement key on Windows Terminal Add F9 continue key to ESIL rafind2 Implement rafind2 -F to find the contents of the file rasign2 Add dumping of FLIRT signatures to rasign2 Move main code to r_main r2pm Initial support for git tags in r2pm 4.4.0 Codename: pangolin @@radare radare released this on 14 Apr 2020 - 1381 commits to master since this release Release Notes Version: 4.4.0 Previous: 4.3.1 Commits: 328 Contributors: 41 Highlights Replace shellscript, nodejs and V testsuites with r2r.c which is shipped by default Added initial analysis plugins for super-h and tricore Fix build and some runtime issues on IBM s390x Updated rap:// cleaned up implementation inside RSocket for client and server Speedup type linking (300x faster) Fixed all the timeouts and crashes from bins/fuzz Add support for retpoline switch table analysis (spectre/meltdown) Fix #16418 - Implement blind main detection on endbr+mov files Add commands to emulate a basic block or the whole path until reaching an address Fix support for the latest GLIBC for heap parsing Improved automatic function signature association for the imports Fixed afs command to show proper footprint Add support for typedef and added NSString type on darwin binaries Fixed all the t subcommands to print all types as C Improved visual class browser and the visual bit editor ragg2 now allows to change the path of the shellcode to run Graph visualization is now faster Use RPVector for io->maps - speedup map traversal (overall speedup) Lots of code cleanup and refactorings reducing memory usage and performance DEX loading is now 2x faster Fix assembler: MOV for x86 and LDR for arm64 Improved the bin loader to support iOS 13.4 dyldcache files Improved support for ObjC IVAR fields loading them as C structs Add improved icc subcommands to print as classes as C, ObjC or Java Automated Emscripten (JS/WASM) builds in CI Fixed static build by defining a new file naming policy Default installation path with sys/install.sh is now always /usr/local Previous installations in /usr will be purged Only check for major and minor version numbers when loading plugins Changes anal Add initial SuperH and Tricore analysis plugins Added option to search all vtables Fix infinite loop in aae - check if address is valid If possible use symbol name instead of entry name for function name (#16528) makes the local variable access detection work on arm64 Fix asserts when trying to use a unexistant or wrong analysis plugin Minor Fixes for XRefs counting (#16546) Fix #16413 - Analyze code refs spotted with aae Implement x86 anal.jmp.retpoline switch tables (spectre/meltdown) Tweak arm64 ldr ESIL for var access Add opaddr field in ab/abj output Improve noreturn and aesu times, show it in afi & afij Fix dup af+ removing function from hts (#16526) Fix #16308 - Add fcn arg in r_core_anal_propagate_noreturn to avoid O(n) in af Fix ao~bytes and add test Improve aef by skipping calls and improving the logic Improve aeg command and add aaef as an alias for aef@@@@@@f Fix #16225 - Remove the unused fcn_locs causing an UAF Implement Shortest Path between BBs and add tests for abt (#16200) Implement aesB command to step until the given basic block Implement afsj command to get the JSON definition of the function signature Add acvf command and devirtualizing vtable method calls (#16157) Implement aeb command to emulate a basic block (#16174) Guess a better name for functions when multiple flags point there asm Fix #16433 - Use MOV opcode B8+ for MOV r64, <0x80000000 to 0xffffffff> #16572 Fix #16433 - Support movabs for x86_64's MOV r64, imm64 (#16527) x86_64: Use MOV opcode C7 for MOV r64, -<1 to 0x80000000> (#16551) Fix arm64 branch assemble (#16205) Support asm.cpu for Tricore architecture (#16161) bin Fix infinite loop in macho commands parser (#16562) Fix heap overflow in the relocs ELF parser Improve COFF symbol info (#16523) Fix crash issue induced by an integer overflow in the mach0 parser Fix #16455 - iij asserts for ld-uclibc with a null import Fix asserts in iij for ld-uclibc with a null import Add rust lang support to iD command (#16490) Fix #16418 - Implement blind main detection on endbr+mov files Fix COFF symbols/imports info (#16446) When computing ELF relocations, use DYNAMIC segment if available (#16419) Make dyldcache accelerator info optional Make dyldcache accelerator info optional Do not use r_buf_data in DEX results in 1.5x faster parsing (22s vs 33s) Implement icc*, in sync with ic* to get C strcuts from mach0 classes into r2 Add mach0 class fields with padding and sorted by offset WIP: Improve ObjC's IVAR fields support Fix #16265 - Segfault in rabin2 -O e/123 with ELF Fix memory leak in RBin. NE relocations This allows to open dyld cache files from iOS 13.4 for which Idea for fixing id? and idp? etc commands (#16244) Fix PE endian and alignment issues spotted by ASAN Strip minuses from the hash names for sha256 PE signatures (#16156) Fix heap overflow in the relocs ELF parser Fix crash issue induced by an integer overflow in the mach0 parser Fix #16455 - iij asserts for ld-uclibc with a null import Make dyldcache accelerator info optional Fix memory leak in RBin. NE relocations Fix PE endian and alignment issues spotted by ASAN build Fix Build on NetBSD (#16520) Update SDB Make msbuild quieter (#16482) Create more GitHub Actions jobs for meson and gcc/clang Build fixes to make emscripten builds happy (#16406) Avoid duplicated module filenames to fix static.sh Rename util/diff.c to udiff.c to avoid libr.a collission Build *.deb packages only for master branch (#16320) Run sys/static in the Debian task Fix #9240 - sys/install.sh uses always /usr/local + rpath now core Remove asm.linesup (#16293) Fix wen command for io.va=true, add two tests Fix #16281 - Do not load system-wide plugins twice Only check for major and minor version numbers when loading plugins Add cmd: acvf [offset] ([class name]) Add r2 -NN to not load plugins Always use r_getopt, do not depend on libc (not just on windows) Use r_core_cmd_lines() for -c (#16290) Use @@{} instead of @@() and fix this modifier Implement @@v: value modifier, like @@x: but with endian and size Fix #15978 - segfault when using r2pipe webserver + local visual (#16508) Makes r2 interop more stable debug Fix tcache address and offset in print_tcache_instance() Fix dmht for glibc caused by wrong tcache offset and definition (#16247) Fix tcache_perthread_struct definition Test dmha/dmh for glibc x64 (#16307) Fix #16432 - openbsd fork+attach EBUSY issue Decouple shlr/gdb registers profile from code (#16312) Minor fix to get dmh to work with riomap (#16286) Detect glibc version and set dbg.glibc.tcache accordingly (#16255) Fix chunk listing with tcache and add test (#16239) Fix #16219 - Add $DB variable for dbg.baddr Add tests for rebasing in debug Fix debug rebase regressions Clean drx/drt/drp help message (#16203) diff Fix print string in radiff -qu (#16212) disasm Show realnames on function's signature when enabled Fix #16263 - Do not newline after showing switch cases egg Fix shellcode path customization (#16384) graph Optimize r_anal_get_bbaddr() to make graph navigation faster io Fix #16210 - Show error message and update help for we Fix #14371 - Make wfs paired with wts, rename wfs to wfx Use RPVector for io->maps - speedup map traversal Fix #16347: o+ sets maps as writable like oo+ (#16381) json Fix #16233 - ~{} works on colorized JSONs Fix #16233 - ~{} works on colorized JSONs Use pj in zj (#16321) Use pj in ilj Add pj_ad api to print raw data lang Update support for V in libr/lang ports Fix #16109 - Add R_SYS_ARCH for s390x print Fix #16394 - Make pm [file] work again Fix #16394 - Make pm [file] work again Implement hex.offset config variable to hide address column from hex-dump (#16373) refactor Initial r_anal_fcn_* purge (#16238) reg Make r_reg_get_list() search harder (#16202) search /ad/ in /bin/ls ate 9 extra MB that was never freed Fix memory leak in /ad/ using r_regex api wrongly Fix #16327 - Search in range with io.va=false Add LZMA-BE magic signatures Display correct lengths for cryptography search commands (#16262) socket Initial refactoring of the rap:// protocol (-75 LOC) Fix socket connection issue (#16218) test Fix all the crashes and timeouts in the fuzz tests Related to aav, aae, aa, Move test/new/* into test/ Add interactive mode to r2r (#16466) Format some missed tests R2R for Windows (#16410) Add Timeout to R2R.c (#16371) Enable R2R in C for all CI except Windows (#16354) Initial support for test categories and fix the windows build r2r new flags: -n to not run -v for version, add manpage Delete the r2r.v and use r2r.c Autodetect dbdir in r2r.c (#16365) Add ic + icc* tests for objc R2R in C Enhancements (#16310) Initial Implementation of R2R in C (#16216) tests Move test/new/* into test/ Format some missed tests r2r new flags: -n to not run -v for version, add manpage Add ic + icc* tests for objc tools Fix #16389 - r2r -qv and r2 -v to show version and quiet versions (#16472) types Fix #13677 - Add txt command and make txf accept an argument Fix empty struct and add test (#16408) Fix tp and tpx to accept types with spaces Implement tc* and fix tc glitch Add NSString and size_t types in tcc+r2 Optimize 'tl', r_core_link_stroff and r_type_link_at (0.01s vs 3s) Use the proper API to find function in tl Add R_TYPE_TYPEDEF to RTypeKind (#16243) Enhance the way imports are processed in r_anal_function_get_signature Implement tpv command and some random code cleannup Fix afs not showing signatures correctly with preloaded sdb types Fix afs not showing types and args util Implement r_table_uniq as API and query (#16385) r_buffer: do not move seek when using _at APIs (#16401) Make r_str_split_duplist() thread-safe (#16341) Remove r_str_rmch and simplify r_str_replace_char* Add pj_ko and pj_ka APIs visual Add anal classes to "Vb" (#16383) Fix cursor visibility after leaving visual graph (#16298) Visual bit editor now shows bits up and down Add VdN (afs!) to edit function signature with cfg.editor 4.3.1 @@radare radare released this on 5 Mar 2020 - 1709 commits to master since this release Binaries: http://radare.mikelloc.com/release/4.3.1 Fix segfault in om= command Fix dead process issue with ood/doo command Fix build with ancient capstone3 Fix build with pre-c99 compilers Some more code cleanups + refactorings See 4.3.0 changelog for full details compared to 4.2.0 4.3.0 - Codename llentia @@radare radare released this on 4 Mar 2020 - 1729 commits to master since this release Release Notes Version: 4.3.0 From: 4.2.1 To: 4.3.0 Commits: 214 Contributors: 33 Changes anal Rename the Function Flag on afn (#16078) Fix 'af' missing lines bug when analyzing in frida://0 Implement function names with dots in signatures Remove more members from RAnalBlock Remove prev, jumpbb and failbb from RAnalBlock Refactor Anal Hints (#15876) Skip empty esil expressions in 'aeab' to fix partial results issue Add 'aba' command as an alias for aeab Fix aeab and add V (values) in aea outputs Implement aeab command asm Fix #13908 - x86 aoj for instruction with hidden operand Add 'wao jinf' for Dalvik Determine Gameboy hardware registers in disassembly (#15909) bin Add new BIND_OPCODE_THREADED constant for MACHO binaries (arm64e) Add Windows Crash Dump format support (#16087) Minor Fixes and Tests for NSO/NRO (#16053) Fix iS hash outputs (#16044) Add Authentihash support for PE (#15987) Fix ELF symbols for names just before the end of strtab Parse dyldcache local symbols Fix some out of bound accesses in LE (#15943) Fix #14325 - Honor segments in DEX files (#15920) Many FLIRT handling fixes build Fix debugger build on Linux/s390x 'sign' as an alias for ios-sign and macos-sign Build debian package in CI cons Fix again the EOL bgcolor issue (and improve scr.html) (#16120) Implement ecHj to list highlight rules in json format Fix r_table_tostring for string with ansi escape code (#16069) Fix #16063 - bgcolor not reset on newlines Fix ecH- deleting ecHi and deleting meta highlight items Fix #15359 - Enable key.f# keys to be used in the shell Improve the gentoo theme core tree-sitter: support iter commands (#16111) Initial implementation of the 'rb' command to rebase all the things Use state struct and start handling cmd_substition_arg in tree-sitter (#15966) debug Use RTable API in r_core_debug_rr (#16066) Fix show register value in column (#16010) Add 'dbH' to set hardware breakpoints (#15933) disasm Improve ecH (ecH-* dels them all, ecH- doesnt segfault, ecH list) esil If esil.addr.stack is mapped find an available one When esil.stack.addr is -1 set it to the next unallocated address Code cleanup for r_core_esil_step() (#16017) graph Add graph.aeab to show esil stats instead of disasm json Fix #15851 /wj without arg produce '\n' (#15885) panels Fix a bug on clicking in panels (on Mac and Linux) projects Preserve "functions" flagspace when saving projects (#16057) refactor Revert "Avoidify the RUtil.strTrim() APIs, rename trimHeadTail() and add asserts in RConfig Avoidify the RUtil.strTrim() APIs, rename trimHeadTail() and add asserts in RConfig Fix consecutive call to r_table_sort (#16049) Kill all globals in rabin2.c Remove globals from main.r2 Remove globals from rax2 refactor" Revert "Avoidify the RUtil.strTrim() APIs, rename trimHeadTail() and add asserts in RConfig test Add tests for RList (set, get, reverse, clone, append, prepend) and remove legacy Add initial sparc regression tests Handle ^C in r2r.v and support threads in fuzz tests r2r.v: Assume BROKEN=1 if not 0 or "" (#15936) Add Unit Tests to Meson (#15926) types Fix tccj, tccl, tcc* output errors and add tests (#15931) util Avoidify the strTrim() APIs + cleanup/refactor Memory leak fix proposal in syscmd_join visual Fix #15963 - Handle / in Vx (visual xrefs) To Review Fix #15211 - null deref in calling convention analysis Fix crash in elf parser found in the mtk-su binary with asan Add support for number_command and recursive help cmd_ignbithints should be set everywhere for consistency Save rnum->value before doing a cmd substitution Update radare2-shell-parser to fix null deref in html_disable_command Fix last coverity issues (#16114) Make r_strbuf_fini() safer (#16115) Add test for loading typedefs with to (#16101) Add test for long ESIL bug (#16102) [ppc] Only free op->esil if ESIL not requested (#16102) Fix #16093 - support syscall redefinition in REgg (#16106) Upgrade to node-r2r-0.4.0 (#16098) Add test for yara in extras (#16090) Fix #14647 - Add output of sections to segments mapping for ELFs (#16045) Add output of sections to segments mapping for ELFs Create RReg test unit (#16081) Fix some anal cmd handlers (#16085) Do not use the elvis operator for bool expressions (#16073) Upgrade node-r2r to 0.3.1 to fix the < 4096 (#16050) Fix address representation minbound maxbound in afij (#16051) Force sorting of rows in the event of consecutive sort Remove global Gdec and use r_list_reverse for decreasing sort Add test for r_table_tostring and r_table_sort Upgrade capstone v4 and next branches Simplify travis oneliner Fix r_table_sort segfault when column type is NULL (#16047) Rename argument to 'dec' (decreasing) to reflect existing output Add test Refactor bin_sections function Add filter_hash_string function Fix segfault in Authenticode hash check (#16042) (#16043) I noticed that r2 will crash when loading a PE file with Authenticode digest algorithm other than SHA-1 or MD5. I traced it down to the PE_(bin_pe_compute_authentihash) function returning NULL if it encounters an unsupported digest function. This results in NULL being passed to strcmp which causes the segfault. Solution was to add a check for PE_(bin_pe_compute_authentihash) returning NULL and to set bin->is_authhash_valid to NULL. The real solution is to add support for more algorithms but this will stop crashes for now. Greenify AppVeyor on master by using different tag name (#16041) Greenify AppVeyor on master by using different tag name Co-authored-by: Itay Cohen itaycohen23@@gmail.com Fix read stack-based buffer overflow when using str with pk_js (#16040) In some cases I noticed str is not correctly terminated, so when it is later used in pk_js, that function reads a very long string, outside of the memory bounds of the original buffer. Add support for @@* commands in new r2-shell-parser (#16038) Use TSSymbol instead of comparing type strings This patch uses ts_node_symbol instead of ts_node_type to check whether a node is of a given type. Since TSSymbol is just an integer, the check will be much faster. Also, it allows to store commands handler in an hashtable, instead of having if-cascade. Make sure r_config_hold works even when keys do not exist or are freed Add support for all _tmp_commands Make sure to always reuse the same TSLanguage Update both tree-sitter and radare2-shell-parser This way we use TSLanguage version 11, which fixes some problems with TSSymbols. Compute is_last_cmd on each single command and fix logging is_last_cmd should be set on a per-command basis, so if you analyze things like pd 3; .; .; .; the . refers to pd 3. This also fixes logging, so when an invalid command is parsed, it is still available in the history. Add comment about directly using r2-shell-parser in r_core_cmd_lines r_core_cmd_lines tries to parse the input and split it in lines, but at least in theory, we don't need it as the new parser can already handle full scripts. Allow other tasks to run between commands even in the new parser Fix #10696 - Kill r_io_map_add_next_available The function is just renamed to be reused and we have no tests for it, but it may fall into an infinite loop Fix #15842 - Add minimal slice for reproducible af test on anal-block branch Highlight that 'new' is a directory name in test docs (#16035) Use absolute URLs in pull request template (#16036) Fix sdb API usage to avoid extra strdup() (#16028) Make r_table_columns() faster, leak- and double free free (#16031) Remove ARGS= from tests (#16032) Support real names in "fd" command (#16027) add tests for fdj and fd.j Add support for realnames in fd Add a Test for fd with realname Co-authored-by: Florian M Cvsrkl info@@florianmaerkl.de Fix Spaces Interference in r_flag_get_at() (#16019) Unstick Travis by using compgen instead (#16025) Code cleanup in r_core_esil_step() remove unnecessary call to initializeEsil() remove another set PC register in initializeEsil() Add test for aes without initialization Use git clone --depth 1 as much as possible in builds (#16022) Refactor r_bin file hashes Add r_bin_file_compute_hashes Add r_bin_file_set_hashes Refactor it itj commands Introduce hashes method to RBinPlugin Add test for env with spaces Make env command trim key/value strings before setting env variables test/bins/fuzz: null_pointer__elf_init__store_versioninfo__store_versioninfo_gnu_versym Fix crash in mach0 mach0_invalid-addr_walk_exports Add Certificate Table parser to PE plugin Add SpcIndirectDataContent ASN.1 structure parser Add Authentihash calculation and check Refactor r_bin_file_hash Add tests for Authentihash check Fix for ar= and dr= and add tests increase width to accomodate register name larger than 4 chr fix flag type register value not printed update r_debug_reg_list() to accept '=' arg Fix builds by installing radare.r2 manually (#16009) Upload all generated ZIP files Use the "concatenation" concept in radare2-shell-parser Implement repeat_command and do not unwrap quoted args For back-compatibility it's better to not unwrap quoted args, because existing commands right now just understand this syntax. sdb header file dependency for external plugin i.e. pyc (#16004) r2r.v: Add color to BR and FX of cmd tests (#16003) Upgrade V Fix incorrect PPC ESIL and add testcase (#15970) (#15995) r2r.v: Fix EXPECT_ERR check r2r.v: Mark broken failing-only-on-EXPECT_ERR tests as BR and not FX Add ecH. command to show highlight info in the current offset Fix 32bit format string bug in the protobuf decoder Fix RCons test UB issue Add testcase for this RCons.rgbParse() crash Fix ASAN segfault in RCons.rgbParse() r2r.v, BROKEN=0: Check only first char Honor rc in unit runs and fix execution path in make run Handle return code in r2r.v and fix crashing unit test Fix asan crash in ecH- Echi bad color (#15986) Outputting error on ecHi bad color Add logic to parse unmapped local symbols. Every macho image present in the dyldcache has all the metadata about its local symbols stripped away from the corresponding macho header. Instead, this information is present as dyldcache-specific metadata stored in unmapped parts of the cache file. This PR, for every loaded image, takes care of adding the local symbols which are missing. Bonus Fix a potential use-after-free caused by r_bin_object_set_items, by rebuilding class-related hash tables after replacing the class list. Convert ONE_STREAM tests to EXPECT_ERR (#15979) Remove RAnalBlock.type Remove RAnalBlock.cases Remove RAnalBlock.label Reorder RAnalBlock members to free 16 more bytes Handle instructions with hidden operand Add hidden_op() for instructions with hidden operand Added operands info for pushf, popf, pushfd, popfd, pushfq, popfq Add test for aoj for pushf Fix last covs (#15976) Fix too long var name and assert on strlen (c) > 1 Fix grep when there is also {} r_cons_grep_strip expects the ~, otherwise it does not work well. new parser: fix multiple words in grep and add support for > $alias Add tests for swift-x86-64 calling convention Update afcr, afs command Add support for self, error register argument (Swift) Refactor and Add Swift calling conventions to sdb Fix escape/unescape in new shell parser Fix UB, oobread, infinite loop and other bugs in the LE parser (#15968) r2r.v: Slurp empty lines as well (#15964) Cleanup some RAnalBlock Members (#15965) Simplify ownership in the PE resource parser to fix a double free Use RVector for Address Hints Add Arch/Bits Hint Trees Add Unit Tests for Addr, Arch and Bits Hints Add unset for newbits Fix jmptbl hint fetching Fix r_anal_*_bits_foreach Print grouped Anal Hints Fix arch bit affect on disasm Add Reset Hints to Commands Add test for type uint64_t r2r.v: Fix wg race Memory leak fix for kernel cache module. Add missing afis info in afi? and fix afis? Fix tests Note that ^c is only supported on unix systems for now Some tests use the new radare.r2 api to use RCons.isBreaked() Other tests use os.signal() to catch C.SIGINT Add tests for assemble/disassemble neg al (#15949) Update neg eax test (#15950) r2r.v: Fix Success: 0 when running cmd tests (#15948) Try V suite on FreeBSD and OpenBSD (#15852) Try V suite on FreeBSD Try V suite on OpenBSD Fix V lang error Update V lang Fix /wj without argument produce stray \n Change logic to prevent unreachable branch Revert to R_MODE_RADARE if there is no argument Add asm x86 neg Upgrade V Upgrade V Convert '..' tests to <= 4.2 Update/improve jmptbl size tests Use specific commit of V to avoid build issues A bit more picky fix Add test for afs without type Fix #15767 - Temporarily disable colors in drrj Fix warnings Update radare2-shell-parser Use void because we don't do anything with the return value Coverity fixes Remove the wrong test More tests fixes Resizing works not perfectly yet but close Fix #15604: Convert all tests from <i_value in the log.level/log.traplevel callbacks Basic Blocks are now global instead of owned by a single function. Fix dbg_bps tests that always succeeded (#15763) Approved-by: Riccardo Schirone sirmy15@@gmail.com This feature only works with server implementations that have ReverseStep and ReverseContinue enabled, such as rr. The official gdbserver doesn't support it. Remove opt->sz checks and operations in r_bin_open_buf opt->sz is not used anyway in r_bin_open_buf, so there's no need to check its value or compute it. Fix last coverities related to cbin Add test for a8 command Some more coverity fixes (#15802) Implement pcV command to print byte array in Vlang Fix a small bug by removing some useless codes (#15795) Initial implementation of libname for flags in imports Initial support for PE and real flag Read libname for PE exports implement pj for imports Remove imp. prefix from symbol names Fix r_core_bin_impaddr() Fix some mdmp import stuff Print libname in ii Fix some imp. checks and reloc meta Fix r_bin_filter_sym() for imports Use realname for noreturn check Fix asm.flags.real for direct calls Fix realname for direct calls with fcn Fix resolving names from ordinal Co-authored-by: Florian M: ---------------------------------------------------------------------- Cvsrkl info@@florianmaerkl.de Add sha256 hash to "it" Refix #15331 (-nn filename with @@) (#15788) C prototypes fixed Fix broken AppVeyor due to rejected apostrophes (#15785) Some coverity fixes Third fix attepmt for musl builds Second fix attempt for Alpine/musl builds Aim to fix the alpine build The plugin wouldn't properly trace breakpoint hits on different threads since they weren't switched to and the events weren't always handled. Also, since the breakpoints are removed after they are found in one of the threads, it's best to stop all threads for now even if dbg.threads is false. New threads were only added after being attached to manually or if dbg->trace_clone was true. dbg->trace_clone stops debug and switches the new thread now. Fix a format string vuln in the disassembly with comments (#15783) Add s390x reg profile Add missing pc register Use gregset instead of regset ww: Support esc seqs (#15780) Breakpoints were left in disassembly after a signal/break and there are probably other cases that may lead to it. Offset for each panel was not correct (#15778) Add null to pj and use for relocs (#15776) Add pj_null() and pj_knull() Print reloc name as null in json if not available Omit reloc name in json Improve shell injection check Fix Coverity fixes (#15779) Some coverity fixes Fix #15331 - rabin2 -rk code injection issue (#15678) Rewrite r_str_unescape() using switch Do not compile radare2-shell-parser by default (#15769) Last release (4.1.0) did compile it by default, but the build requires internet access to download the repositories. For now, since the feature is anyway very experimental, we disable it at compile time so that distributions can just compile their packages without internet access. In the future we may want to use submodules or augment the release tarball to include the tree-sitter and radare2-shell-parser archives. Pass 64-bit sdb_fmt parameters as 64-bit (#15758) Fix double free in r_bp_del_index and other breakpoint index bugs Lack of cleanup in r_bp_del_all causing use after free in other dbi commands Copy paste error turning dbix into dbx Add dbi- command Allow dbi commands to operate with index 0 izzzj: Use pj api (#15760) Some xmm registers were printed as fpu and bnd registers were shown in all drt categories. dr will still only show 64bit/32bit registers to avoid printing all of the flags and d/w/b register variants. This fixes situations that if a read contained even a byte inside invalid memory, the entire read would fail Added RCoreBind.syncDebugMaps() and RCoreBind.getDebugMaps() api Reenable db tests and add new tests to check validity Add perm check to isMapped and remove map sync to improve performance Fix two tests Add RCoreBind.isMapped() api This reverts commit e503bdd. This way it is possible to set breakpoints before starting debug through 'db' and the user will be notified when a breakpoint points to an invalid map. Instead of unsetting breakpoints they were set again without removing the previous drx values, which also caused the "Invalid DRX length (0) must be 1, 2, 4, 8 bytes" error because of the wrong len values. Also, when resetting twice, del failed since there weren't any hw registers to delete, which caused the "hw breakpoints not yet Shows the module, offset and function name instead of showing the executable's path for all threads Upgrade node-r2r 0.2.8 (#15751) Fix windows dp showing the parent's path for all processes (#15741) Fix #15734 - Automatically download PDB file if pdb.autoload=1 (#15738) Automatically download PDB file if pdb.autoload=1 Don't re-download pdb if it already exists on the symstore Only download if file doesn't exist Fix wrong filtering of equals sign on PDB enum define (#15745) Fix all PDB tests Update node-r2r 0.2.7 to solve the json lost promise issues Hide warning message Fix warnings Add a fortune (#15736) Fix Vdv start_off calculation (#15735) Fix #15691 harder (#15733) Fix #15691 - avoid reading invalid memory izz: Fix printing of string with backslash if str.escbslash=false (#15731) More improvements for the cmd tests using r2r.v (#15728) Fix #15717 - Update scroll panel when stepping with F7 Fix infinite loop in panels - vttq (#15729) Check for error when analyzing instructions in vmenus Fix #15719: Reduce false negatives in 'U' strfilter Added path escape and unescape Unescape paths only if r_str_argv was successful Use r_str_replace instead of r_str_arg_(un/)escape to avoid breaking escaped filenames Fix debug and 'o' not being able to open paths with spaces #debug After starting debug the register deltas weren't mapped to the same registers in remote and native debug. This made wrong registers appear as vars and in remote gdb none showed up since the remote's list is much shorter than r2 reg lists. Kill some more tests using <dbg weren't reset before calling r_debug_select in a new session. Made sure this won't be a problem when using dp= after dp- either. Calculate the diff ourselves since bp->delta is calculated with the dbg->bp->baddr at the time of breakpoint creation, which may not reflect the correct baddr and break the rebase. Previously, disabled breakpoints were restored and then hit during execution. The debug logic ignored them and continued but that's an unnecessary slow down. To achieve this type of behavior the user should use tracepoints. Minor syntax issues in panels Use v fmt to indent the new testsuite Change Semantics of r_rbtree_upper_bound() and simplify Iter Fcns (#15698) Remove RAnalBlock members only used in Java (#15679) Remove RAnalBlock members only used in Java Remove R_ANAL_BB_TYPE_(HEAD|BODY|LAST|FOOT) Fix a Test Fix afb+ help Try to test with PowerPC and SystemZ (#15452) When setting non-bool config var, set false/true if r_str_is_false()/_is_true() (#15681) When setting non-bool config var, set false/true if r_str_is_false()/_is_true() Fix for cmd_open tests Fix for cmd_print test Separate pure BSD calls into its separate compilation unit. Fix #15682 - Fix getting noreturn info from invalid addr (#15693) fix some crashes of the widget (#15694) fix some crashes of the widget JK moves the cursor by a page and g moves the cursor up to the first line, plus a few improvements (#15690) 4.1.1 - reantull @@radare radare released this on 20 Dec 2019 - 2155 commits to master since this release Release 4.1.1 - Codename 'reantull' 4.1.0 - codename 'antull' @@radare radare released this on 19 Dec 2019 - 2161 commits to master since this release Release Notes Version: 4.1.0 From: 4.0.0 To: 4.1.0 Commits: 252 Contributors: 40 Changes anal Improve SP based variable analysis Some more helpful messages for anal.verbose Fix first r_anal_op call after asm.bits change Improve SP based var analysis Fix ms cc wrong argument analysis Fix r_type_del() for typedefs (Fix #15337) Add base64: for afn Move the fcn preludes into RAnal and add anal.jmp.tailcall (-1,0,N) Fix typo in ios-syscalls.txt (#15436) Initial implementation of afvf - show bp-relative stackvars Insert arguments into types SDB on function analysis arch Add support for or1k (OpenRISC) disasm+analysis (#15515) asm Fix ignored asm.bits settings because of RBin overrides Fix for #15459 - Also set the first operant to the right value on a mov from pointer with offset Add ARM strd support (#15388) bin Add 64-bit iOS SEP xtr plugin Add PIE flag check in kernelcache detection bin.str.enc: Accept UTF hyphen aliases (#15492) Support UTF32-BE decoding (#15472) Recognize Unicode BOMs (#15469) Use pj in the izj and izzj commands Fix #15445 - Add support for Mach-O external relocs Add support for C64 PRG fileformat pd: Don't abort string printing on initial null if bin.str.enc != guess (#15446) Fix #14279 - Ignore entrypoint on non-executable ELFs Analyse HIOS and LOOS symbol types by default. (#15411) build Fix #15485 - Improve argument parsing in sys/{install,build} (#15486) FIx 32bit windows Rename "asan" to "sanitize" (#15412) Fix build for 32bit Linux systems Fix build of the onefied shared lib command Very simple tree sitter integration (#15414) config Pass R2_CONFIG file to ! commands and serialize methods cons Fix #14197 - Don't highlight control chars on hud filter (#15552) Include last line when greping using foo~n.. (#15524) core Fix some Race Conditions with the thready task scheduler (#15667) Make Task Scheduling Explicit (#15511) asm.cmt.off: Accept 0 & 1 as aliases for false & true respectively (#15500) Use sigaction instead of signal CPU affinity API introduction Honor cfg.editor in 'vi' instead of always using 'vi' Implement $foo:=,+=,-= and $foo to alias some flags commands Support 'f foo+=4' and 'f foo-=4' syntax for flags debug Improve debug rebasing and fix partial windows rebase Refactor debug native's wait function Fix native debug not working with files that were opened as RW Add ppid to win32 debug and 'dp''s display/json Add process selection to w32 debug Fixed a crash caused by reopening gdb Fixed not killing child processes and added detach Fixed gdbr warnings and a dpt crash after debug was over Added an event to signal the end of the debug session Fix 'oo' rebasing when leaving debug and add 'doc' to exit Silence drr warning on UT64_MAX registers Fixed an issue with detached child breakpoint inheretence Added oodf\doof to enable rebasing for remote debug Rebase Breakpoints for PIEs Added dp processes info support to gdbr Add breaking to ood in linux to avoid execvp freezing Allow debug plugins to modify pid/tid on select Fix linux_set_options error Add process selection to linux native debug Setting parent pid on pid list on BSD Show all processes for pid 0 using dp Improve linux native debug dp output Fix getting DRX breakpoint size Fixed overflow that broke remote debugger reopening Impl. list modules for WinDbg Fix WinDbg IO in page boundaries Fixed windbg concurrency and added missing locks Fixed windbg pipe timeout behavior on linux Added rebuild rules for windbg Fixed windbg continue on windows 7 64bit Allow breaking for WinDbg Update hardcoded gdbr registers for 16/32bit x86 (#15488) Added parsing support to all gdb registers Fix gdbr's reg_write and reg_next_diff for reverse stepping Reduced gdbr's tcp connect timeout and added a break Fix gdbr not closing sockets after connect failed Add break to gdbr's read_packet and move isbreaked to libgdbr Fix gdbr_write_registers and refactor gdbr_write_reg Replaced lock_check with tryenter in gdbr_read_registers Add breaking to gdbr connect to avoid waiting on invalid connections (#15442) Add experimental ymm regs support for linux-x64 and extend drm command Add Windows 8 and 8.1 WinDbg profiles Fix attaching to a pid on Windows (#15406) Fixed w32dbg breaking issues (#15386) Add support for printing xmm* as packed floats and doubles (#15378) disasm Fix hidden hint.lea for hint.pos==0 Improve switch-statements in disassembly Add refs, xrefs and esil columns to pdt Add asm.cmt.esil to show ESIL as comment doc Improve macOS installation documentation (#15438) Fix links to Doxygen documentation (#15377) gdbclient gdbclient reduces risk of use after free down the road io Uses the setitimer api instead for the alarm in self:// Automatically set the debug plugin when opening debug uris (#15403) json Add current process field to dpj network Fix r_socket_connect not using the given timeout in unix print Fix #14661 - Support parsing binary protobuf data (#15423) Add utf-8 support in r_print_rangebar (#15389) r_debug Refactor signal handling for FreeBSD search Introduce the r_magic_load_buffer() api and boolify a bit Update RSA key search to find larger keys (#15494) Search for AES 128, 192 and 256-bit keys (#15426) signatures Add auto zignspace generation for the zg command (#15402) test Implement asm, fuzz and json test runner in r2r.v util Add RIntervalTree data structure Added r_th_lock_tryenter API (#15454) Use HtPP for RStrConstPool (#15424) visual Improve the interaction with decompilers in panels Reduce the blocksize on some hexvisual modes windows Add command to identify window under cursor Fix #15456 - Fix reopening in write mode Fix hang when running dc in a task To Review Release 4.1.0 - Codename 'antull' Fix lock ordering of RCoreTaskScheduler.lock vs. RCoreTask.dispatch_lock Remove RThreadLock.refs Fix a race in tasks Make SP based variable analysis aware of changes to SP Use delta inside stack to identify the variable used instead of offset to SP Keep track of offsets to SP used to access the variable Fix argument printing order for reg args Add test Revert pe coverity fixes to fix ihj The format is reused for printing and internal type representation, breaking the JSON by making the value field in ihj empty since "llx" isn't a valid type Fix ESIL UB Mark fixed tests as such Fix some FX Tests Separate windows, linux and *bsd/apple since they have vastly different logic and the ifdef jungle implementation was too confusing sys/meson.py: Use == 'vs2017' instead The FD was kept open and ptrace was prevented from opening it with the error "Could not execvp: Text file busy". Fixes issue #15650. Solving r_debug_handle_signals build warning issue. Fix #15653: Silence MSVC XP deprecation warning Use eprintf instead Fix typo Make it possible to use sysmagic again (#15658) Compile tree-sitter with std=c99 flag (#15654) SystemZ analysis logic error Fix some MSVC warnings Add ppid to dp and fix dp= for windows (#15649) Previously, dp= wouldn't fully switch to the given process since it was treated like dpt thread switching, leaving the debugger in an undefined state. Function r_anal_cc_arg should just return NULL when nothing is available (#15646) Function r_anal_cc_arg should just return NULL when nothing is available Callers should be able to handle NULLs Fix memory leaks in unit tests Some coverity fixes (#15643) The plugin would try to work with an old version of desc that was already freed by r_io_close_all after closing the session. I set debug_gdb's global 'desc' to NULL in detach as a temporary solution. We should convert to **desc to keep an updated copy of the pointer. Fix warnings in or1k_disas.c Fix #15545 - Fix NULL derefs after r_file_slurp() fails Fix format string in windows_message.c Replace some strstr() calls with strchr() Fix Alignment Check in aae on bit change RDebugPid not being initialized with NULL resulted in a free on an invalid pointer after gdbr_threads_list failed. Fix memleak in r_anal_free() (#15631) Fix heap-buffer-overflow bug in get_src_regname() (#15630) r2r.v: Fix test skipping (#15629) r2r.v: Move threads into r2r (#15628) Some Coverity defect fixes (#15626) Not all of the data was rebased after reopening the original file and there was warning message from set_baddr which isn't needed here. Switched to __rebase_everything instead of the old methods that were used. r2r.v: Support running of just 1 cmd testfile (#15616) r2r.v: Fix invocation of json tests (#15624) Fix AppVeyor (#15623) Refix magic's bgets() Fix another infite loop in RMagic.loadBuffer() Fix bread in RMagic.loadBuffer() Loading json tests is not the same as running them (#15618) In this way 64-bit SEP kernels aren't wrongly detected as XNU kernel caches. Rename or1k insns global (#15613) As in certain build configurations it conflicts with the Capstone's symbol of the same name, raising errors in the linking phase. The warning: WARNING: r_core_anal_hasrefs_to_depth: assertion 'core && value != UT64_MAX' failed (line 2062) This way registers like 'orax' will simply have an empty reference like before, just without an annoying warning when there really is nothing to telescope. {"reg":"orax","value":"0xffffffffffffffff","ref":""} Use ONE_STREAM=1 instead and assume it sets scr.onestream Name variables based on their offset from the start of the stack frame Fix tests Fully implement the asm test runner in r2r.v Must use the native api to speedup TODO: Multiple cores to run in parallel Fix N and V results in 6502 BIT ESIL (#15562) r2r.v - better portability Fix some more asm tests and use the same warning style for r2r.v Fix crash on oom when command line is too long. Aim to fix #15543 Initial implementation of the asm/dis tests support in the V suite Remove broken Threading Code from main for #12996 (#15554) Previously, forked children would instantly die if the fork was stepped over using a breakpoint which is accessible to the child process. Removed deprecation messages (#15557) Moved the information in the help messages Add RRangeTree Inclusive/Exclusive Add r_interval_tree_delete and r_interval_tree_resize Fix r_interval_tree_all_at() Fix a bug of the tab (#15559) Imports Tests from radare2-regressions (#15546) Fix some warnings (#15549) Fix signed integer overflow in r_asm_massemble (#15551) Fix an int Overflow in r_asm_massemble() for #15543 Fix length type in r_str_trim_tail() Aim to fix another integer overflow in r_file_slurp Fix integer overflow when assembling a 2GB file Blindfix for #15543 - aka CVE-2019-19590 Most servers/clients should have xml support by now so it should behave like dp in any other debugger. vFile is the only way to get detailed pid info unfortunately. Execvp may hang until a signal is received on some systems(reproduced in arch linux) in case the file can't be executed for some reason(broken symlink, different arch, etc). Previously, when using dp=, the debug plugin would set a new tid based on the requested pid, but r_debug_select would set the old tid as dbg->tid, resulting in issues interacting with the current thread. This could also be an issue when the requested pid/tid is invalid and the plugin selects something else. Previously, setting options would fail sometimes since PT_ATTACH's attach SIGSTOP wasn't hit before reaching linux_set_options. Previously, dp= wouldn't fully switch to the given process since it was treated like dpt thread switching, leaving the debugger in an undefined state. Add user Pointer to RBNodeFree (#15540) Fix sj current position marker after buffer wrapping. (#15538) Coverity Scan GitHub Action (#15539) ONE_STREAM_HACK & scr.onestream: Force expected ONE_STREAM order if necessary (#15535) Fix spp warning (#15530) Try showing offset when there are no redo items. Fix handling of many seek history items and other edge cases. Previously, the command didn't show the pid's path, replaced the path field with current/ppid, and showed the ppid instead of only showing the requested process and the children of the requested process. Fix some warnings on Windows (#15532) opt->sz is initialized with r_buf_size at r_bin_open_io using an io buffer if r_bin_open_io can't open a file buffer. Since the debuggers returned unsigned values to opt->sz which is signed, opt->sz would overflow and contain a negative value, causing r_bin_open_buf to fail. Went ahead and modified CUR_END values for all debuggers even though this should only affect remote debuggers. ST64_MAX should be enough. Python and VS updates for Windows/clang (#15526) Python and VS updates for Windows/clang Fix labeler environment windbg module build warning fix (#15514) Switch labeler to periodic-labeler (#15517) With actions/labeler#12 being an issue, the action's labeler is useless for PRs that come from a fork. This one runs on a cron timer instead and doesn't suffer from the same issue. fixed bin.libs loads and dex use after free (#15522) Fix a Double Free for Dex (Fix #15519) (#15521) Add Comments to RCore and kill some unused Members (#15513) Fix #15498 - Fix stdcall stack calling convention (#15508) Remove unnecessary RConfig Members (#15509) Fix a Double Free in tms320/c55x+ (#15505) Before we didn't check if a virtual address read/write would go through a page boundary. This fixes it. Also do some formatting and re-enable some useful error messages Fix XP build Partially decouple Tasks from RCore Add pull request labeler (#15503) Previously, windbg_break would freeze waiting on a lock instead of breaking, taks other than wait weren't breakable and read regs would freeze the process while waiting for a mutex. Previously, linux would timeout when trying to connect and would timeout too frequently since milliseconds were treated as microseconds. ContinueApi2 only worked on XP 32bit while ContinueApi works on both. Previously, continue would do a single step. Fix OOB read in windbg_reg_read Add locks to prevent collision Enable timeouts on the pipe backend Fix #15495 - show current seek history position in sj bin.str.enc: Accept uppercase aliases (#15496) bin.str.enc: Check for NULL (#15493) Fix anal.timeout calculation in r_cons_break_timeout (#15490) Remove broken Task Pausing and unnecessary RCore.lock (#15489) Fix null deref when using waf on non-valid file Inital GitHub Actions (#15467) Inital GitHub Actions Disable Windows for now Disable tests for now Add missing BT instruction optype for x86 There are still platforms that don't support the target xml format. Added parsing of gdbr arm/arm64 register features and added a default to >64bit registers Since r2 doesn't support set/get to large/vector registers (it will still work when printing gdb's registers with dr/drt or restoring the registers with reverse stepping), there's a possible issue that the user will get lots of prints of "r_reg_[get/set]_value: Bit size 128 not supported" when running various debug commands that use those functions. This fix simply moves those registers away from gpr to avoid those prints while still being able to view/restore the registers. Minor Refactoring and Comments for RBTree Fix the flags.prefix with flags.inline glitch The previous implementation was limited to 64bit registers and didn't parse the 'feature' field. Writing registers with gdbr worked with single registers because reg_next_diff started at delta 0 and only had to run the diff once for the single register that was changed. When running reverse stepping/continue, multiple registers are changed at once so r_reg_next_diff would fail every time due to incorrect offset calculation. The new r_reg_next_diff also support different register sizes to restore all registers correctly. The endianity swapping part from reg_write isn't needed since the arena is the return value of 'g' which is already in the correct target byte order (see: https://sourceware.org/gdb/onlinedocs/gdb/Packets.html#read-registers-packet) Fix #15451 - Update Windows compilation documentation Connect isn't effected by r_socket_block_time since it can only change the timeout of read(and not implemented, write) actions with setsockopt. Also, connect may wait for an unspecified amount of time so we have to use select. The socket object was free'd without closing the fd. In the following gdbr_connect attempts, tcp's connect would freeze on a valid socket since connection based protocol sockets may successfully connect only once, any connections beyond that are undefined behavior. Remove printf debug leftover Some fixew for the graphviz code (#15470) Add TODO comment for overlong strings No more hacky base64 iz != izz, before izz was iz+izz Fix x86 lahf instruction Fix autocomplete Don't contribute with patches Emit sp-based var offset as a number The output of afvsj shows offsets of sp-based variables as strings. This fix changes the offset to be shown as a number, just like sp-based arguments and bp-based variables. Since read_packet has a large number of retries you would wait for it for a couple of seconds after breaking in functions like connect and vcont Previously, write_registers sent a partial string instead of the correct register format which specifies that each byte should be represented by two hex digits. This change allows reading registers when calling read_registers in a thread that holds the recursive mutex. r_th_lock_check only returns the refcount which isn't enough to know if the current thread is holding the mutex when a recursive mutex is enabled. Support UTF16-BE decoding (#15450) Support UTF16-BE decoding Add spaces Fix few warnings for the gdb client Fix crash Cleanup tab-completion initialization code R2 will hang while waiting for any resolvable port to respond, this takes a long while since connect is attempted twice in r_core_file_open. Update capstone v4/next from Git Added break to gdbserver vCont and refactored the code to use locks (#15433) The previous gdbr implementation didn't allow interrupting background tasks with &b since send_vcon wasn't properly configured with the cons api. In addition to that, gdbserver doesn't support processing multiple commands at the same time, resulting in undefined behavior once cons were set up for vcont. This commit adds the relevant cons api and solves the concurrency issues by adding locks on all socket related logic. Fix r_sys_sigaction not setting up the requested signals (#15440) The for loop's iterator was initialized with the first member of sig[] instead of 0. Added an error to avoid this issue going unnoticed. r_list_free() -> r_list_free () r_list_new() -> r_list_new () __exit was listed twice with same number (1), and fork was missing. Fix broken pkg uninstall command on macOS (#15437) Provide a proper package ID to get rid of the following error: No receipt for 'radare2.pkg' found at '/'. Prepend a / for each returned path by the pkgutil command, to make it an absolute path instead of a relative one. Avoid invoking the sudo command for each file, which speeds up the command significantly. Avoid ambiguous signing certificates on macOS. If a user manually installed a new code signing certificate into the login keychain as documented, the install script will fail to sign r2 because the sys/macos-cert.sh script generates a new certificate in the System keychain. This results in the following error when signing: org.radare.radare2: ambiguous (matches "org.radare.radare2" in /Users/user/Library/Keychains/login.keychain-db and "org.radare.radare2" in /Library/Keychains/System.keychain) To be constistent with sys/macos-cert.sh, change manual certificate generation steps to install to System keychain instead of login keychain. Mention that code signing certificate generation is automated by the install script before listing the manual steps to generate a new code signing certificate. r_list_newf(..) -> r_list_newf (..) Use free() instead of R_FREE() in r_list_delete() Same reason as #15430. Use PJ in oj (#15434) This fixes escaping issues Fix Leak of Flag Zones (#15432) Use free() instead of R_FREE() in r_list_free() (#15430) Refactor r_flag_color() to r_flag_item_set_color() (#15429) Add r_spaces_purge() (#15428) Fix comment about RFlag.ht_name (#15427) Faster interactions -- can be improved still Add missing entry for meson Fix r_strbuf dependency on r_cons This allows the 'zg' command to auto generate zignspaces from function names by utilising the ':' convention used in zignatures. Now when 'zg' is run if any funtion names are in the format ZIGNSPACE:FUNCTION, the zignspace will be extracted, created and the function applied under its scope. Fix build (#15422) Fix #15419 - Fix bytes field in aoj Hold this analop warning under anal.verbose tree-sitter-integration: support tmp-seek, arged, and interpret commands Make meson automatically download tree-sitter and radare2-shell-parser grammar Add tree-sitter/radare2-shell-parser directories in gitignore Add Support for tree-sitter in acr/makefile Just use one script to download 3rd party repositories in shlr Use cfg.newshell Fixes for Windows debugging (#15418) Fix error when continuing after attaching to process Get threads correct EIP Fix some memory corruptions and small refactor Remove core->oobi because not used (#15413) Fix leaddrs leak (#15417) $foo:=123 f foo = 123 $foo+=4 f foo @@ foo + 4 $foo s foo Strip bins and libs for the Debian package sys/meson.py: --asan accepts sanitizer list (#15405) Fix #15407 - Fix using unexpected ACP for input on Windows (#15408) Fill op->mnemonic in anal-gb Use RPUSH in anal-gb Clarifying yara-to-r2 integration documentation. (#15404) Sync default sanitizer list of sys/asan.sh and sys/meson.py (#15397) Sync default sanitizer list of sys/asan.sh and sys/meson.py Keep signed-integer-overflow Hardening esil-dfg Modified debug_native to handle break's thread switching behavior The user was interrupted during continue and switched to a different thread since DebugBreakProcess creates a thread that triggers a breakpoint. With these changes the DebugBreak thread is recorded to skip the breakpoint event afterwards. Modified r_debug_native_wait to avoid switching between threads for each event The debugger should return to the requested thread after handling events in other threads except for breakpoints. Refactor drm to be ready for the YMM registers (#15394) Fix Appveyor hang. (#15396) fix linux x86 build (#15395) Fix assert Fix build After release version bump Add some asserts in rreg Fixed w32dbg breaking issues and moved break_push to w32_dbg_wait to support stepping as well Previously, breaking would only work during 'dc' because it was pushed in debug.c specifically for continue. This change moves the responsibility of pushing/popping w32_break_process_wrapper to windows_debug.c instead to support calls to w32_dbg_wait from anywhere. sys/meson.py: Use -fsanitize=... instead of -lasan when linking (#15390) Use pj api in drrj (#15391) This also solves an issue with drrj in windows since the code relied on iter->p to know if a comma should be prepended, but windows always has it initialized so it was always prepended - invalidating the JSON. Make the generated r2.bat use bat path_relative syntax instead of hardcoding. (#15383) Fix double-free in canvas.c (#15379) stack.nl is no longer active v4.0 : Codename Kr: Cvsroot mpack - vifino edition @@radare radare released this on 28 Oct 2019 - 2413 commits to master since this release Release Notes Version: 4.0.0 From: 3.9.0 To: 4.0.0 Commits: 299 Contributors: 48 Changes anal Bring back the MASK_DISASM because not all nanal plugins support it yet ##anal Select default var type based on its size (#15352) Fix #15325 - Improve af- like its done in Vdu Deprecate anal.jmp.eob /refs #13482 Fix #15117 - honor asm.var.sub in ao/aoj Fix #15315 - Honor RAnalOp.disp in aar and ao Update 8051 plugin (#15321) Avoid reloading of cc sdb - huge speedup (#15306) Implement ESIL for arm64 UBFX Make RAnalFunction.cc come from RAnal String Pool Deprecate the use of anal plugins that doesnt handle mask.disasm Add jumptable support for main() in bins/elf/analysis/ls-alxchk (#15266) Add jumptable support for main() in bins/elf/ls.odd (#15233) add afoj and afdj (#15254) Fix #15235 - push [mem] not handled in /r Add initial reg profile for sysz arch Don't propagate noret to fcn if fcn jmps outside itself (#15190) Fix #15004: Make meta.min rbtree more robust (#15141) Fix memleak in r_core_anal_propagate_noreturn() Minor speedup/cleanup/refactor of the RAnal Implement ESIL control-flow-graph and further dfg analysis Add anal.delay to disable delay slot analysis for testing Fix pc-rel movs in sh's esil Delay execution debug messages are now available via anal.verbose Fix #15073: Disambiguate using fcn addr also in meta.min rbtree (#15077) api Add r_strbuf_copy API (#15186) asm Fix post-indexed memory access for str instructions on ARM (#15298) Fix #15302 [rasm2/armass] Correctly propagate errors from thumb_assemble (#15303) Add additional [indirect] access syntax for 8051 (#15272) Fix #10651 sub sp, sp, 0x1000 not correctly assembled for ARM (#15187) Fix #15198 (#15199) arm64 assembler const value Add 8051 assembler plugin (#15189) Z80's LD opcodes assembly (#15185) Fix parsing of floating point instructions in x86_64 assembler (#15174) Fix x86 assembler output for some memory loads (#15068) bin On AArch64 there is a new special symbol $x (#15362) Fix #15152 - Support old Java attribute format (#15317) Simplify r_bin_open_io function (#15307) Support > 4GB ELF files Add support for RTable.query in i Fix #15132: Integrate table to iS,ia,ir,iz,is (RBin info) based commands (#15159) Implement support for the RISCV PLT ELF relocs Fixes for MSVC demangling (#15210) Format the .rela. sections in ELF Add NES ROM mirroring map build sys/asan.sh: Use -fsanitize=... instead of -lasan when linking (#15375) Link sdb fully into r_util in meson (#15338) Fix #15296 - *BSD builds (#15309) Fix macOS build with latest XCode Add MSVC 2019 for AppVeyor Try MSVC 2019 for AppVeyor Set rpath if non-Windows Meson shared Debian package fixes (#15081) cons Fix function key handling in visual/panels For utf-8 locale, check LC_ALL, LC_CTYPE and LANG in sequence instead (#15326) Also use LANG env var to check for UTF-8 output support (#15257) Move UTF-8 setting logic to scr.utf8 config callback on Windows (#15273) Implement 'str' operation in RTable queries core Fix #14247 - fn.j/fnj. show all flags in current offset, not just one Few compiler watning fixes here and there Fix #15114 - Implement r_sys_info() and uname Add kitty clippy replacement :3 (#15232) Add possibility to specify time zone with rax2 -t (#15180) Implement cj command using the PJ api (#15168) Add support for the V programming language Fix #15134 - Support octal numbers like 0o666 Implement function-based plugin loading method Add omt and help message for RTableQuery + add format column api Move Lib already loaded check before dlopen Call (#15075) Replace r_str_const* with RStrConstPool (#15300) Kill r_sys_get_osinfo () (#15346) ##core debug Use RTable for Windows heap info output (#15368) Add support for setting xmm registers on linux (#15365) Fixed continue not being associated with the current thread in unix Added a way to break while in dbg_wait (continue, step etc) Fixed dpk Fixed opcodes not being associated with the current thread in gdbr (#15358) Fix drm[bwdq] command, add xmm0h/l and xmm8-15 registers (#15354) Fix the way linux debugging options are set (#15323) r_reg_get_pack/r_reg_set_pack are not able to deal with 128 packbits Added support to thread switching in linux and fix r_debug_select Fixed ptrace 'Operation not permitted' errors (#15287) Fix debugger build for native GNU/Linux on RISC-V Fix incomplete drr/drrj formatting when r_core_anal_hasrefs fails (#15277) Added "dptj" and "dptj " (#15259) Enhance drm command, add drm xmm0 functionality (#15214) Fix drf output formatting Implementing debug info per pid on NetBSD Using unused map debug field on macOS Rebase fcn/bbs, flags , comments, meta, refs when ood Fix issues in windows thread switching (#15366) ##debug diff Implement radiff2 -X for hexII diffing Fix #14845: Support radare2_rc in radiff2 for graphs (#15078) disasm Better pdi output when Cd is involved Implement 'pdt' - print disasm in table, supports queries Make asm.fcnsig more compact Do not resolve the strings pointed by ADRP on arm64 Improve (change) sh4 disasm (lowercase regs...) emu anal_x86_cs fix esil expr for neg instruction (#15252) Fix #15246 - Honor the 'u' suffix in PPC instructions in ESIL esil Fix #15297 - Update ESIL help message Improve registers handling in ESIL dfg Simplify ESIL code for ARM str instructions Add a parameter to $s and $o (#15171) io Setting the upper address limit for OpenBSD Improve omt and implement RTable.filterSum io_self Setting the upper address limit for OpenBSD json Show flagname and realname in json format for fnj and such Add current thread field to dptj (#15268) lang Rewrite hashbang command parser, use argc & argv in hashbang (#15188) panel Fix #14857 - Handle 'O' key to rotate asm.pseudo/asm.esil Another const pointer to be free fix Handle / highlight in panels for zoom and window modes Fix const address freeing fix #15060 - Add xrefs and xrefs here in visual Fix #14559 - Honor scr.fps panels Fix #14857 - Handle 'O' key to rotate asm.pseudo/asm.esil Handle / highlight in panels for zoom and window modes Fix const address freeing fix #15060 - Add xrefs and xrefs here in visual Fix #14559 - Honor scr.fps print Fix #15216 - Implement pcy command to print hexpairs in Yara format r2pie Implement r2pipe_open_dl() to use dlopen/dlsym rasm2 Freeing main assembly object script Fix vlang plugin to run scripts and add example search Fix #8575 - Support stdin slurping in rafind2 - Add support for hex escaped litterals in regular expressions (#15291) Fix RCALL and RJMP in aop and /at Refactor Search to use less Global State (#15076) table Add :json,:quiet,strlen,minlen,maxlen,sortlen in table queries Integrate table API for p-h (#15083) util Fix rop inline assembly form visual Run .dr* in visual prompt in cfg.debug is set Fix for VV going to V (issue 15181) (#15195) Fix #14919: truncate long function names in Vv (#14996) wasm Further wasm memory leak fixes Memory leak fixes in error code paths windows Print child output in pipe lang plugin zign Integrate types field in zignature operations (#15082) 3.9.0 - Carxofes @@radare radare released this on 17 Sep 2019 - 2712 commits to master since this release In r2land we are happy to celebrate that the artichoke seasson is back with a new release \o/ Binaries: http://radare.mikelloc.com/release/3.9.0 Release Notes Version: 3.9.0 PreviousVersion: 3.8.0 Commits: 102 Contributors: 31 TimeSinceLastRelease: 2 weeks Changes anal Implement anal.norevisit using SetU instead of Sdb Fix #15013 - jump/cjmp analop for m680x Fix the infinite aac issue, reduce false positives, speedup a bit (#15015) Fix mov.l/jsr ESIL for SuperH4 (#15039) Fix nopskip (its not fixed at all. just random typing here and there) (#15024) Add anal.nonull to avoid analyzing functions if starting by zeros Fixed i4004 arch to be according to spec (#15062) Fix zero register set issue (r2wars) Implement types field for zignatures cons Fix #14611: Vi-mode indication by prompt color Add a way to print an aliased without a trailing new line (#15031) Fix clicking on frame borders to resize Remove code for no-anal asm.bb.line (#14977) core Make -m do an implicit -s Fix #14990 - multiple quoted command parsing issue Fix multiple quote cmd issue Fix #14019 - Move ta to aht, move other commands around, refactor indentation Fix #10851 - Solve slurp messages on http/sandbox/pipe Don't run ldconfig when installing into /usr (#15049) debug Fix gdb reg write byte order (#15009) Improving slighty the process status check on Darwin On Darwin, expose process path ASLR check setting fix on FreeBSD emu Hackaround to get esil stepping on delayed execution Fix arm32 stmia post-increment (#14983) (r2wars) io Support shm_open in shm:// and some code cleanup Fixing perms for Darwin Fix #15002 - Propagate write error issues into RCore.patch Print error msg if write fails (#14978) Fixing self:// perms issue on Darwin r2-3.8.0 - Taupe @@radare radare released this on 3 Sep 2019 - 2814 commits to master since this release Release Notes Version: 3.8.0 From: 3.7.1 To: 3.8.0 Commits: 188 Contributors: 30 Changes analysis Improve the aab (blaze) analysis by honoring data meta Speedup and reduce false positives in aae by honoring code/string/format Do not analyze functions in strings/data by honoring the meta Fix infinite (or expensive) loop when fcnsize=0 Honor anal.strings in aav Define argument and ret pseudo registers in the SuperH4's reg profile (#14920) Introduce anal.in=code (2x faster aar in some big binaries) Introduce afisaj and fix table contents for afisao and such Implement afis[aof] - to show instruction type, family and mnemonic tables Fix as command to resolve syscall by name, number and SN reg Fixing ESIL for ARM architecture pre-indexed addressing mode with LDRB (issue #14850) (#14901) Add more info in aflt and add afltj Initial implementation of aflt (using the new RTable API) Hide the shift overflow warnings under esil.verbose Fix ownership issues related to cc Add calling conventions for ARM32 and Thumb Unify the use of R_ANAL_CC_MAXARG Propagate noreturn information (#14793) bin Fix code injection issues i* commands (rabin2 -r) Fix #14930 - handle LC_DATA_IN_CODE in macho Fix strings on ELF bins for SH-4 with the Renesas SDK Support deep JSON format for binary headers in iHj Fix Cf with named formats when .iH* is used Fix #14898 - Show warning when -B used on unknown binaries build Shrink the Cydia package from 512mb to only 64 core Add single quote as alias for =! and \ Support 0X as an alias for 0x in numbers debug Fix crash in gdb client (#14897) Notify user on hardware breakpoint hit diff AGraph integration with radiff2 disasm Fix #14716 - Honor local flags in RParse Implement asm.hint.emu and improve Vr reftype selection Do not try to resolve strings pointed by adrp instructions on arm64 Honor asm.instr in pdi Hide brackets for LEA even if operand is section flag Add support for the amd29k architecture pix and pdx are now aliases for pad doc Remove help for hud in ?? graph Fix #14859: Enter used to update seek in visual call/ref graphs (#14906) io Fix a couple of bugs in wo* and implment wo8 Add support for io-plugin initialization via null system command =! (#14915) Simplification of the io_self plugin for macOS/iOS Consider endiannes when performing block write operations panel Few memory leaks fixes Fix #14891 - Seek in panels after coming back from console Fix #14883 - use[] to realign comments in disasm O in visual is supported in panels with the "i" key Added some asm settings and classified it panels Fix #14891 - Seek in panels after coming back from console Fix #14883 - use[] to realign comments in disasm O in visual is supported in panels with the "i" key Added some asm settings and classified it print Implement pv* to completely fix #14165 Fix #14165 - Implement pVj and fix pvj with argument Fix #14936 - Add po[..] set of commands Implement 'cols' RTable.query to filter by column names Use block character for p= and p== graphs (#14941) r2pipe Initial support for r2pipe.html rop Add ROP chain execution support in ragg2 search Let search.align override arch.align if set, improves aav in SH Bring back /ai and fix regression for SUB.val Skip gadgets starting with a nop in /R Fix #14755 - read-only raw search Fix #14202 - Add support to '\d', '\w', etc. in regex util Initial implementation of the RTable API with filter, sorting and query APIs visual Fixes #14914: Mouse wheel for hud (#14940) Improve mouse in visual (hud instead of goto and ignore cursor toggle windows Fix #14816 - Properly get lib path Other Changes add nf flag in ESIL generated for ARM thumb (#14954) Fix regression in wo2/4/8 Fix divbyzero and garbage variable found by clang-analyzer Fix memleak in r_strbuf_prepend Fix logic in 2-byte endian swap used by "wo2" (#14951) Display operand of EBC push/pop instructions (#14949) ARM: fix order of registers in push/pop with reglist fixing esil =[*] (poke multiple regs/values) Fix out-of-loop issue in aae macOs/Notes 6.8s -> 6.4s macOS/r_core 4.3s -> 3.8s Still wip. only works as a hint when using -e bin.verbose=true Improve r_core_anal_hasrefs_to_depth (#14863) Fix Win32 build patch from @@sanguinawer (#14945) Fix uninitialized variable issue related to the mouse state Fix regressions Fix #14380 - Fix demangling symbols containing the '?' char with iD Fix #14889 - Implement ! and c keys in visual help Improve vq and v!!! workflows Break early in Cf format name failure Fix #14939: Replace assertions about missing RReg profile registers with warnings (#14943) fix help message of ? (#14944) Fix #14935 - Kill harmless warning Fix assert in aea for r2wars Show backtrace when assert happens Fix crash in aea* when code is ffff Fix #14771 - Modified pdx/pix to disassemble hexpairs (blocksize-independent) (#14892) Add frame pointer to AVR register profile (#14938) Enable mouse only if it was prev enabled and based on scr.wheel (#14925) Fixes #14911: Use theme colors for p= and p== (#14934) Add fortune 1 != 0 Massage two more assertions Fix early assert for IO Disable Travis IRC notifications Too much noise at IRC. Blindfix more null derefs in reg.value Fix another null arena deref Assertify io.fd api Fix aea for instructions referencing PC Boolify the reg api a bit more Fix null deref in reg arena Blindfix for empty reg arenas Add Predicate for Task Dispatch Fix assertion when emulating invalid instructions and revert pcalign4 for sh Update help message for Vd Fix #14928 - vr to be in sync with Vr Fix assert regression before it triggers Minor cleanup and visitor cache proposal test for RAnal.fcn() Fix #14821 - crash in td r_str_split_list() rewritten to support nth limit r2 -qq -c 'aac;aflt size/gt/200,addr/cols/name/nbbs,nbbs/sort/inc' /bin/ls Fix off-by-one in RCore.lines.initCache(); Set asm.hint.emu=false by default Fix build Add r2con2019 svg logo $ r2 -i doc/r2pipe.html /bin/ls Syncing with r2hexagon (#14918) the reference of emulation are displayed one instruction after. which is bad Fix build Fix Windows build (#14916) afisa uses rtable, as well as afist@@@@@@f Useful for r2frida to automatically run .=!i* This makes reading iOS apps much simpler by removing lot of false positive strings Fixes #14900: Disable color for dot mode (#14908) Better directory structure for the panels config file (#14903) Fixes #14896: Enable and disable mouse based on requirement in visual/panels (#14909) v!! = V!! - use ! to toggle between visual and panels Fix hexdump height issue in panels Reset mouse settings after leaving the hud Fixes #14900: xdot type commands functional now (#14902) Fixes #14900: xdot type commands functional now Remove recursive handle_stop_reason call Revert "Fixed the bug that I had fixed before (#14788)" This reverts commit 9e27142. This change was breaking panels in Mac Fix MSVC build Add afltj and some more fixes and improvements related to RTable Accepts a query as argument Fix a segfault in RStrBuf.prepend Add lsls and ldrh thumb asm.describes Add missing include install for meson Improve disasm char hints Fix some warnings from gcc Make cmd_depth task-local (#14888) Add neg pseudo instruction to arm assembler (#14890) Freed some vars (#14885) Fixes #14845: Use unicode settings in radiff2 (#14884) Fixes #14845: Use unicode settings in radiff2 Fixed indent Tame vayour Fixes #14534: Ignore non-printable and non json chars (#14876) Fix #14878 - Fix unaligned field access Add afos command and minor cleanup for afo Fix null derefs in afv subcommands when no function is found Fix afvn outside of Function (#14882) Fixes #14856: Changing visual seek behaviour in Vv (#14877) Fix #12438 - Fixes for PDB (#14874) Fix use after free when autoloading pdb Use heap on td command Fix #12438 - Fix wrong 2 byte read for char value Fix crash on r_line_readchar_win (#14875) Merge pull request #14868 from kazarmy/x86-cmp-disp-for-disp Use op->disp instead of op->ptr for disp of x86 CMP (and ACMP) Drop not needed wrapper Fix non-unicode Windows build virtual keys not working Fix arrows in vi mode on Windows Merge Windows and Unix dietline implementation Simulate escape sequences in r_line_readchar_win Fix some bugs on Windows Some refactoring Fix #14854 - Fix glitch in asm.hint.pos=0 Use LTO for the Cydia build Fix segfault in r_main_free Add the syscall number regname for hexagon arch Fix #14870 - Fix crash in type propagation when no cc defined Instead, recursively going through the regions while focusing on main addresses and grabbing pages states informations. Fixes for the cydia static build of r2, needed for iOS12 add missing =SN for the SH analysis plugin Fix for meson Fix hexagon jumps second try (#14867) Synchronized files with radareorg/r2hexagon Fix warning, assertions and regressions in arg type handling Add missing cc-x86-16 Fix anal.depth and remove arm16 dim Code cleanup Update capstone again (#14862) Fix #14861 - Reset cursor after leaving panel's prompt ':' Fixed the bug that I had fixed before (#14788) Use op->disp instead of op->ptr for disp of x86 MOV (and others) (#14829) Use op->disp instead of op->ptr for disp of x86 MOV (and others) Fix for jumptable MOV Fix for [] operands Fix another Appveyor hang (#14844) Fix coredump PC not being considered (again) (#14836) Use r_sandbox_fopen instead of fopen (#14832) Revert multiple layout saving regression in panels (#14792) Some little refactoring in panels (#14798) Fix #14522: Added g support for Vv mode (#14823) Add a small menu tick for visibility when scr.color is 0 in panels (#14801) Avoid disassembling the same instruction twice on rop search (#14815) Avoid disasm the same instr. twice on rop search Fixes for comments fix double free Fixes #14267: Does not print the function name for agft (#14819) Fixes #14672: f= gives output from current flagspace (#14820) Add @@sghctoma pf definition for BIOS and NTFS Add *BSD SourceHut builds (#14824) Fix r_print_color_op_type param type mismatch (#14825) Specify graph.diff colors for sepia (#14817) Implement agd* based commands (#14809) ag* commands fully functional Indent and r_return usage All agd* commands functional now Graphs are pretty now Refactoring the code Fixed assertion error Fixed broken agf Always bracket indirect addr operand (except LEA) (#14802) Always bracket indirect addr operand (except LEA) Don't use RAnalOp Add clang-cl support (#14814) Fixes for path autocompletion on Windows (#14813) Fix register writing on Windows (#14805) Fix register writing on Windows Drop unecessary use of heap Fix stack-use-after-scope (#14811) Fix #14804 - Make sure anon structs have unique names (#14806) Also skip "union" to get type Fix Appveyor hang on master (#14803) Propagate noreturn information Avoid infinite loop when propagating noreturn information Avoid all recursive cases Avoid warnings use r_anal_bb_opaddr_i 3.7.1 XVilka tagged this on 14 Aug 2019 - 3002 commits to master since this tag Set version to 3.7.1 r2-3.7.0 - Codename TopHat @@radare radare released this on 1 Aug 2019 - 3062 commits to master since this release Version: 3.7.0 Previous: 3.6.0 Commits: 320 Contributors: 42 Changes anal Fix #13766 - Sum the meta_data_code as covered code Add more function definitions for posix and macOS binaries Add argument to 'afll' to select column to sort by Print MSVC RTTI Warnings only on anal.verbose=1 Add afj command to analyze jmptbl from the shell Honor RAnalBlock->switch_op in afb. and afbi Improve ARM64 PAC instructions support Fix #14530 - Implementation of i.~{} aka RCoreItem Added val op hints to let the user define jmptbl sizes Fix #14501 - Jumptables are made of signed values Reduce xrefs sorting for aflj perf Initial implementation of anal.trycatch blocks asm Implement PAC instructions in the ARM64 assembler bin Add icqj command Fixes for msvc demangling (#14695) Add jni.h in bin/d for pfo Update Mach-O hardcoded format definitions Improve Mach-O header fields Improve RConsBind and use it from RBin via iz^C Use libswiftCore library if available to demangle Swift5 symbols Fix oba on frida:// Add more e_machine values for ELF Fix support for Swift5 demangling via bin.demanglecmd Fix ordinal name on Linux for NE (invalid sdb path location) Fix function detection on coff file Add icqq to print unknow classnames Add icc support for Java/Dalvik Improve ObjC classes boundary checks and slightly improve demangling Parse macho's LC_ENCRYPTION_INFO command in rabin2 -H Fix undefined behaviour bugs in malformed macho bins Handle "stub and resolver" exports and fix export trie for dyldcache Handle the export flags to avoid de-syncing Support ObjC categories on mangled classes Avoid loops in Mach-O export trie walking Parse Mach-O exports trie structure Fix #14499: Detect ascii substrings Show Class visibility information in icj for DEX Fix symbols in wasm and add custom sections Parse Rich header in PE Initial implementation of the bin.libs imports linking List multidex as dependency libs Initial working implementation of bin.libs The words of GOT Fix new exe header detection for MZ Optimize DEX subsystem detection Fix #14441 - Invalid codesize in some DEX files PoC: Initial implementation of direct bin symbols (20% speedup in loading times Remove the check_bytes and more bin-buf refactoring Add __const to potential VTable Sections Add r2 iw and rabin2 -w to enumerate try/catch blocks Parse the try/catch info of methods in DEX files build Fix android-static Delete prefix/ and fix static builds (missing libmpc.a) Fixes for the android compilations Add $onlydebug in sys/ios-cydia.sh Towards emscripten build fix (update sdb) Enable ASSERTS on all travis builds, to avoid confusion mesonbuild: Backport to python 3.5 cons Make click and drag work on Windows Fix #12921 - Impl. r_cons_arrow_to_hjkl for Windows Fix scrolling directions in the hud Implement RCons.echo() and use it from r2.cmd("echo64") Fix grep in tasks Fix #11396: Integrate dietline with the hud Fix for RCons.html when no color is used Add example file for the pri command Add pri command to print raw images in RGB (using stiv code) Introduce ?e= and ?ed to print progressbar and 3D donut WIP: Initial support for rotozooming strings via ~=10 sandbox handling Add -qq to force quit. Avoid the -qcq confusion debug Windows native debugger refactoring More fixes to WinDbg (#14675) Step over rep and repne prefixed instructions with dsui Fix breakpoints handling for FreeBSD Fix single-step in the iOS-arm64 native debugger Fix xnu_thread_get_drx for iOS/arm64 Honor SWI for step-over decompiler Add support for the native r2ghidra plugin detection in cmd.pdc disasm Don't show function name comment in Visual mode Fix #14655 - Improve asm.pseudo for Dalvik Demangle xrefs if asm.demangle=true and use '@@' for xref locs Fix #14622 - Skip reflines on non-executable offsets Respace demangled c++ names Do not asm.describe metaa .dwords Find relocs at instr. location first, then the dest Kill MOV/LEA comments Implement global imports (aii) and improve disasm-print-instruction code Implement 'function imports' concept (afii command) Add some SuperH opcode descriptions fs Improve R_FS via IO graph VV<> draw refs/xrefs graphs for visual navigation Implement icg to create class graphs Honor utf8 in diagonal graph lines Fix #14553 - Use HtUP to store canvas attributes instead of a sorted array (#14556) Add graph.body and graph.bubble config vars, move sin/cos into r_util Initial implementation of RConsCanvas.circle and bubble graphs io Fix timeout issue in http.get Better use of perm/mode names in R_IO mount Autocompletion for mount commands mouse Improve mouse support in visual prompt panels Drag and resize the panels with the mouse Add aflm and handle : as separator in click Handle click on toggle cache, frame title and screen borders Add tiny graph in panels and simplify the code a bit Show all the decompilers output at once W + hjkl just works like Ctrl w + hjkl Seek by clicking the offsets on Function Panel Right click is supported to open " widget Wheel is supported Mouse supports the menus which have spaces in their names Mouse kind of works on the menu, still lot to work on W + h/l moves the current panel to the direction like vim does with Ctrl W + h/l Introduce scr.demo to add effects in panels enter/exit Fix word highlighting with mouse in panels Cache the pdc outcome for each function Handle mouse click on panel tabs and select frames The 'g' key seek to highlighted address in current panel Highlight words onclick in panels Fix #14468 - Add pdsf panel for the " widget Initial support for saving the layouts with the names feature Unsync the base offset of each tab parse Add r_parse_ctype print Fix aho being ignored by asm.tabs r2pipe Enlarge RLang.cmd() to 8KB length commands Improve decompiler integration 'pdc?' -> '!*%s -h" .. Interpret .c files as #! via -i search Skip PAC instructions in rop searching Skip ROP gadgets starting with RET Fix #14585 and #14584 - /c->/a* /C->/c /B->/mb /M->/mm - better help msg and autocompletion types add tlj and tllj Fix #11404 - Implement "afsr" to change function return type visual Visual Help colorized Improve the visual browse classes mode (vbc) Initial mouse support for visual tabs vda is an alias for vA wasm Few memory leak fixes Copy the symbol id instead of reference write Implement wao for dalvik To Review Release 3.7.0 - TopHat Use RFlag.list() instead of .get() avoid false positives (#14735) Fixx oobread in flag.c (#14728) check for null Fix #14732 - Fix out-of-bounds read Better gameboy theme Fix #14696 - Fix p= in utf8 mode recent regression Fix edge detection for click and drag Fix a bug where a drag event could be initiated outside an edge Fix not being able to select the menu anymore Fix not being able to click on the X to close a panel Fix afsr not performing type checks Fix memory leaks part 2 (#14720) Fix Incorrect Break Check from de7a488 (#14723) Fix win32 compilation (#14722) Fix afs not changing function name (#14721) Changed the utf8 characters (#14719) Fix #14711 - Merge Fun/About/Help in panels Fix crash in .i~s .. recursive infinite grep strings issue (#14718) Add fcn name in Visual mode if necessary when asm.filter=false and asm.jmpsub=false (#14713) Fix WinDbg plugin warning Fix #13633 - support nested unions (#14712) Handle 'e' in '"' Fix crash in canvas Fix projects, add of help and improve gb again Fix assertion Improve the gameboy theme Hide a harmless warning when string section size is 0 Assertify the IO API a bit more Fix $? value in im prompt.exec from rc to num.value Kill os and ons commands (they werent even documented) Fix #12911 - Fix types starting with 'void' not being considered Fix abbreviated names being lost Hide this 'code slot size' warning under bin.verbose Use void in function prototypes (#14700) Revert that flagsize fix Proper fix of the oob8 bug Fix 1 byte oob read issue Fix 8byte oob write class, method and field names are now shorter and easier to read r2pm: handle info and install arguments properly (#14693) bin_symbols: Add quoting (#14690) Not camel case but snake case (#14687) Fix mouse click not opening file menu in panels (#14688) Only suspend threads if dbg.threads=true on Windows (#14689) Windows native debugger refactoring Massive win32 native debugging code refactoring and corresponding fixes. Fix hang after killing process Hide command autocompletion warning message they're now aligned with libr/bin/d/macho also tweaked r_print_format_struct_size to work with referenced format names Fix some leaks found by ASAN Break demangled xref comment when in graph (#14678) Refactoring (#14681) Fix seeking (stepping now works) Fix more crashes Fix compiler warnings Refactoring (#14676) improve macho format definitions allow enums and bitfields with arbitrary size avoid modifying the format string argument inside r_print_ Fix capstone symbols visibility Fixes #14652: Fixes visual hud regressions Don't show flag name for internal demangled xref Refactoring Default scr.breaklines to true Fixes #14353: Added utf8 support for agft Featur #14351: Added utf8 support for p= based commands All emacs dietline keybindings are implemented (#14664) Some fixes to windbg (#14666) #debug #windbg Fix #10505 Fix wrong register profile being picked Fix use-after free(s) and null derefs Fix warnings cmd_debug.c: Make addroflib use basenames Fix flagspace autocompletion Add protobuf magic Pull enums out of RParseCTypeType Support struct/enum/union before name in ctypes parse Add cdecl-thiscall-ms Calling Convention (#14653) Add more tokens for the panels clicking thing Sort om help messages Fix #14640 - /aa Add help for /ac (#14638) Tested on rabin2 -D and iD command Add __stack_chk_fail to types-android.sdb.txt (#14641) Fix W command (#14636) Fix W command Required for r2pipe programs to buffer output to be processed by r2 Handle 'e' in window panels mode too Refactoring (#14630) Don't print non-ObjC methods in classdump_objc Improve ObjC classdump icc Parse ObjC superclass name Aim to fix O_BINARY issue in rahash2 on windows Fix ?b64- command A bit more cleaner vbtll (struct visual browser) Refactoring panels (#14613) Use eq[] instead in bin_classes() Respace demangled c++ names ic*: replace ' ' with '_' in flag name Fix avra Add guards just in case; use r_str_rchr() instead Use upper case for #defines $ r2 Payload/Undecimus.app/Undecimus [0x10007e3ac]> s 0x1000081d8;af;s 0x1000082b0;afj 0x1000085fc 4 [rio] fix r_io_cache_commit to commit all lines Support for aap (function preludes with pacibsp) Handle LDURSW properly Define op->type for PAC instructions (not just family) Add more asm descriptions for pac instructions Click [X] with mouse and close the panel, plus a bunch of refactoring (#14602) Add r_parse_ctype Add mpc to acr Fix r_parse for acr Mouse is supported for " widget (#14599) Put demangled name directly in call disasm if asm.demangle=true (#14600) Put demangled name directly in call disasm if asm.demangle=true Constrain possible flag names for functions Fix ds_print_fcn_name() comment alignment when asm.cmt.right=false Ignore dalvik since it's treated differently Use R_FLAGS_FS_SYMBOLS instead in disasm.c Oops Fix demangled comment order (#14592) Fix c99 construct (#14593) Better name for seek autocompletion Fix #14543: Renamed function doesnt show in autocompletion list (#14591) Fix /ao command Fix infinite loop in /o-1 Update capstone v4 and next Added support for esc, pag up, pag dwn Added vi mode, changed quit method for hud Added ^C for vi mode Fix wrong reloc command in panels (#14582) Docuemnt Q in q? Fix C99 construct Initial implementation of NE file format (#14573) Fix several bugs of mouse and improved a bit Simplify the fork+spawn logic on Apple things (#14574) Fix anoying aeim warning when debugging Minor function signature fixes Clean up #14568 code Add comment that demangles calls if asm.demangle=true Cache on and off works seamlessly Fix null deref in 'r2 -qcia --' Use PJ for meta (#14567) zero RConsGrep in cons_grep_reset() instead fix grep expr in cmd_info help Changing pdc settings has got a problem in panels and now it is fixed (#14561) This should improve performace as you don't need to shift elements of the sorted array when you need to insert a new one. skip reexports and "stub and resolver" exports for now, the semantics are different and need to be treated in a different way but advance the pointer accordingly, to avoid loosing sync while walking the trie (especially in dyld cache) Fix #14552 - issue with Csj and scr.html Reduce the questionnaire when replace/create a panel, also replace the cmd of the current panel is available from " widget (#14551) Fix C99 construct without using -c99 (#14550) The image is generated with Gimp, saving as .data (RGB) This is 128(W) * 3(RGB) * ?(H) .. the height is computed with the blocksize r2 -e hex.cols=128 -qqfcpri doc/cows128.data Added arrow info to pdJ (#14422) Fix build --without-gpl (still far from complete but we need to go forward and kill all the globals \o/) PD: the broken test is because initializing RCons twice Add several panels to the menu and sort some of them Fix invalid JSON in ij output Fixes #14524: vi delete command is now 3dw (#14527) Fixed dietline warnings Changed logic for diw/diW Fixes #14524: changed vi delete command format to 3dw from d3w Removed unnessary print ESC key handled in vi_mode Fixes #14521: Add support for ^y when ^w Fix #14470: Close popup widget on escape Fix #6321: Wrong handling of escape key Cursor was missing in the comments panel (#14518) Fix wrong assembly of jumps relative to the ESP register (#14511) Fix Windows Build (#14512) Fix trailing space issue in the GNU sh disassembler Fix u/U problem The menu properly gets updated as a new layout is saved with a name Fix isq. should do the same as is.q Fixes #14416: selections in disarm fixed Improve spacing around "//" in unum.c "+=1" -> " += 1" in unum.c "+1" -> " + 1" in unum.c Fix wrong realloc in r_asm_massemble In line 694 a buffer of size (sizeof(char*)*32) is allocated. Later on, this buffer is realloced to 64. This decreases the size of the allocated buffer instead of increase. This may lead to memory corruption. Click properly works on the tabs (#14491) Fix missing title line in Visual mode when under scr.ansicon=0 (#14490) Autocompletion for k command (#14488) Autocompletion working for ms Removed comments Autocompletion for k command Fix some bugs and add pddo panel to " widget Fix an assert in aoj Fix focus and bright themes Color regression issue in disasm.c Fix scr.wheel.speed regression Add gameboy theme More code cleanup in RBin (#14473) Fix r_str_replace - unit tests added Fix two lines in doc/hud Autocompletion works for md, mg Added autocomplete flag map Fix behaviour of click in panels (x<20) Fix scr.wheel glich Disabled by default at compile time. See FEATURE_SYMLIST define Fix crash, reduce false positives of RBin.dol Use RBuf.slice in /B Fix autocompletion of remote files in #ms (#14284) Added Segments panel and made cursor available for both Sections and Segments panels (#14461) Add help for afs? command Quote wa command generated in visual mode (#11138) Use a pointer to eprintf instead Fix aaa color under scr.ansicon=0 small fix for console Add spaces around operators in r_num_conditional() Add spaces around operators in r_num_to_bits() Don't update console panel when it's not absolutely necessary Add spaces around operators in r_num_op() Add a couple of spaces around '==' in unum.c Add a couple of spaces around % Remove some spaces Add a space Fix an UB oobread Fix RStr.replace() Fix long times for pp -1 Remove some more spaces Remove a space Set foreground color just in case add r_fs_file_copy_abs_path to get the absolute path of a RFSFile, centralizing edge case handling use that in fs_io_read add missing free (file->path) in RFSFile destructor fix handlePipes for fs shell cat use case Fix couple of small bugs in panels with tabs Small fix for tab (#14432) Python 3.5 (the lowest version that meson supports) has no f-String but only old %-formatting and str.format(). Fix warning when printing level of ">" (#14430) Strip trailing whitespaces Fix warning -Wstring-plus-int on cont_level Remove unused var Fix ragg2 *.c on macOS Add fortune tT segfaults so fixing it (#14426) Post release version bump (3.7.0-git) Fix a few null dereference issues (#14419) Fix ec* wrt attributes (#14421) Fix for the debug mode that makes disasm so slow (#14414) Notes: SH opcodes array, file libr/asm/arch/sh/gnu/sh-dis.c from GNU binutils, defines "bf.s" and "bf/s", same with "bt.s" and "bt/s". Both pairs are identical, e.g. bt.s and bt/s mean the same thing. As *.s variants come first in the table, radare and binutils-objdump print bf.s and bt.s names. Still true for latest binutils (v2.32 2019-02-02). Renesas chip hardware manuals and IDA Pro only use bf/s and bt/s. Complete R_CONS_ATTR_ series (#14411) @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.27 2020/08/31 18:09:20 wiz Exp $ d3 1 a3 1 DISTNAME= radare2-5.1.0 d23 6 a28 2 #PLIST_SUBST+= R2VERSION=${PKGVERSION_NOREV}-git # trunk revision PLIST_SUBST+= R2VERSION=${PKGVERSION_NOREV} # release revision @ 1.27 log @*: bump PKGREVISION for perl-5.32. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.26 2020/05/22 10:55:45 adam Exp $ d3 1 a3 2 DISTNAME= radare2-3.6.0 PKGREVISION= 5 d5 1 a5 1 MASTER_SITES= http://radare.mikelloc.com/get/${PKGVERSION_NOREV}/ d10 1 a10 1 LICENSE= gnu-gpl-v3 d23 3 @ 1.26 log @revbump after updating security/nettle @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.25 2020/03/08 16:47:41 wiz Exp $ d4 1 a4 1 PKGREVISION= 4 @ 1.25 log @*: recursive bump for libffi @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.24 2020/01/26 17:31:04 rillig Exp $ d4 1 a4 1 PKGREVISION= 3 @ 1.24 log @all: migrate homepages from http to https pkglint -r --network --only "migrate" As a side-effect of migrating the homepages, pkglint also fixed a few indentations in unrelated lines. These and the new homepages have been checked manually. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.23 2020/01/18 21:48:09 jperkin Exp $ d4 1 a4 1 PKGREVISION= 2 @ 1.23 log @*: Recursive revision bump for openssl 1.1.1. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.22 2019/11/03 10:39:29 rillig Exp $ d9 1 a9 1 HOMEPAGE= http://www.radare.org/ @ 1.22 log @devel: align variable assignments pkglint -Wall -F --only aligned --only indent -r No manual corrections. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.21 2019/08/11 13:20:50 wiz Exp $ d4 1 a4 1 PKGREVISION= 1 @ 1.21 log @Bump PKGREVISIONs for perl 5.30.0 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.20 2019/08/04 14:30:13 ryoon Exp $ d13 1 a13 1 HAS_CONFIGURE= YES d19 1 a19 1 USE_TOOLS+= gmake patch pkg-config perl @ 1.20 log @Update to 3.6.0 Changelog: 3.6.0 Changes anal Fix syscall resolutions for s110 operating system wzr/zr/xzr register on arm64 is wired to ground Fix naming of entrypoint symbols in files with class information (DEX/C++) Fix #13668 - Implement a* as an alias for afl*;ah*;ax* Fix and improve ESIL for arm64 Fix #10567 - Implement afl. command Fix afl* not saving function bits Add experimental `axm command Implement refs for iget/iput Dalvik instructions Implement esil for OR and MUL dalvik instructions RAnalOp.Type.CAST.toString() and implicit refptr init Improve af performance affected by `aflc Honor R_ANAL_OP_MASK_ESIL in anal.dalvik Improvements in dalvik analysis Add Stackframe Anal Hint Add opcode mask field in ao and aoj Add opcode description in ao Show pseudo in ao and aoj Improve anal and parse plugins for Thumb Implement ESIL for stxb and stxh THUMB instructions Fix issue when analyzing the last DEX method asm Handle LEA operand rip in x86.nz bin Fix code section size in dex files Handle mod_init/mod_fini as word sections in mach-o Handle the interpos section as words in the disasm Fix ObjC detection in macho binaries Get rid of the ELF-specific C++ detection Add -O a/l/ for macho to add libraries Honor more segments vs sections, for jmptbl, fatmacho, zeropage Fix iS/iSS in macho and kernelcache For #14268: Implement ob= listing bin map coverage A couple of fixes for base address support Add missing ARM64v8 and ARM64e defines for the mach0 parser Kill RBinFile.objs RList Implement RBinFile.at and make it work with e bin.at Fix some RBin file format crashes Speedup loading fuzzed ELF files with huge nrel field Faster macho loading by reusing symbol parsing for getMain() Remove symbol table size hard limit in macho Fix regressions in dyldcache and xnu_kernelcache plugins Completely eliminate the bytes apis in RBin Fix #14147 - Honor -qq for classes and imports Initial extermination of the *_bytes methods in RBin Fix #12600 - Implement .ic** command to import bin.class info as anal.class Handle DEX files with no entrypoint properly Properly handle ELFs with no entrypoint defined Little ELF segment labelling change UNKNOWN -> NONE build Continuous Fuzzing Integration with Fuzzit Add sys/build-shlib.sh and fix static builds config Improve the list of supported decompilers in e cmd.pdc=? cons Little va_list leaking Fix #14046 - Don't use ansi with aaa notifications if no ansicon Add bold to eco bright items that were originally bold in default palette Fix #14254 - Add eco bright (r2 default palette but with bright colors for all) Add bright colors to the colors table Fix #14101 - Fix non-ansicon UTF printing Fix THE glitch affecting panels box colors Default to scr.color=COLOR_MODE_16 for Alacritty on Windows Dfferent color for up and down in disasm reflines Implement reset command to reset the terminal settings Enable color prompt on Windows Fix Color_GRAY/BGGRAY palloc return checks core Fix #14335 - Add sort, join and uniq Simplify RConfig.eval and improve e with e, for csv Add r_sys_exit to proper quit Honor hashbang and PATH when interpretting extension-less scripts Honor ^C in @@@@@@F and @@@@@@s Implement $O variable pointing at cursor Implement |. (alias for .) debug Improvements to windows heap parsing Set cmd.gprompt=.dr* when cfg.debug=true Initial implementation GetSingleBlock for Windows heap Initial implementation of heap parsing for Windows (#14218) debugger Improvements to windows heap parsing disasm Avoid printing nulls on invalid code or missing bin info for Dalvik Add asm.movlea configuration option Improve comments alignment in the disassembly Fix arm64 parse for BL instructions fix, improve and add some sh pseudo Support asm.hint.pos=-1 for leftish key hints Initial cleanup in RParse, delete mreplace plugin Toggle asm.dwarf in V# and pds Add support for base64 in CL command Faster dtd (trace disassembling) using API instead of RCore.cmd Fix #14258: Issue with upgoing refline at XREFS Fix CL command and make asm.dwarf work without source files Fix asm.varsub in a hacky way to fix the disasm output Fix project's asm.cpu behaviour Priorize strings in case multiple metas match Set the RBinSection.format as dwords for the constpool in DEX Initial import of the RISCV capstone plugins for asm and anal esil Skip {urc}{jmp,call,ret} in aesou Fix issues with negative esil.timeout values Fixes related to ARM64 ESIL emulation Make $r{} work without the debugger Add cmd.esil.stepout to run r2 commands (before and after emulation) Fix recursivity issue when calling aes in cmd.esil.step Fix cmd.esil.step handling of return value graph Implement fg command to create a graph of flags (WIP) Implement graph.ntitles to toggle graph title nodes hash Initial implementation of pasasword generators under /Cc Fixes for fletcher8 Add support for fletcher8, 16, 32 and 64 hash algorithms heap Implement GetSingleSegmentBlock for LFH and VS Windows heap json Use asserts in pj api to catch this issue earlier meta Fix CC-, CC-* and CCf- commands to work as expected network Handle R2_CURL env var in RSocket.httpGet panels Add more configs for disassembly are supported in the menu Emulate menu is added Settings menu is added, and decompiler is configurable in there Something like Ctrl w + T in vim implemented Almighty menu has got debug items too if it is in debug mode Search->Cursor->Xref/Ref enabled Cursor works better in many panels item from the list in " widget New item can be created and inserted to the '"' widget. Centered the '"' widget plus v and h commands are added to it. Added l command to the console which works like Ctrl l and Refactoring dwm style default Cursor is available in strings panel Cursor is supported in Symbols panel performance More code cleanup in RBin, speedup method resolution print Honor hex.section in prc and pxa Implement pV command - like pv but for bytes instead of) Add Kotlin, Java and Swift pc sub-commands r2pm Honor the 2nd arg of R2PM_TGZ with ZIP files refactor Change the signature of r_str_trim to avoid confusions Deprecate the RBinObject.id field Rewrite the RBuffer API to make it saf Breakpoints can be added with the cursor (#14404) Simplify ds_begin_nl_comment() Use a thread to prevent hang Add some checks and fix some bugs Fix an unrelated json for the greens Fix pdJ for asm.cmt.right=0+asm.cmt.refs Fix some color and newline issues Fix ds_begin_nl_comment() Do not assert when cursor is disabled Fix #14286 - Initial implementation of the pp (print-pattern) command Some tweaks related to pj/disasm Fixes #13628: cmd.hexcursor now works with selections! (#14394) Fix asm.lines.right in disasm Fix trailing space in MOV disasm comments by pancake and kazarmy Remove dup ds_align_simple() Remove unnecessary ds_align_comment() ds_align_simple -> ds_begin_nl_comment ds_comment (ds, true, ...) for comment start Remove blank line before flag comment when asm.cmt.right=0 Remove blank line before refaddr comment when asm.cmt.right=0 Fix comment color when asm.cmt.right=1 Use ds_pre_xrefs() instead of ds_pre_line() Fix null name issue in axtj Improve r_sys_setenv on Windows (cherry picked from commit fd43d41) Upgrade spp from git Also put r2.bat under \bin on Windows install Fix io/self vm mapping late calculations. Calculation must be done before getting the aligned data, most likely missing few entries... fixed regression on !!!foo Fix Warnings Handle more dalvik invokes via esil Drop precision to double before comparing (#14379) Upgrade capstone-next Wrong path Add mingw to PATH in the Appveyor test script Fix esil harder, thx @@radare Return bool instead of ints in esil-ops Fix esil add type information to esil-ops add meta-information to esil-ops Add more registers for Dalvik, despite that should be dynamic (#14375) Fix null cmd.esil.stepout issue on som ESIL initializers Add path completion for join, uniq, sort (#14373) Fix r2pm -H output Fix UB ASAN crash in 'pv' More spelling fixes in the code "e cmd.esil.step=sr PC;aepc ?v $$;q 0" if q == 0 { successful replacement, do not emulate } } else { emulate the instruction with esil } Ignore anal.gpfixed fo non-mips in disasm Add anal.gpfixed instead of anal.gp2 and use in aae Honor scr.wideoff in $? I recommend reading SH operands right-to-left tst is checking for zero (!) Add a space or two autocomplete when there's a space between the eval var and the = char !!!$eval and !!! $eval are invalid added afn as flags Fix UAF in e asm.cpu= Fix visual bug on Windows Rename r_cons_get_ansicon() since it's confusing (#14347) Fix more grammar Fix grammar across the code Add codespell script Fix Appveyor (#14346) Add afn. command for consistency Fix #14215 - invalid JSON in pdJ with Cf #14342 Arm64: Handling of XZR registers in assembler (#14343) Handle ^C in pz which may be holding on slow IO backends Fixed oob in rgb.c (#14339) Fix crash when obj && !obj->info is null Fix #14334 - Double-free in ms command Implement r2p r2pipe commandline tool and !* as an alias for #!pipe (#14336) Also voidify and boolify anal, parse, cons, bin, .. Fix build Rename r_bin_file_set_cur_binfile_obj to r_bin_file_set_obj add ESIL for LDURSW instruction fix ESIL shift for TBZ, TBNZ fix condition computation for LE, LS Trim before comparing pseudo asm (#14313) The almighty modal is available even when it is in the menu mode, and refactoring (#14318) Call r_anal_op_free after acquiring RAnalOp pointer (#14317) Add R_DEBUG_ASSERT in DEVELOPERS.md Use id16 instead of id256 for color id (#14316) Fix color after piping on Windows (#14314) Enable r_stdin_slurp on Windows (#14312) Restyling (#14311) Open disas panel if it is not there when the cursor selects some offset (#14310) Reset inverse video first before anything else (#14309) Fix #14296 - Segfault in ragg2 (#14308) Fix #14303 - oob crash in RParse api usage, needs API redesign (#14307) Fix eip inverse under cmd.exe (#14304) verify that maps is a list before trying to deref the pointer This fixes cases where saving and loading a project of a mixed-mode binary (e.g. ARM with Thumb parts) reverted functions back to only one of the modes. WIP: Really basic implementation of esil.timeout. (#14297) Really basic implementation of esil.timeout. Fixed style issues Converted timing to r_sys_now() to keep consistency with other timing based solutions throughtout src Fixed spacing issue and removed use of CLOCKS_PER_SEC const Shift right to equate to seconds Fix linehl color for Windows ecd (#14301) Refactoring (#14298) Fixed crash on CL (#14299) s/CORELIB/R2_PLUGIN_INCORE/g (#14295) Move some R_ANAL_OP_MASK_DISASM outside RCore (#14294) Fix linehl color for eco bright and ecd (#14292) Fix crash in macho parser with bin with md5=0e32e7e3b8c2895bbdeb986eedda3dd6 That should fix the MSVC build Fix ARM64 MOVK shift boundaries to 48 instead of 47 Fix small bug fix in trace (#14291) Use a less dark color scheme by default on scr.color=3 on non-Windows (#14289) Add also bold to default palette items that are bright Handle segment sections in dyldcache Fix masked check avoid emitting malformed r2 commands in z*, by adding the n type for the realname field use bytes:mask format instead of combining the mask with bytes, to support sub-nibble masks fix and improve anal_mask() for arm64 Fixed a critical issue of the almighty menu Minor tweak for maps changes and aav Fix iSS= iS=, iSS* and iS* issues Symptom: Search often failes when hexpairs are separated by spaces, e.g. "01 02 03" vs. "010203". Affected: radare2 and rafind2 at least Description: While parse-function r_hex_str2bin handles whitespace, auto-generated binmask (function r_hex_str2binmask, called when no mask is provided) does not, creates oversized mask, increases byte count, finally causing search for additional undefined bytes. Self documentation in ob= (#14272) Added r_listinfo_new and refactored to use it ignore ccls cache Code cleanup in RCons Split types-windows.sdb.txt and add cc info Refactoring panels (#14181) Little memory usage fixes in esil Fix asserts and memleak in RBin.classses Upgrade capstone from git Fix #14233 - Fix 1byte oobread in wasm analysis Bring back the old behaviour but add some warning messages for debugging Fix local var clobbering regression Fix class initialization and simplify some paths (-10LOC) More RBin refactoring and cleanup Mark r_bin_class_new/free as internal (#14239) Add a parenthesis Honor asm.var.submin in disasm.c and use RNum.get instead of .math Fix build and add snprintf_chk function signature Fix assert in objc demangler and kill r_core_bin_cur Fix another UB in flitcher32 Fix UB issue in fletcher hash Fix crash in zo Use bright colors instead of bold in default palette (#14232) Fix cmd_ah asan crashes Fix #14228 - oob-read by one in wasm disasm/analysis Fix crash when parsing 1 byte truncated omf files (#14227) Add bright color support to scr.ansicon=0 (#14224) Fix OOB Write in langFromHashbang (#14222) Fix a bug in panels with disasm (#14221) Refactoring (#14216) Avoid an assert regression that must be checked back at some point patch #14211 heap buffer overflow in large ragg2 inputs. this should be refactored to use an RBuffer to enable dynamic resizing, but for now just patching it to bail out if we are about to overwrite the allocated statically sized buffer Completely kill all the check_bytes (-100LOC) Fix grep sorting (#14207) Fix warning when using r2frida (#14201) Fix the BG glitch () Add usec precission for RSocket.blocTime() and improve r2web:// a bit Remove last load/load_bytes methods (#14196) Fix r2web block times Colors menu should be moved under Edit parent menu (#14194) Fix #14186 - aarj was throwing invalid json Fix some compiler warnings (#14191) Minor fixes for the white themes Fix typo (#14192) it will match zignatures which similarity is >= the given threshold different thresholds for bytes and graph by default thresholds are 1.0, which means it matches only if it’s the exact same zign.diff.gthresh and zign.diff.bthresh are the new eval configs to control that the output of zc[n!] now contains the similarity value as well Use st64 and ut64 instead of size_t Fix mach0 parsing issue Fix OOB write in PE parsing Fix crash in bin_xbe parser Fix crash in bin_java Fixes clusterfuzz-testcase-minimized-ia_fuzz-5740477602594816.dms Set bin_obj on bios_bin load_buffer method (#14188) Fix a few bugs and the speed in the graph (#14187) Added python utility to convert from "dumpbin /exports" output file format, to the .sdb.txt formatted files that radare2 uses. Usage: First run 'dumpbin /exports your_file.dll/.lib > your_file_dumpbin.txt' Then run 'python convert_dumpbin_exports_to_sdb_txt.py your_file_dumpbin.txt > your_file.sdb.txt' #define ENABLE_VIRTUAL_TERMINAL_PROCESSING if it's not defined (#14185) Old behaviour: if you bump asm.arch it resets asm.cpu to default of that arch New behaviout: if you bump asm.arch it keeps asm.cpu if it is set and valid for that architecture Refactoring (#14181) Clean up the part of the code that fixed the glitch in ansi code (#14180) Fix r_cons_get_ansicon leak (#14179) Add r2preload demo program Add missing =SN in the dalvik reg profile Update capstone from Git (#14175) Fix string ref regression in dalvik More refactoring in panels (#14169) Fix invoke-virtual method+X dalvik to be UCALL Solve xrefs to address 0 Fix Windows build (#14167) Fix ansicon detection with UTF enabled (#14166) Huge bytes->buffer on almost all the plugins, break API and ABI \o/ Changed the way RBinFiles are created Changed the structure of the Sdb instance Improve ELF and MZ detection mechanisms to reduce false positives Change all the free/destroy methods to return void Fix "ks" shell Simplify and change the way RBinWrite apis work Fix #14157 - Fix buf regression in debugger (#14162) A few bug fixes and refactoring for panels Use shorter esc seqs for fg and bg gray (#14155) Fix a few bugs of the widget (#14156) Fix a few bugs of the widget A hack for the smoother move in the widget Implement r_cons_show_cursor for Windows (#14151) The current panel can be added to the list in '"' widget (#14145) Add #ifdef ENABLE_VIRTUAL_TERMINAL_PROCESSING (#14144) scr.ansicon: Set/unset flags that enable ANSI esc seq support in Windows console (#14137) Refactor and Complete Anal Hint Printing (#14138) Support scr.fps on non-ansicon Windows Fix assert in wai trying to write an empty buffer Fix null deref in rasm2 -L Do not close IO when RBuffer is freed (#14123) Given the RBuffer_io does not open the file itself, it does not make sense to close it. It's not its responsability to do it. Use r_cons_win_printf instead in dietline.c (#14127) Fix uninitialized bytes issue in 'ao' command when seeking around Minor code cleanup Fix UTF r_sys_pid_to_path Windows (#14121) Fix selection widget on Windows (#14118) Update doc/capstone Update capstone5 from git Fix is.j and implement Cs.j to please r2dec (#14113) Add funny fortune Do not double define typedef RBuffer (#14112) It should be enough to define struct r_buf_t, since the typedef to RBuffer is already specified. scr.ansicon updates r_line_singleton as well (#14111) Fix inverse video esc handling in r_cons_w32_print (#14110) Fix 786af1f It apparently was causing strange keyboard behaviour and crashing Windows. Removed some spaces and spaces->tabs in output.c Use bool instead of int in calls to r_cons_w32_print Fix bg esc handling in r_cons_w32_print (#14106) Use r_cons_w32_printf instead in dietline.c (#14105) Wait ~10s for response to qSupported packet. Send another qSupported (#14104) packet on timeout. Do this 5 times, and then bail out. A few fix for hexdump and disassembly Small typo in =? output Initial band-aid fix for a UAF with two seperate desc pointers (#14094) Also add zcn, zcn! to compare only signatures with the same name. r_socket_connect_unix() is false on non-Unix Fixes AppVeyor build. Refactoring and fix a bug concerned with the cursor (#14089) Deprecate the is_valid_offset() anal callback, that's task for IO! WIP: Fix the Dalvik analysis by skipping fields and imports Fix #14082 - dte output to RCons, not stderr Fix rip-relative lea tests (#14083) Fix and reorder bindings languages Rephrase the README Honor rap.loop on the tcp server when an invalid packet is received Fix 2 problematic format strings on 32bit systems for asm.rsp Upgrade cs5 to fix the arm64 disasm crash Reimplement r_buf_fread/fwrite Add slice buffer and introduce readonly field Do nothing if size is 0 Prevents an overflow when 8 is subtracted from size. Fix ragg2 when patching outside currently existing buffer Implement r_mem_mmap_resize for systems where mremap is not defined r_buf_buffer can be called with no size arg as well Use size_t instead of ut64 Fix rpush regression Track pushed register (note: immediately after lea/mov) to resolve push-ret (#14034) For mov reg, , only track if is immediate value Add R_ANAL_OP_TYPE_RPUSH (UPUSH | REG) Changed so that "rpush" is printed instead of "upush" in case of register push Post release version bump 3.5.1 - Dismay2 @@radare radare released this on May 15 · 706 commits to master since this release Binaries: https://radare.mikelloc.com/release/3.5.1 Fixed hardware breakpoints in the native Windows debugger Introduce the new scr.prompt.popup and honor it in all the color themes ESIL emulation is now 2x faster Fixed a huge performance regression when generating zignatures on big binaries Fix iOS, Android (non-arm64) builds with new NDK r2frida comes with Frida 12.5.3 (v8 enabled by default and working on iOS + Android) Upgrade capstone and capstone5 dependencies Improved cursor mode in panels Initial ESIL emulation for RISC-V Fixed C output for nested structs/enums/unions from pf strings 3.5.0 - Dismay Changes anal Initial support for src/dst RAnalOps for ARM Add anal.ex option, cleanup and improve the Java support Add aae in aaaa Add disasm field to ao command output Fix the arm/thumb switch emulation bug spotted in capstone5 Stop analyzing call to reloc and fix pifcj to honor asm.jmpsub Fix aaft Stack isn't initialized and run aaft after aaaa Fix fcn.rip regression Fill op->src[0] and op->dst in x86 and improve arg analysis with it Include aap in aaaa Add the ability to set some registers readonly Fix #12867 - Identify BP usage in x86 functions to improve var analysis Initialize GP on MIPS when no symbols found with ESIL Implement ESIL for CPUID on x86.cs Implement /am and add initial support for PAC instructions Honor more anal hints in the anal loop Add anal.ignhintbits to only obey asm.bits and ignore hints Optimize r_anal_try_get_fcn by removing fixed size buffer Add an option for anal.loads Load instructions now set a data meta Fix #13596 - Implement afb= and afl= and do some refactor Add more fcn types, new api r_str_fmtargs and af- is af-$$ Add instruction refs array in pdj and agj, for r2dec Make agj work in any offset inside a function, not just the first instruction asm Asm assemble, mem leak fixes Fix x86.nz assembler for the rip-relative LEA Mips asm mem leak bin Fix isStripped() bit for PE bins Seek to the first executable section if there's no entrypoint Implement COFF imports and honor no-entry0 case Implement mw command and fix segfault on old fs support mdmp: fix incorrect data setting in pe sections Use HtPP instead of Sdb in r_bin_filter_sym function Optimize class_get() to make demangling and objc/dex registration O(1) Restore io buffer creation in dyldcache Fix rahash2 -B and -b regression not printing partial hashes Fix heap overflow in macho parser Add 'oba [addr] [baddr]' command handler when m != b Fix oba command when called with only one argument Improvements for rabin2 -H and pfo in macho Fix ELF main detection for ARM binaries Add ELF Identification fields to elf64 pfo build Automatically choose wget/curl/git depending on availability Fix #13765 - asm/anal cant be build in parallel Do not use system-wide capstone when building with sys/install.sh config Code cleanup in RConfig and bring back 'e asm.' for listing cons Fix #13980 - Glitch in panels with bgcolor Code refactoring for the theme based colorization to reduce derefs - dmh commands set Use RPVector in RLineAutocompletion Make p= bars dont use the background color Code refactoring the theme based colorization to reduce derefs Fix #13738 - Autocomplete $aliases core Few mem leak fixes Implement yq,yj,y*,y! and b* Fix binary number to ut64 conversion Implement @@@@@@Strings iterator Fix #13823 - Implement ftj and ft* commands Fix 'e cmd.gprompt=dr=' becaues of the strtok approach Fix bug when quoting a comment Add scr.confirmquit to actually "Confirm on quit" Implement fq. fj. and f*. - show flag in current offset commands Implement the missing bits in the triple-at Add ooc, o., o.q and rename old o. into o: Print "Task finished" only if interactive debug Implement aesuo and add help for all those step until subcommands Initial implementation of dr. and ar. commands Implement drc k=v to set conditional flags by type Fix dg in Linux by using r_debug_ptrace instead of ptrace diff Added missing c2 command + theme support for comparison commands Initial import of the WIP zdiff algorithm disasm Enable capstone5 at configure time option Fix #13975 - aho issue not showing bytes Honor asm.pseudo in 'pi' Add asm.optype Honor ec flag in colorized disasm for names vs numbers Do not switch to v8 by default Implement 'piu' by deconstructing 'pdp' Demangle relocs and add asm.flags.{inline|limit|maxname} Fix asm.meta issues when asm.flags.inbytes is set Fix another bug in asm.jmpsub Fix #13672: Display variables value in the disasm view Add asm.xrefs.code option to show/hide code references in Add some more x86 instructions for pseudo Honor anal.ignhintbits for hintbits Honor fcn->bits in disassembly Update capstone to use the NEXT branch Enable asm.jmpsub by default Add asm.fcnsig instead of making function signature depend on asm.var esil Remove unnecessary RPICK in avr.esil Few UAF fixes Add esil_weak_eq and make an operation flags Add json output to "fd." Call remove_offsetmap only if the flagItem is not new Add realname flag command More improvements in the current flagtags and ftl->ftw Implement ftl and add more flag tags fs Improve the RFS API to support write and unlink operations Implement mlj to list files in json Implement mj and improve 'm / io' vs 'm io /' graph Fix agfg - GML output format fails with high-ids because of Java Improve the graphviz output for traced bbs io oob [arg] sets bin.baddr, then seeks to new entry0 panels Naming tabs is supported Fix dc and F9 Status should be shown on top of the screen Improvements in panels for usability Filter is supported with command f/F Decompiler default off for everything especially tabs working better this way Better key allocations for tabs Initial support for tabs n/N should behave like the ones in visual which are for go next nkeys Auto update synced with every mode change is supported A panel will be allocated for each help msg when it is called Help menu is classified better and help panels are implemented t key is supported in both window and zoom mode n/N commands are supported in window mode t key is supported in Function panel Better algo for t and it is supported in hexdump too t key support for entropy t key instead of tab key is supported in Disassembly panel Comments work in Disassembly panel Interactive message for cursor and insert mode ioCache menu works Do not ask yesno for decompiler if it is not even available Show meaningful messages for invalid operations n/N splitting a panel vertically/horizontally with new user input cmd Show if the cache is on or not on each panel Fix some potential memory leaks Toggle cache boolean of a panel by & Default positioning was not just right instead of [x] to honor the command of deleting a panel C in panel should behave like the one in visual too Add summary and Entropy fire added in the menu Entropy fire added in the menu add Summary under View menu as well Better page scrolling for JK Refactoring plus a little tweak for HL and some fixes Auto update decompiler v!g instead of v!o for consistency Refactoring for performance issue part1 undo/redo seek enabled. Opt the decompiler in panels Fixed a few bugs SAKURA instead of SNOW since it is April:P Handle rotateAsmEmu via ')' in Panels print Add p=a, p=A (and p==a, p==A, prc=a and prc=A) Fix hex.cols usage in prc and pxA and add pxAv for visual Fix #13880: Add dt= Implement pfc normalized types and values Add scr.bgfill config option Honor color theme in p== Fix p== in debugger (only processes current map) Add scr.square and implement the prc= command ala pz,p=.. Implement 'less' command and add 'l?' command Move pava from core to print and honor it in pxa Implement pfc C struct format command Fix large disasm issue with invalids and handle @@{xfs} Hide switch/case refs from pds pf z honors scr.strconv and str.escbslash r2pipe Add support for r2pipe shellscripts search Fix #13988 - Add JSON output format to rafind2 End of archive detection in rafind2 -m Avoid scanning the whole -1 address space. Fixes aap in debugger Android magic numbers until Android 9.x Add io.sky and solve io.maps.x issue happening with aap Fix #13321 - Make /ci [from] [to] find immediates in range Fix search asm boundaries issue sign Make zignatures database more flexible, add realname, comments and xrefs sync Initial rework towards bringing back remoting commands traces Introduce dtdi and update help message types Add vvs command to edit function signature from visual Implement more tx subcommands (type-xrefs) Implement afs! to edit current function signature with cfg.editor Added a command to edit types using cmd.editor tfc->tcc and tcc in sync with t*c Fix afs command, parsing, behaviour and help message Add more basic types from libc Fix null deref in types when invalid db and add more basic libc visual Improve visual mark Implement graph neighbourhood navigation with i and I keys Move the esil debugger into vbE Improve the visual ropchain editor Fix cursor jk in disasm and debugger visual modes Make scr.gadgets true by default Make 'o' do the inverse of 'O' Fix #13673: Sort column results in vbg Fix #13713 - vr rotates between JMP, CALL and DATA reference hints Fixes for flagzones and scr.scrollbar Add scr.scrollbar.bottom Fix callgraph browsing and node folding glitches Handle /* in reg/stack cursor in debugger view Handle +- keys to increase/decrease register value Honor scr.scrollbar in visual graph windows Convert Windows error message to utf8 sys/meson.py: Create r2.bat as alias to radare2.exe Other commits Release 3.5.0 - Dismay Upgrade to use sdb 1.4.0 (#14045) wget/curl downloads use CS_ARCHIVE Code cleanup in capstone.sh afu: improve usage text and argument handling (#14044) Tweak documentation for afu to indicate its argument is mandatory. Detect missing argument in afu: Error out if afu is called without its mandatory argument. Improve argument parsing in af, afr and afn. (#14042) We now skip leading whitespace when looking for the first argument to these commands (the function's name). Previously, the following command af fcn.foo @@ 0x000affe would try to define a function with an empty name at offset "fcn.foo @@ 0x000affe". Improve error messages used by afn and afr. (#14039) When renaming a function fails because no such function exists at the given address, don't include the new name in the error message as it is unrelated to the cause of the error. Couple of mem leak fixes proposals. (#14038) Trim spaces in pfo Special symbols $a,$d,$t could also have a '.' + a number Let's ignore the number for now, it shouldn't cause too much issues. Fix PPC regressions Update capstone v4 and next branches Fix pifcj issue Hide esil warning under esil.verbose to please users Fixed missing parameter for linux i386 (#14026) Honor the entry0 flag and other bug fixes Fix crash in -n In fs_r2: /seek and /bsize and fix flags and config writes fs.shell supports echo and redirections '>' Fix some warnings Fix LGTM builds Add LGTM configuration file Ability to download capstone git as zip Add ?|? to root help Fix ASAN crash (1byte oobread in dex) Use SPCL instead of SPECIAL_SYM Fix issues related to meta.range management Fixes #133660: Dword in the middle Current java implementation of the analysis is not working well RBin.Java doesnt updates the vsizes because it seems to break things. wip for another PR Added anal.ex option to use extensions or not Install r_agraph.h with meson (#14005) Improve |? (#14003) Minor code cleanup in flags and bin (#14000) Fix appveyour thing Call remove_offsetmap only if the flagItem is not new It does not have sense to call that function on new FlagItems, it just slows down things for nothing, since item->offset has not been set yet. force and is_new must be two separate things When setting a flag (which may be even a set of some properties of an existing flagitem) we want to force the update of all the RFlag properties, but remove_offsetmap should not be called when the flagitem is new. So we need to track the two properties separately. Fix some warnings in the linux-debugger code Revert "Fix crash in r2panels config" (#13995) This reverts commit 9a1965f. Fix crash in r2panels config Fix a bug (#13992) #include sdb/ht_uu.h after r_types.h (#13989) Fix capstone5 meson build Fix crash in swift demangler Add --with-capstone5 configure flag Add use_capstone5 meson option Add prc=a in visual So pointers get rebased transparently during buffer reads. This makes objc class parsing work again. Fix #11385 - load offset from project Refix Fixes for ppc analysis with capstone5 ADD BP and SN for the ppc reg profile. Also fix some null derefs on invalid esil expressions Hide warnings Fix vvs and make :> work again to create empty files Fix bugs of cursor for hexdump in panels (#13978) Fixed a few things (#13974) Fix tons of bugs of cursor for disassembly in panels Improve visual panels interaction " to create a new panel without using window mode X must always close a window, use xX to access refs Implement v!t- to delete last tab Implement graph.dummy for toggling the creation of dummy nodes include uint32/64 in JSON output add uint32 and uint64 to ? output Implement search.in=file Improve help msg for "." (#13961) Refactoring (#13955) Fix wtff + argument 0 size issue Fix lang_pipe_run hang in Windows (#13960) Fix lang pipe hang in Windows Fix hang and double-free Fix ml/mL/Lm inconsistency Fix warnings on Windows (#13954) Fix comments in panels (#13953) Add macos pkg uninstallaton script instructions Fix a small bug Fix prc text color intro.md: Fix typo Typo in "Begin" fixed enable ctrl-r to perform backward search fix up/down array backward search Fix a bug of colors menu Show which ascii char is in drr output Fix null deref in canal.c Fix crash in dmh on Frida Fix a bug Sign hash, possible mem leak fix. (#13942) Avoiding creating an entry if the type is not known (at the moment). Fix ms double free crash (#13938) Fix missing newline Fix #13931 - Do not memref mmxwords in LEA Fix wa* command Prevent extra blank line from stderr when using @@@@= with backticked prz (#13935) Colors menu improved a lot in panels (#13936) Improve the bold theme a bit more after testing on another projector Fix a bug in menu and remove unused code (#13933) Add help msg for tn- Do not psuedo the visual ropchain Fix null deref Tabs in panels work heaps faster now (#13929) Refactoring and fix a stupid regression (#13928) Refactoring more (#13926) Fixes #12100: wtf! warns when file size is unknown (#13925) Restore the seek when doing aggv to fix a random bug Fix UB in esil shift Use our own instance of RAnalEsil to fix a crash in aeg Refactoring tabs (#13924) The bit editor is now accessible via the visual browse mode Improve visual assembler usability Remove dup aae Add help msg for om-* Fix glitch in 0 width frames in panels (#13912) Sample: clusterfuzz-testcase-minimized-ia_fuzz-5651817880354816.dms Fix #13907 - pd 1;pdj 100;pd 1 bug Merge pull request #13910 from Vane11ope/vane11ope/panels_1 Refactoring and improving help msg, Fixing a few bugs etc Fix null deref in vbg Fix help msg for $dis? Expose r_core_autocomplete() to the API Decouple Autocompletion from RLine Fix more bugs and add some missing functionalities to the window mode Fix a small bug (#13896) Fix pf? (#13892) Initial work on refactoring RParse Fix r_vector.h for C++ build (#13890) Use RPVector in RLineAutocompletion Fix argc+argv init and clear in RLineCompletion Minor changes for RLineCompletion Check for completion Make r_line_completion_set_weak use argc+argv Use only RPVector in RLineCompletion Reserve in r_line_completion_set Add r_pvector_data() and r_pvector_index_ptr() Remove r_pvector_set_free() Fix pfs handling of {times} (#13884) Fix naming of the public RLine autocompletion callbacks Fix code injection issue in ir* and is* Fixed help text for 'o' and 'G' keys in v! mode (#13875) Use more current enum elf_machine (#13874) Win PE format, mem leak fix (#13873) remove PICK/RPICK from esil remove last use of PICK remove one use of PICK from sh-esil Set overflow flag if pfj z string overflows (#13865) Little mem leaks fixes (#13866) Make couple of keys toggle-able (#13864) Fix 1oobread crash in fire bars list all types in current function list all types in program create a types graph list all functions using the given type Something gone wrong with t key in the stack panel (#13851) pf z, io.unalloc=true: Abort map check loop if the size-0 map is encountered (#13843) Fix inappropriate if checks in panels Fix a bug when pressing t in decompiler (#13838) Changed can_affect_bp a little Fixed xor reg, reg issue Small fix in rargs detection This is more like a workaround In graph, = sets cmd.gprompt and | changes layout, step centers graph t key is supported for register panel Mark pf z strings that overflow into unallocated memory with "ovf" (#13829) Mark pf z strings that overflow into unallocated memory with "ovf" Use RIOBind instead Put cheaper test first Check map read permission as well $ r2 -c '"w hello # world"' -qcps - Add s110 to list of OS in asm.os=? Fix b command parsing (show help if subcommand is invalid) aa* -> aaS Do not run aap twice in aaaa Add missing help for aaf? Add missing entry in the flag/d/meson Minor fixes Fixing most likely a typo (#13817) A few refactoring in panels Fix build Do not use defines mach0 dylib: addr + 16 was the right address Fix r_buf_get_string implementation no_null -> overflow Improve the lima theme This LC_SYMTAB handling is wrong Initial import of the esil-graph command by @@condret Also fix ob command to switch between different objid Press Enter on menu is properly fixed Fix print_string for Windows (#13800) Fix coredump PC not being considered (#13793) Fix infinite loop and memleak in dex (#13794) obL is an alias for iL Rotate between call/jmp/lea in graph and panels with 'r' "char* " -> "char *" in format.c Add to pfj z TODO comment Fix esil test that I broke yesterday (#13777) Fix #13674 - Graph nodes doesn't need to be updated if there aren't any Added missing help text for 'db*' command (#13774) Fixing possible dangling pointer for str empty macro (#13769) #if-0 out some not-working-as-expected code pfj z honors size (#13761) Improve r_buf_buffer and remove r_buf_get_at (#13676) Make r_buf_buffer return a ut8 and the associated size of the buffer Remove r_buf_get_at uses and make it static @@b: overrides the anal hints again (#13756) "char * " -> "char *" in format.c No bgcolor in the sepia calls @@@@@@ # foreach offset+size iterator command: x @@@@@@= [addr] [size] ([addr] [size] ...) x @@@@@@b basic blocks of current function x @@@@@@c:cmd Same as @@@@@@=cmd, without the backticks x @@@@@@C:cmd comments matching x @@@@@@i imports x @@@@@@r registers x @@@@@@s symbols x @@@@@@s sections x @@@@@@m io.maps x @@@@@@m dbg.maps (See ?$?~size) x @@@@@@f flags x @@@@@@f:hit* flags matching glob expression x @@@@@@f functions (set fcn size which may be incorrect if not linear) x @@@@@@f:glob functions matching glob expression x @@@@@@t threads x @@@@@@r regs Fix elf-arm-main regression Fixed help text for visual seek ('o' ->'g') (#13748) Remove use of RPICK in sh-esil (#13747) Fix RAnalOpMask.ALL (#13743) Fixing aab (#13741) Fixing aab Update blaze.c Fix pfj z when z is not at struct start (#13740) Preventing two little segfaults in zdiff Use r_str_escape_utf8_for_json() for pfj z (#13734) Remove all remaining uses of RPICK in avr-esil (#13733) Fix memleak in aef Fixed help text for 'Z' in visual graph mode (#13732) Put pfj z string in value field (#13729) Fix crash in rasm2 -a 8051 -d Add value and label (if available) to pfj enum (#13728) Fix pfj enum when label is not available Remove some spaces in format.c Fix potential DF and irrelevant resource freeing Rollback to capstone4 until all bugs get fixed /am is like /c but only search for instructions and uses R_ANAL_MASK_DISASM Added new op family: R_ANAL_OP_FAMILY_PAC; (see /af) Fix meson build of capstone added bswap to esil in x86 more RPICK removal from avr esil (fmuls and fmulsu) more RPICK removal from avr esil (mul and fmul) Handle comment, prompt and other keys in visual, zoom, cursor modes Do not show the anoying 'cannot undo/redo seek' in panels Several usability improvements for panels More refactorings and bug fixes for panels Replace pointer with an array of variable size (#13706) The elements are directly after the headers, there is no pointer involved. Also, use r_buf_read_at instead of r_buf_get_at in mdmp. HL for move horizontally by a page (10 chars) in panels Zeroize oldslide when leaving top-level pf Couple of new fortunes. Use NESTEDSTRUCT instead Add tsd/tud/ted/tcd subcommands Add newlines to tsc/tuc/tec Honor asm.jmpsub in pdj output (#13701) scr.scrollbar (0=no,1=right,2=top,3=bottom) Cleanup avr-esil for inc and dec (also RPICK-removal) (#13693) pfj: Remove errorneous ]}, after struct nested to 1 level (#13691) Fix random crash on x86.cs on exit when used with r2frida (#13692) better leak on exit than crash in capstone/frida More RPICK removal in avr esil (#13687) Fix #13653 - crash reproduced randomly in graph with white2 theme (#13685) arm: Remove redundant op->type assignment (#13683) Fix menu focus colors in panel menus Rename Pseudo -> Decompiler in panels Deprecate esil_write_internal $z, $b, $c, $p, $o, $s, $ds, $jt, $js, $r, $$ are now ops Remove R_ANAL_ESIL_PARM_INTERNAL Fix segfault and trim whitespaces to fix pd @@x:9090 Use maps and io.va=1 to make it work instead of hacky memcpys Fix p8f and bring back core->fixedblock to make pd/pD@@x:/len work again When in cursor mode in the debug visual view select the reg with tab+arroows arm: Improve glibc entry point signatures Two changes: Add signature for old gcc (4.6) that uses ldr/str instead of push/pop. Mask out the Thumb bit from main's vaddr. arm: Cleanup br instruction handling The cleaned up code fixes the following issues: "bx pc" should always change to ARM mode (bits=32), never Thumb mode (bits=16), since PC is always even. Use (addr & ~3LL) + pcdelta for all PC-relative arithmetic. and removes checks for "b reg"/"bl reg"/"bx imm"/"bxj imm" as these instructions don't exist. arm: Move brace postfixing to bottom of function The analop_esil/analop64_esil functions have to wrap braces around the ESIL expression if there's a condition code. Instead of only printing the closing brace on certain instructions (which may differ from arm_prefix_cond one day), print it regardless of the instruction. arm: Move op analysis from anop_esil to anop This matches how other archs do it, such as x86. Sync elf_machine enum in elf.c with elf_enums pfo Increase autocompletion to 4096 (#13662) Blindfix #13659 - crash in aao with a fuzzed macho Add version information to libr_main Add workaround to fix pfj test output elf.c: Update -nn header format (#13657) Use more r_return and a lot of code cleanup, but still not finished, more PRs to come meson: Change completions installation directory (#13647) meson: Fix deprecation warning in libcore (#13646) cconfig.c: Remove dup line and capitalize for consistency (#13645) Hide one more emulation warning under esil.verbose Invalid asr shift of 32 at 0xdbb6 Fix 2 crashes found with asan in the hexdump Done some TODO refactorings in panels (#13630) Thanks to anal.types.verbose Fixed crash when doing aac and bin->cur is NULL (#13621) Needed for r2dec Add types for android-log apis Add function signature for memmem Add r2white doc/img Improve the gentoo theme Add gentoo theme After release version bump 3.4.1 Fix static, ios and android builds 3.4.0 - Codename: "hufflepuff" Changes anal Add more function sorting methods and reduce unnecessary resorts Fix #13466 - Adjust thumb xrefs on aae Fix axf without args anal_riscv: Implement get_reg_profile Fix #13451 - make afs work Show destination in axf Analyze symbols of type STATIC Add R_ANAL_OP_MASK_DISASM for r_core_anal_op() for now Reduce false positives in aav honoring align and skipping code blocks Remove CALL_IS_EOB, it was experimental in r1, not useful Add warning message when jump table size is invalid Fix #13077 - calling convention args to start from 0 instead of 1 Add avrr and aao in aaa m68k architecture is always 32 bits and big endian Implement jmptbl for Thumb TBB and TBH instructions Fix m68k analysis issues Add R_ANAL_OP_MASK_OPEX Add support for Thumb jmptbl based on TBH Fix glitch found in analyzing jmptbl in debug Avoid passing fixed size buffers in RAnal.fcn, reducing the use of anal.bb.maxsz Fix r_reg asserts issues spotted in the mips emulation Remove redundant key in anal/cc Simplify function guessing Add missing ESIL for ARM64's LDRH instruction Fix null string issue in afi and add afcf in afij Use ARM special syms as analysis hints (#13249) Use fcn->meta.min instead of fcn->addr in fcn rbtree code Fill ptrsize for TBH and TBB Thumb/ARM instructions Update register profile for m68k Update Windows type db x86: add ESIL for BSF/BSR instructions Implement new aesou and abte commands x86 afb+: Update size in fcn rbtree after adding bb Support another type of jmptbl for x86-64 Add fp register as BP in mips analysis Improve CHIP-8 analysis Add Windows types from synchapi.h Add Windows Crypto API types Update Registry API types asm New command: 'wai' write assembly inside the current instruction Initial implementation of the .offset RAsm directive Updated ppc's libvle with latest fixes Add asm.refptr eval variable Implement rasm2 -x to output in hex dwords Add CHIP-8 asm descriptions Fix #13208 - Initial import of the asm.null plugin bin Add dex.h and cdex.h for header structs Parse segment name in -H, deprecate 2 old load methods Adding symbols for 32bit version of mfc140u.dll Fail kernelcache check for non-arm64 kernels Use entrypoint from LC_UNIXTHREAD for the Kernelcache Fix integer overflow that leads to a crash in the DEX parser ELF: returning the full compilation toolchain info Added load_buffer and check_buffer for qnx (#13446) Rebase strings when necessary Rbin remove old load_bytes callbacks bin_art: avoid double free Compute file hashes on request via it and compare if has changed Add bin_qnx.c in Meson.build Add Homewbrew detection Import the XNU kernelcache RBin plugin Add initial support for QNX executables Adding OpenBSD elf sections Fix #13157 - Invalid read in r_bin_demangle_swift Parse objc categories Fix mach0 relocs when no symtab is there build AppVeyor - Update MSVC to 2017, Ninja to 1.9.0 Fix compilation on Android Fix offline build: Remove duplicated curl line config Change anal.maxreflines to asm.lines.maxref Fix + wx sections are highlighted Added missing flags & file paths autocompletions Add more file paths autocompletions Added missing autocompletions for breakpoints related commands Add prompt handling in r_cons_gets Add missing autocompllter} -> bin.str.{purge,filter} Rename asm.bbline to asm.bb.line and disable it in graph Create libr_main and make all binaries use it Introduce anal.verbose and set http.verbose and bin.verbose to false Make function to allow grabbing ther Displaying chunk flags as bits Implement dbg.skipover and fix dss for esil Documentate and fix 'afa' and 'afal' commands Implement V$ to set the program counter ASLR settings little refactor, available as util mean Initial impleming unified Fix #13541 - Automatic radiff2 -p when no bininfo is found disasm Call to same relocs must have same name instead of appending number Improve pf visualization via Cf in pd Fix #13502 - alignment of .dword things Remove reflines2 Fix bugs on E_MASK_D and BD24 (343eeb9) powerpc/vle Fix printing consecutive type links in pd Support asm.pseudo=1 in pad command Sync with libvle (bugfixing & new instructions) Fix #13412 - Improve folded-bb message Fix asm.stackptr when disassembling in the middle of a function Add support to fold basic blocks in graph, disasm and commandline Add chip8 pseudo support Implement UJMP/UCALL color and update themes Fix #13326 - Implement of asm.regsub to replace register names with their role alias Implement visual decompiler and fix the RConfigHold API Show function signature on tailcall jumps On ARM, labeeling the unwind address segment a bit more accurately docs Updating which assert version to be used esil Add cmd.esil.step flags Add symbols.objects and symbols.sections flag spaces format Fix #12041 - fix truncated pf output Add pfo dex|macho and bind structs to offsets with Cf via .iH* fs Rename mg to mc and implement 'mg' properly graph Handle b key in graph, doing the same as in visual Improve interactive graph title with function signature Implement graph.trace and improve dt+ with dt++ for abt Trim decompiler text in graph nodes Implement support for decompiler graphs in 'v #' hexdump Support colors in prx (abusing px) io Consider the map sorting when two map_events are the same nds Add Homewbrew detection optimization Add an early-out optimization for r_isprint (2%-30% speedup) Optimize r_str_bounds by removing an unnecessary strdup Avoid unnecessary RConfig.get('cmd.times') in RCore.cmdSubst panels pP rotate panels ROP gadgets work properly when in-n-out Fix some crashes bunch of menus work which had been broken such as ROP, etc Submenu is also highlighted Menu should not be highlighted when it's not focused Fixed some critical issue in resizing Panels move more flexibly with HJKL Remove some useless messages on the menu performance Remove redundant section lookup in get_strings_range Improve console rendering times Make analysis use io instead of fixed size buffer Optimize analysis by adding more fine-grained levels print prc honors io.unalloc Implement p-e (entropy bar) Fix #13323 - Skip nulls in pxr Show negative reference in pxr, honoring asm.bits projects Fix #13252 - Fix path with spaces in projects rbin Change printf to println refactor Fix #11133 - Remove buf_hex frield from RAsmOp Pass RAnal instead of rbtree to fcn rbtree api search Fix infinite loop in /r, and optimize by not resolving vars when not needed Make -x behave like /x unless mask is provided sync Fix #13234 - Allow reopening of webserver Fix debug rap reg profile setup types Fix #13585 - Changes to tl Load basic types on startup instead of onload Add the ability to open .h files with the 'pfo' Add txf and txf. commands Add a command to list all used types in current function Add err* noreturn functions for Linux, iOS and macOS Fix #13247 - tn and tn- commands visual asm.var.summary should be on if the screen is too small Fix #13333 - Show flag zones in scr.scrollbar ^F,B in visual is used to scroll pages not bytes Add Vvvt - visual function var types Improvements in vbg Vpp"c now properly rotates Visual 'k' honors asm.flags.middle Fix visual mountpointss, move it into Vb Save changed bytes after modifying their bits in vd1 Several improvements in vbg Fix #13283 - Swap g<->o in visual and graph Improve visual tabs switch with decompilation mode Fix graph.layout=1 issue when zoom < 1 windows Refresh on resize and fix mouse input on visual foor Windows Fixes pipes implementation on windows Add support for UTF console input in Windows (#13338) Fix #13301 - Fix crash when unicode support is enabled Alias /dev/null to NUL in Windows Fix dll_ symbols not being analyzed with aa Other Changes Add a call to r_search_kw_reset in r_search_prelude to fix arbitrary heap oob write (#13605) Enforce 32bit and jumps for VLE-PPC ec* shows bgcolor too for fgbg color (#13602) Asan fixes 3.4.0 (#13603) Fix OOB writes in bin_qnx the formats specified in buf_fread were wrong fixed some memory leaks in bin_qnx Another tcc crash fixed (#13599) Fix wrong chopping issue in Cf (#13584) "Cf 1 xxx" <- spaces was not trimmed Should be aliased under the c command prc: Don't Color_RESET if scr.color=0 (#13594) aflsa, aflsb, aflsn, aflss - sort by addr, bbs, name or size Fix help message for rabin2 -h | grep str.filter Fix uaf in config hold (#13591) Fix aflm crash (#13592) Fix oobread in aao Fix Visual jk - prc interaction (#13578) Fix iCj for PE (#13579) Fix #13491 - Handle $aliasFiles in 'cat' and 'rm' Remove some whitespace from cmd_print.c Add get_reg_profile call for RISC-V. In this profile, include the integer and floating point registers. Use the ABI register naming instead of the architectural one as this was chosen in the disassembler. This is straightforward as the user-level ISA only specifies these registers. In RV-I there are no flags, and only a few read-only counter CSRs are accessible from user mode which (I think) don't need to be in this structure. In RV-F/D there is one 32-bit CSR containing a few flags. This addition is not quite enough to get analysis or debugging working, but can be a step towards that, and prevents warnings about being unable to import the register profile from isil during launch on RISC-V. Also update bits to 32|64 instead of 16|32—there is no 16-bit RISC-V. Fix arm thumb endianess (#13572) Fix assert in format print when trynig to retrieve a null register name (#13569) Fix warnings when SN is not defined for a specific arch (#13568) Fix #13552 - Crashes in tcc parser (#13566) Fix some warnings and remove unused code Revert "[WIP] Added jump and fail info to pdJ" This reverts commit 20f875b. from #13481 Remove dead r_core_save_parsed_type() declaration (#13564) Build arch detection for RISC-V (#13560) Make sure that asm.arch and anal.arch is set correctly when starting radare on RISC-V. Remove unused CMP_END_GT() Include aap in aaa (#13543) Include aap in aaa Added aap only if file.type is unknown extracted them to method Add ut*/st* type shortcuts (#13550) Fix io.unalloc off-by-one (#13535) Fix newline after axj output (#13533) Add support to multiline assembly patching (#13526) For example, this line 'OFFSET : nop;nop;nop' (provided in the example patchfile at binr/rabin2/patch.txt) now actually works Fix a minor bug in panels (#13531) Fix build Fix build Fix #13511 - pqz -> pqs and psq as an alias for pqs Rewrite kernelcache check_bytes (#13518) Parse load commands to extract 3 metrics (kudos to @@Siguza for suggesting): use of LC_UNIXTHREAD absence of any library linked against addresses in the upper half of the address space If those are met, then it’s a kernelcache. This just needs to parse all load commands types and vmaddr from LC_SEGMENT_64 (but nothing more) from the bytes. Run aav after aac in aaa When using debugger the file assumed path for the auxillary script was dbg://.r2, without debugger it's just .r2. This patch cuts out the 'dbg://' prefix if found before looking for the auxillary script. Make buf field private in RBuffer (#13473) Fix pemixed build (and include it in meson build) Do not use base_priv in yank, it was wrongly used. Fix jump/fail for Java ops [WIP] Added jump and fail info to pdJ (#13481) Added jump and fail info to pdJ tired of waiting pxA > pCA Fix dt+ command parsing Fix build on capstone3 Fix .travis to build release/prereleases branches too Fix regressiono Handle more X86 instructions to, at least fill the ->type Fix #13367 - last line glitch in r_cons_strcat_at Fix #13367 - Fix offbyone alignment in line printing Improves graph generation times. But it's still called too many times Update capstone-master (#13496) Fix #13485 - Crash in anal_tp (null deref) (#13497) Do not compute asm.stackptr when not requested, fixes slow disasm issue Save aliases in projects Fixing aflqj (#13483) pd 10 > $foo # save the output of pd 10 into $foo $foo # print the contents of $foo (the output) $* # values are now printed in base64 $foo=base64: # is now supported Removing debug output from top of vbg screen (#13479) af+ sets meta.min (#13484) Random fixes and improvements for visual debug traces Add "return" and deindent Fix mulss pseudo (#13470) SP was declared as 'sp' in the register profile which doesn't exist. Stack pointer is a7. Most C compilers for m68k (e.g. LatticeC) use a6 as stack frame pointer via LINK and UNLK instructions, declare a6 as BP Fix clusterfuzz-testcase-minimized-ia_fuzz-5636199282114560.dms Move compiler line to the right place Fix build on newer RISC-V compilers (#13459) On gcc 9.x, __riscv__ is no longer defined but __riscv is. This is documented under C/C++ preprocessor definitions on https://github.com/riscv/riscv-toolchain-conventions Fix ft command crash on Windows (#13457) Change 'sanitiz' from bininfo to be according to alphabetical order (#13456) Fix invalid json regression for compilerr mach-0 empty value for now Optimize slightly r_core_visual_disasm_down() (#13450) Clean up of PR #13441 (#13455) Chip8 pseudo fixes (#13453) Fix #1179 - itj hashes calculation command has fixed (#13441) Fixes #1179 - itj command has fixed, small refactoring on hashes storage, removed obsolete file.sha1 usage Show all the different hashes on it and itj it and itj refactoring. PJ optimizations have made, added more arguments checks Fixes pipes implementation on windows (pipe data was treated as a string instead of binary data so first \0 truncates it) Make other RBuffer fields "private" (#13444) Use r_buf_size to get the size of a buffer, not the private field Use r_buf_seek instead of adjusting the private cur RBuffer field use r_buf_read instead of r_buf_read_at(.., cur, ..) other r_buf_read_at/r_buf_read Fix RBuffer usage in REgg Wrong replace with r_buf_resize Other r_buf_resize fixes style fixes other style fixes Introduce r_buf_tell API instead of using seek other style fixes style style 2 write_at(cur) == write fixes avoid changing test Make most RBuffer fields private Add some fixme comments still use base_priv in some places Simplify WASM code by avoiding duplications (#13443) Simplify code by avoiding duplications Use r_return in consume_r Fix MSVC warning (#13434) Fixes crash in the disasm and assert for the folded bb feature (#13440) Change order of ? And i output (#13418) Completely kill the msvc/ directory and the unix-specific includes workarounds RBuffer should not be const (#13432) Improve Makefile on macOS (#13431) OS can have already be set to other values on user machines, OS= fits better here. FreeBSD get thread name support only from 12.x flavor (#13428) Fix #13000 (#13083) Fix musl compatibility - ARM_VFPREGS_SIZE is defined in asm/ptrace.h (#13427) Fix bug in print_flag_json() (#13425) Make pid.c use PJ (#13424) Fix invalid instruction warning (#13417) store cmpval and cmpreg in every basic block lookup cmpval from predecessors considering TBH’s index register Fill op->jump and op->fail for all branch and jump instructions Handle short and word variants of BSR (BSR.S and BSR.W) DBxx instructions treated as conditional branches Handle PC relative variant of JMP & JSR Bugfix for the decoding of long instructions (code in asm_m68k_cs.c assumed a maximum of 8 bytes, but maximum is 10 bytes) Hide the CC=E warning when no anal.verbose is set Fix Meson build Simplified Update sdb from git Add support for UTF console input in Windows Convert ANSI input to UTF-8 Convert UTF-8 to acp when calling ANSI version of functions Determine if Windows console output is UTF-8 on the fly Add afbF and handle Z key in visual disasm and graph to toggle basic blocks Correct visual graph help to actual behavior (#13406) Fix aclj Fix #13357 - vG and v^ work again as an alias for vgg and vgG Little warning cleanups (#13398) Add C64 Fortune (#13397) Remove noisy and useless warning Remove many uses of max_bb_size Use anal.verbose in more places Fix 2 crashes in the graphs and the analysis Implement and use experimental read_ahead for anal Introduce read_ahead approach for testing io usage and performance in analysis More cleanup and expose a new api for RAnalOp Kill FCN_SDB and some more code cleanup Add bytes_read var, convert some addr + idx -> at and reinstate some len-based checks Ensure invalid insn handling doesn't check invalid data Move "Truncated instruction" err msg to r_anal_fcn_add_bb() Remove gotoBeachRet macro and just use the goto statement /by @@kazarmy @@radare @@ret2libc Fix anal jmp eob code (#13387) Move RAnalOpMask into parameter Use r_buf_size to get the size of a buffer, not the private field (#13380) Use r_buf_size to get the size of a buffer, not the private field Use r_buf_seek instead of adjusting the private cur RBuffer field use r_buf_read instead of r_buf_read_at(.., cur, ..) Fix RBuffer usage in REgg Introduce r_buf_tell API instead of using seek write_at(cur) == write Fix http webserver regression introduced in 81ad0fe UAF/memroy leak fixes proposal. esil_sub should manipulate esil->old and esil->cur otherwise, tests get broken... Drop weird esil_sub implementation, and use the same implementation as esil_add (and esil_mul, and esil_div) esil_add: fail on invalid dst, as well as src Consider the map sorting when two map_events are the same. When two maps start at the same address, it's important to consider the initial priority of the maps, which is given by the id field. Be more explicit in comparison between boolean and integers Remove CYGWIN & MINGW remnants (#13377) The 'display' routine of the malloc_chunk should display each field of flag field as bits. So prior to this proposal, dmhc could yield following information: struct malloc_chunk @@ 0x7f5462ed4000 { prev_size = 0x0, size = 0x1112000, flags: |N:4 |M:2 |P:1, The flags should be displayed as: flags: |N:1 |M:1 |P:1 Update sdb (#13373) Show call hints and propagate types for indirect calls to imp symbols (#13350) Few code cleanups (#13369) Remove dupe api in r_cons bin_bootimg: load_buffer/check_buffer bin_cgc/bin_elf/bin_elf64: remove load_bytes/load + load_buffer Implement check_buffer in bin_cgc bin_coff: load_buffer/check_buffer bin_dex: load_buffer/check_buffer bin_dol: load_buffer/check_buffer bin_dyldcache: load_buffer/check_buffer ao->kv's ownership is moved to RBin through the get_sdb method of RBinPlugin, thus the plugins should not free it themselves. Further usage of thread debug (#13359) Add r_cons_gets() API Fix crash when executing om (#13362) Implement load_buffer/check_buffer in RBinPlugins (#13353) Fix memleaks in MACH0 bin plugin Add check_buffer method to RBinPlugin Add r_buf_read8_at API bin_any: remove load and fix mem leaks bin_art: implement load/check_buffer, remove load_bytes/load bin_avr: add load/check_buffer and remove load/load_bytes bin_bf: load_buffer/check_buffer bin_bflt: load_buffer/check_buffer bin_bios: load_buffer/load_bytes This improves performance especially when there are thousands of sections. Update capstone from git Add r_th API to rename threads in r2 Fix esil assert Added missing autocompletions for project management commands (#13340) Remove extraneous space for scd instruction for chip8 Fix msvc build Remove parenthesis from class size listing (#13238) Cleanup the use of getopt with our wrapper Fix relocations in ET_REL ELF (#12694) Get the section name for SECTION/LOCAL ELF symbols Do not print warning messages if ELF is ET_REL In that case, it's a normal thing that dynamic sections and program headers are not present. Fix the address of the fake PLT table Do not use + symbols if there is no name To be able to add tests for nintendo DS r_bin plugin Add LGTM alerts badge Requires -F kernelcache for now Fix warnings in bin.qnx Add missing noreturn definition for darwin Set hints for ARM special symbols $t and $a Do not set $d metadata Fix #13297 proposal (#13299) Fix #13244 - Assembler support for x86 bsf and bsr instructions (#13303) Avoid assertion in esil traces, speedup some paths (#13300) Fix #13302 - Add .* as an alias for #!pipe but trimming in first space Fix microsoft cc (#13298) Fix pdJ for cmt.right=1 + pseudo=1 Changed http.verbose to false (#13292) Use fcn->meta.min instead of fcn->addr in fcn rbtree code Maintain 2nd rbtree and reinstate _fcn(_addr)_tree_find_addr() FCN_ADDR_CONTAINER -> ADDR_FCN_CONTAINER Use r_rbtree_insert ⧸ delete as appropriate Remove set_meta_min_if_needed from _fcn_tree_probe⧸iter_next Fix memory leak in strbuf. (#13273) Fix memory leak in strbuf. sb->ptr was set to NULL without freeing the underlying data. Use R_NEW instead of R_NEW0, as the memory is initialized immediately afterwards. Call r_*_op_init in r_asm_disassemble/r_anal_op. Avoid splitting obj.* flags into their own flagspace (#13286) Little code cleanups (#13277) Use pj in canal.c Fix hang after ctrl-c use relsub addr kill i2, grab top of list when not in preferred spaces Add r_core_flag_get_by_spaces Remove r_flag_get_i2 and use r_core_flag_get_by_spaces Fix fcn name from flag Better consistency: flag_get instead of get_flag Quickpath for just one flag added annotation to the set_reg_profile for documentation completeness, the FPU registers are really too small and should be 5 words minimal(80bits) TBH. SR is only 16bit but it having 32bits is okay, CCR should be folded in but IDK how this would affect access. Update anal_m68k_cs.c (#13274) EXG (EXchanGe register) is an valid instruction for R_ANAL_OP_TYPE_MOV because it only moves from RegN to RegN. Fix leak in RIO: free iter after removing it from list ls_append/ls_prepend will create a new iter, so we need to free the iter that was removed from the list. Fix some leaks from unit tests PoC: Implement aCef to emulate all calls in the function and add comments (#13266) This PoC requires more refinement to use the API and clean the code Add '$' in v! to set the program counter Honor asm.indent and only toggle in disasm Remove SLOW_IO from core/anal.c Fix crash in canvas, some leaks and random code cleanup (#13254) Filter out special symbols in ELF (#13173) Filter out special symbols in ELF No need to add the special case '\0' Keep special symbols, but do not process them Refactoring Make sure s->type is not NULL Do not print special symbols in rad mode Avoid double check Fix PR's comments Warn when invalid use of r_buf_buffer (#13240) Update list of supported architectures (#13250) Change old references to aC to ac (#13243) $ rasm2 -x 'nop;nop;mov eax, 33;push ebx;int 0x80;nop;mov rbx,48484;nop' 0x21b89090 0x53000000 0x489080cd 0xbd64c3c7 0x00900000 As suggested in https://twitter.com/travisgoodspeed/status/1101966927688318978 BSF: https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf#G5.925704 BSR: https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf#G5.21931 MIPS elf renaming proper sections + little typo. recurseAt: Also update size in fcn rbtree Prerelease travis release (#13189) Add additional tests for release/prereleases Test different plugins configurations Add some libraries to docker image Disable SYS_CAPSTONE for now because there is only 3.0.5 Fix html magic file to respect libmagic's format too < can be used with string so it should be escaped if we want to match the exact string "" Use plugin License when printing rasm2 plugins in JSON format Build with system capstone, but do not run tests because they would fail Fix tiny plugins file to use xtr_fatmach0 instead of just fatmach0 Use clang to compile with ASAN Use b_lundef=false Just test if different plugins configuration build, no r2r Use sys openssl as well Introduce aess to fix the regression confusing step-over and step-skip Properly specify esil step over/or-not in the API to fix regression Initial implementation of aCe no assert on free, also fixes warning Added missing include (#13198) Fix few warnings After release version bump for 3.4.0-git refactored cmd_print.c to use pj.c (#13174) Refactored cmd_print.c to us pj.c Changed to r_str_trim_ro Few code changes, possible errors. (#13192) asm.strenc -> bin.str.enc (#13180) Added missing incude (#13184) Default to unknown type Detect RET Remove fail from always succeeding jump/call Move keypad commentary to LD Vx, K, add to SKP/SKNP Annotate skips correctly Annotate more instructions Refactor p-j using pj.c (#13170) Use macros for common flagspaces names instead of hardcoding them (#13175) Fix NULL pointer dereference in data references analyzer (#13178) Data references analyzer assumes that each function reference maps to a certain section, but this is not the case for raw binary files like shellcodes/firmware images/etc. This bug was introduced in #10117. Fix null ptr deref in axg* (#13177) Flush before closing pipe Change eprintf to rowlog If the user already provides a capstone tarball, the buildsystem should not try to download it again. Use r_str_ncpy instead of strlcpy Make Lisp fortune work with Clojure(Script) (#13161) @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.19 2019/07/20 22:46:00 wiz Exp $ d4 1 @ 1.19 log @*: recursive bump for nettle 3.5.1 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.18 2019/03/26 19:29:52 ryoon Exp $ d3 1 a3 2 DISTNAME= radare2-3.3.0 PKGREVISION= 1 d5 1 a5 1 MASTER_SITES= http://radare.mikelloc.com/get/3.3.0/ @ 1.18 log @Update to 3.3.0 Changelog: Many improvements and bugfixes including: * Improve x86, PPC, iOS, Android, ARM, m68k, wasm, and msp430 etc. support * Fix build under GNU Hurd etc. * Add .NET PE binary * Improve GDB support @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.17 2018/09/08 15:14:56 khorben Exp $ d4 1 @ 1.17 log @Update devel/radare2 to version 2.4.0 Unfortunately I could not test this with devel/radare2-cutter: the version currently packaged in pkgsrc did not build for me (issue with Qt). It should certainly be updated as well to match this version (eg to 1.4) but it now seems to require qt5-qtwebengine, which is only in wip. Also note that this is not the latest version of radare2. Tested on NetBSD/amd64 (7.1). From the release notes for this version: Date: 2018-03-05 Codename: Chusy Chabber Downloads: https://radare.mikelloc.com/get/2.4.0/ Build Find _main in MSVC-compiled MZ binaries Meson: Added sdb building/installation rules Install Headers and .pc Files with Meson Use meson pkgconfig for .pc files Initial sys/purge.sh distro to remove r2 distro packages Fix MSVC dynamic linking Upgrade to latest acr to honor AWK env var Added v810 and tms320 to meson Added x86_udis to meson Debugger/IO Use io.pcache instead of io.cache, improve speed Enable io.cache for afta too under aaaa Added asm.bbinfo for debugging op_pos Implemented wao for arm64 Support RIOBind on RBuffer for fcpy_at Assembly Added an alternative and colored view for varsum Improvements in bin.strfilter and asm.emu Hexagon QDSP6 v6 support - LGPLv3 Bin API More code cleanup in RBin api for file and obj Refactor RBin for file and obj, mach0 headers to stdout izz/izzj now works with -n without using rabin2 Make idpi independent of bin loading New Commands/Eval Implemented @@@@iS RBin.Section foreach operator Implemented @@% suffix operator Refactored asm.cmt* and scr.* Implemented @@B: to temporary seek to the Nth BB Implemented cp. and fix r_sys_copy on mac/ios Fix wao ret* for arm64 Added command to edit ~/.radare2rc Improveed aae to support cstr and pstr like asm.emu.str Implemented support for cstr and pstr for asm.emu.str in disasm Added asm.emu.stroff: always show offset when printing asm.emu string Initial support for dbg.symstore Change all asm.emu* to asm.emu.* Better support for AVR: Implemented opcode masking for improved zignatures Added missing opcode info (val, ptr) added pseudo code for avr instructions movw and st* Better graphs and visual panel: VC rotates scr.color instead of toggling Implement axgj Added < command and make dietline reuse rcons.readChar Improve RCons.readPush and add .readFlush() to make V* happy Implemented r_cons_readpush() new api and fix the V... automation e graph.format=? and missing help for @@@@iS Intial implementation of function call argument display Experimental Cons_INVERT in strings in disasm Added VbC to browse comments Added VbF to browse functions Implement VV) - rotate asm.emu.str in visual graph Added ) key in visual to toggle asm.emu.str Honor scr.color in Vbf Added Visual browser for process threads @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.16 2018/08/22 09:44:59 wiz Exp $ d3 1 a3 1 DISTNAME= radare2-2.4.0 d5 1 a5 1 MASTER_SITES= ${MASTER_SITE_GITHUB:=radare/} @ 1.16 log @Recursive bump for perl5-5.28.0 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.15 2018/04/17 22:29:32 wiz Exp $ d3 1 a3 2 DISTNAME= radare2-2.3.0 PKGREVISION= 3 @ 1.15 log @Add p11-kit to gnutls/bl3.mk and bump dependencies. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.14 2018/03/12 11:15:31 wiz Exp $ d4 1 a4 1 PKGREVISION= 2 @ 1.14 log @Recursive bumps for fontconfig and libzip dependency changes. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.13 2018/02/19 02:54:59 kamil Exp $ d4 1 a4 1 PKGREVISION= 1 @ 1.13 log @radare2: Simplify the package Remove Makefile.common as it is no longer used and merge its content with Makefile. Appease pkglint in buildlink3.mk. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.12 2018/02/18 18:00:22 kamil Exp $ d4 1 @ 1.12 log @radare2: Update MASTER_SITES in Makefile.common (set to GitHub) Newer version are no longer accessible in http://www.radare.org/get/ @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.11 2018/02/18 17:36:58 kamil Exp $ d3 1 a3 3 .include "Makefile.common" DISTNAME= radare2-${RADARE2_VERSION} d5 1 d8 1 d21 1 a21 1 CHECK_INTERPRETER_SKIP+= share/radare2/${RADARE2_VERSION}/www/m/fonts/iconjar-map.js @ 1.11 log @radare2: Upgrade to 2.3.0 pkgsrc changes: - require perl (used in build scripts) - rebse SunOS patches, most of them seem to be merged upstream (untested) - fix a bug with shadowing LDFLAGS in libr_debug (affects BSDs) upstream changelog ================== Release 2.3.0 - use latest acr 1.4 Analysis: Better use of search.in and anal.in and zoom.in - sivaramaa Initial work on CPU specific registers Bin files: Speedup the loading of version info for ELF - pancake Add r2 -X as an alias for -e bin.usextr=false Implement iE., iEj., is. and isj. implementation - Thomas Bailleux Add search.in=bin.sections and @@@@@@ sections Add warning for NSO files requiring decompression Commands: New command cV command to compare values Fix wao nocj and so? and rename swap-jcmp to recj Better support for AVR: AVR default CPU ATmega8 to avoid regressions Expose all the AVR cpu in e asm.cpu Added warning msg for maxbbsz - sivaramaa Windows builds now inclue avr and gb plugins Better Disasm: Implemented the new pdR command that doesnt requires previous analaysis and just follow non-conditional jumps Substitute jmp, call, branch target based on analop (#9198) Filter strings better in disasm with bin.strpurge - kazarmy sh: fix disassembly of branch opcodes (#9238) Added ppc Paired single (#9172) Improved 8051 disassembler and analyzer - Adrian Studer Implement asm.strip to hide instructions matching type - pancake Fix anal.m68k plugin name and handle LINK, UNLK instructions properly Initial pseudo and esil for MMX instructions - pancake Compatibility breaks/improvements: RCoreFile is starting to be deprecated Added dir.prefix (can be changed at runtime), no more compile-time prefix problems! r_str_chop/trim/clean/.. apis unified - api break - pancake Output of rabin2 (and i command) is more compact, so if you are parsing the output of that tool instead of using the JSON format, it may break things in your side. Build system improved (fixes static build and properly generates the archive file, and improved pkg-config files, iOS11 sdk)- thanks whitequark! First step in removing fcn->refs/xrefs - defragger IO layer - pancake Implement of and minor fixes for o? Handle file:// uri as for io.default Implement obq and ob* Add on+ and ons+ support in cmd_open.c Where in time is r_io_open_buffer? Better graphs: - pancake Render color themes properly Print edges before nodes again and add V^ key like VV^ Add VV= to rotate graph.layout, and use less in VV? Implement minigraph disasm scroll with JK keys Implement axtg and bring back the VV<> (xrefs, call)-graph Better graphs, bringback t/f, add ^to seek to the begining and updated help Reuse Vd in VVd, add e,E keys to change graph.edges in VV Other: x86 assembler has been improved by emvivre (adding fpu, hypervisor and priviledged instructions) and unlogic for fixing and extending some instructions. Honor zoom.in for all p= subcommands - sivaramaa Adds wide CRC support (crc8, crc16, crc32, crc64 Initial blind implementation of hwbp for native Linux ARM and ARM64 Visual browser handles imports and symbols r2-2.2.0 Tio De Nadal released this on Dec 24, 2017 Build Run fix-perms at the end of symstall to make umask in vagrant happy Add Vagrantfile for radare2 + ArchLinux Fix almost all warnings from the msvc build Fix ASAN build for High Sierra Added dynamic linking build for Appveyor Debugger/IO Implement io.cache.auto to cache all reads for slow io backends Assembly Add pdJ for formatted JSON disassembly Assemble REX.W prefix for 64-bit immediate mov to memory add sp to mips profile Implement asm.emustack New Commands/Eval Add anal.rnr option Implemented anal.in and optimized lots of anal command Implemented @@.. for temporary partial address seeks Initial import of the Yara's .NET parser Initial import of apia, the api analysis tool for r2 Add disasm filtered/varsub/relsub in aoj Honor s:key in woD Handle pds in VO Add some missing mfc Implement fdw command Implement afd Better pseudo for LEA Handle arm thumb/thumb2 pc-relative in relsub Honor ^C in aar and aac Add /O command Implement dcu. command as an alias for dcu 8126 Added new command afi. to just get the function name Initial import of the /f webui Honor asm.flags in pds Improve the ?Vj and add ?Vc Integration of the Serpent cipher (ECB) 2.1.0 Codename "onhold" released this on Nov 27, 2017 Release 2.1.0 Project: radare2 Codename: onhold Date: Sat Nov 25 2017 12:26:04 GMT+0100 (CET) Website: http://radare.org Tarball: https://github.com/radare/radare2/releases Builds: http://radare.mikelloc.com/get/2.1.0 radare2 2.1.0 comes with -8679 new lines of new features, bug fixes and enhancements. Here some of the most important highlights: This release brings better support for Windows debugging, radare2 filesystem, file format improvements and massive speedup of the interface. Moreover, you can find better working search commands and various bug fixes. File Formats Enhancement of DOS file format handling Add support for Phar Lap TNT PL format Support for the NSO Nintendo Switch static binaries Fix detection of overlay in PE files (#8812) Detect lang=go in ELF binaries Support ELF mips relocs with PLT instead of RELA Autodetect and mount ISO9660 partitions automount and handle hfs from RBin Fix aav for fuzzed binaries with huge invalid sections Parse constructors and destructors in MACH0 format and adjust cbin output Rename mo to mi, and implement mo, o. to open fs files or data as malloc:// Build Build radare2 for all iOS archs and the simulator Major enhancements for the Meson scripts Debugger/IO Enable GDB for Windows (#8877) Improvements of win32 native debugger Improvements of WineDBG interop Assembly Temp fix for #8788 - escape non-ascii chars in ESIL strings Add the ability to show imm values as string New Commands/Eval scr.fps Initial import of asm.shortcut to change position of the hint Initial implementation of the 'ff' command to check the distance between flags afCl to get an aprox count of loops in a function Add aflc command to count functions ffs command /s syscall search command Add o-! command Implement the 'es' command to list eval spaces and keys cfg. str.escbslash added oa and oa* command Implement ahh -> anal hint highlight anal.searchstringrefs -> anal.refstr Implement 'r2pm -i all' as requested Support ternary values in rax2 Implemented Cd- Implement 'r2pm suicide' to self remove r2 from system and home Fix woO command, which is wopO now R_BETWEEN Initial support for structure offsets simple project saving Implement /M and enhance r_fs to autodetect filesystems Implement pj, pj. and pj.. commands Add new 'rh' command to show the filesize in human format ie/iee Flags are now named entry0, entry1.init, entry2.fini Add anal.armthumb to make an specific aae test pass Cs8: add utf8 string Implement /me Implement ELF constructors/destructors parsing Implement bin.b64str to automatically decode base64 strings mdmp is in the core V\ and Vb Implement /ca Implement /c/a and make /c/ work properly cfg.escbslash: Escape the backslash (currently Cs output only) Implement the dor command to set a custom rarun2 profile Enhance the fs.r2 with /version and proper cat/read ops Initial support for ec usrcmt -> user comments have different color Add cfg.escbslash: Escape the backslash (currently Cs output only) (#8855) PDB_SERVER is now RABIN2_PDBSERVER List mountpoints in path via md Implement anal hints for htons immbase Honor supported bits mask in V& Fix #8870 - sn/sp accepts an arg to override scr.nkey Fix #8778 - Honor escaping ':' in ~ and make it smarter to have better grepping' Bring back o+ ob doenst requires binobj id anymore, just the fd is enough Bring back V& with anal hints op->oL, o fd -> op Fix #7120 - Add read/write/exec /r subcommands Add RAnalOp.direction and tweak ao for it Use empty file.path in project rc to indicate new style rc with on commands. Make -p imply -- to further enable this. Added some output to aab and improved the false positives a bit added cfg.debug befroe all those noisy eprintfs Added json feature for oL listing (#8781) Cs..: show string + info about it at current address (#8689) Fixes: https://github.com/radare/radare2/milestone/23?closed=1 r2 2.0 aka "shiny-nibbles" released this on Oct 10, 2017 Release 2.0.0 Project: radare2 Codename: shiny-nibbles Date: Mon Oct 09 2017 17:17:36 GMT+0200 (CEST) Website: http://radare.org Tarball: https://github.com/radare/radare2/releases Builds: http://cloud.rada.re/get/2.0.0 radare2 2.0.0 comes with 31574 new lines of new features, bug fixes and enhancements. Here some of the most important highlights: Numbers: commits: 1042 fix: 571 crash: 30 new: 18 add: 197 anal: 44 leak: 50 esil: 16 debug: 30 type: 18 oob: 0 honor: 20 update: 31 clean: 13 import: 3 endian: 6 indent: 7 command: 68 enhance: 10 diff: add: 54605 del: 23031 diff: 31574 .----------------------------------------------------------------------------------------------------------. | Release 2.0.0 | |----------------------------------------------------------------------------------------------------------| | name | commits | fix | add | honor | leak | authors | |--------------|---------|-----|-----|-------|------|------------------------------------------------------| | | 1042 | 571 | 197 | 20 | 50 | | | binr/radare2 | 44 | 19 | 12 | 1 | 2 | pancake srimanta.barua1 condr3t defragger ... | | binr/rabin2 | 4 | 3 | 2 | 0 | 0 | condr3t pancake dark.cancerbero maskray ... | | binr/radiff2 | 8 | 5 | 0 | 0 | 2 | pancake maskray condr3t xarkes ... | | binr/rahash2 | 2 | 2 | 0 | 0 | 0 | xarkes pancake alvarofe | | libr/debug | 90 | 53 | 22 | 0 | 7 | pancake srimanta.barua1 xarkes rkx1209dev ... | | libr/bin | 114 | 67 | 18 | 3 | 12 | pancake alvarofe xvilka maskray ... | | libr/core | 510 | 274 | 91 | 17 | 28 | pancake maskray alvarofe condr3t ... | | libr/crypto | 0 | 0 | 0 | 0 | 0 | | | libr/cons | 26 | 19 | 3 | 2 | 8 | pancake maskray p4n74 srimanta.barua1 ... | | libr/anal | 86 | 48 | 18 | 0 | 10 | pancake maskray alvarofe xvilka ... | | libr/asm | 75 | 47 | 19 | 0 | 6 | sven pancake maskray wargio ... | | libr/util | 118 | 67 | 16 | 4 | 8 | pancake maskray kazarmy xarkes ... | | libr/egg | 12 | 11 | 2 | 0 | 3 | pancake josediazfer josediazplay wargio ... | | libr/io | 169 | 101 | 34 | 2 | 8 | pancake alvarofe condr3t maskray ... | '----------------------------------------------------------------------------------------------------------' Contributors: 1042 / 69 = ~ 15.101449275362318 33% - 348 pancake 13% - 138 maskray 11% - 124 alvarofe 4% - 48 condr3t 4% - 46 srimanta.barua1 3% - 35 xarkes 3% - 33 xvilka 2% - 31 kazarmy 2% - 24 sven 1% - 20 wargio 1% - 20 maijin 1% - 18 defragger 1% - 18 cutlassc91 1% - 13 antide.petit 1% - 13 rkx1209dev 1% - 12 skuater 0% - 9 guillaume 0% - 8 h4ng3r 0% - 8 ora8 0% - 6 mscherer 0% - 4 karlis3p70l1ij 0% - 4 emacsray 0% - 3 arkamar 0% - 3 julien.voisin 0% - 2 p4n74 0% - 2 lenerd 0% - 2 sajjad 0% - 2 jpenalbae 0% - 2 dark.cancerbero 0% - 2 soez 0% - 2 cgvwzq 0% - 2 mrmacete 0% - 2 josediazplay 0% - 2 asanchez 0% - 2 0xTowel 0% - 2 kc8apf 0% - 2 richardmaciel 0% - 1 dowdyph0 0% - 1 nfontenot27 0% - 1 zhangzhuo 0% - 1 tantecky 0% - 1 amatus 0% - 1 techvoltage 0% - 1 frefreak.zxy 0% - 1 tryger 0% - 1 zadlg 0% - 1 willi.ballenthin 0% - 1 javierptd 0% - 1 burnham.jonathan 0% - 1 xiyou.wangcong 0% - 1 osalvador.vilardaga 0% - 1 queenp 0% - 1 a.kornitzer 0% - 1 torsunov 0% - 1 ben.l.gardiner 0% - 1 misc 0% - 1 dennis+git_swoops 0% - 1 mgregorczuk0 0% - 1 j123123 0% - 1 kijmail 0% - 1 Coder-256 0% - 1 mr.exodia.tpodt 0% - 1 itaycohen23 0% - 1 beren.minor+git 0% - 1 daan 0% - 1 mytbk920423 0% - 1 crd 0% - 1 toshi.piazza This release became our pain in some parts of the body and a huge win. Thanks to condret, alvaro and maskray the long term refactoring on top of the simple IO library (siol) is now merged, tested and everything is rewritten on top of this layer. This simplified internal representation of many operations, proving stacked, multi-layered IO for any part of radare2. New commands A lot of commands were merged together Some commands have been added to ease the manipulation of ascii-graphs Regularely used analysis macro have been moved into commands to make them easier to use Add new command aesb, to step back with ESIL (#8052) Enhance ax, axk lists and axq is the old ax Implement rafind2 -i to identify binaries New Fileformats/io plugins ar:// lib:// winedbg:// New config options Add io.map and remove file and io.maps.range search.in options Add asm.asciidot and remove asm.strenc io.maps is now by default instead of search.in=file Add asm.addrbytes eval config var to make one vaddr unit use more than 1 bytes (#8121) Bring back dbg.trace.inrange in dtc command Remove search.count in favor of search.maxhits in /A , /R , and everywhere else Dependencies updates Update spp again for windows this time Use libtool instead of ranlib for iOS Update sdb Upgrade zlib from 1.2.8 to 1.2.11 Improved interface Fix overlap in graphs Added curved corners in the ASCII graph (e scr.utf8.curvy=true) Add some options to the search command (/), and improve its speed drastically in certain cases r2 -e cfg.newtab=1 to enable the experimental new command completion Show hidden metadata as "hidden" (#8525) Improved disassembly Pseudo-decompiler for AVR and SH4 Add instruction descriptions from Intel Instruction Set Reference Volume 2 (#8209) Analysis Reduce the number of false positive strings Add more analisys heuristics Do not let pdf work on functions with > 4KB of unrelated code Enhance aav for MIPS, af@@@@aav* may be added at some point Initial ESIL support for V850 Avoid dupes in anal.jmptbl for analysis, speedup asm.strenc guess whether string is utf32le, utf16le, utf8, etc Fileformat supports Add IA-64 binary detection (#8645) Add HP-UX binary detection (#8644) Detect kotlin in java classes Initial optimization for DEX Big improvements for MDMP plugin (r2pm -i mdmp) Added resources extraction to rabin2 (#7912) Honor bin.dbginfo for all file formats Add DEX38 support Add LC_CODE_SIGNATURE for rabin2 -H on mach0 bins Add canary detection on OpenBSD binaries ELF Handle .bss section in ELF Add V850 recognition Bindings Add more extern "C" to make C++ users happy Even more commands have a json output now (just append j to them.) Expose r2 environment variables to internal r2pipe calls Add free to RLibStruct & RLibPlugin. (#7991) Updated lang-python and it allows to create RCore, RAsm and RAnal plugins Misc cool stuff Add zsh completion for every r2 tool! Add support for architectures that are using 9bit bytes middle endian (like CLemenCy) Add support for IDA FLIRT signatures v10 (IDA 6.8 and higher) Detect main() for D language Added autoload of zignatures from zigns folder Replace radiff2 -s with Eugene W. Myers' O(ND) diff algorithm Add radiff2 -ss for Levenshtein edit distance More documentation Less crashes, less memory consumed Various fixes regarding projects (removing functions after loading a project is now working) As usual, new fortunes Debugger Add heap jemalloc analysis Add timeless debugger (Record and Replay) for native debug, gdb:// and ESIL emulation !!! Add commands to manage recorded trace sessions Add initial support for hw watchpoint (#8132) Better LLDB support Windows: PDB Autoloading when debugging Support spawning processes with spaces in their path Add the null debugger plugin added =!detach to detatch de debuggee GDB Reading xml target description and parsing into r2 reg profile (#8124) Added reading of executed file name to gdbserver Add env var to control gdb packet size Added automatic loading of symbols from local file (#8006) Added debugging of protocol messages in gdbserver (#7931) radare2-1.6 aka Digital Lettuce released this on Jul 11, 2017 This release comes with major improvements in GDB Client/Server, Windows support, timeless debugger and many stability bugfixes. Also adds support for PPC VLE, Ethereum Virtual Machine, workaround to properly configure the disassembler on PlayStation2 ELFs and added support for the Hexagon CPU. Strings displayed in the disassembly are now more readable and support multiple encodings, utf32 has been added, as well as latin1, utf8 and asciidot. So rabin2 -z will catch wide32 strings too! Thanks to the GSoC guys we get: Windows: many stability fixes, msvc builds automated on each commit, installed done, a new command allows to grab all PDB from all linked libraries at runtime of any process and load the symbols into the disassembly. GDBserver support works, you can use r2 as a gdbserver, but also, many bugs has been fixed to support remote gdb-avr, arm and arm64, so you can now debug the Riscure crackmes without depending on GDB, and also natively debug Android apps thru the gdbserver protocol. New mechanisms for storing the debugger backstep snapshots is making it backstep much faster by using checksumming and storing diffing changesets instead of full dumps for each step. Better integration with the tracing commands of r2. New commands Replaced aea with aea* Replaced dh for dL (#7682) Renewed dsb command for new session format (#7651) Implemented aab* and fixed aab (#7688) Implemented psW cmd to print 32 bits wide strings Implemented axq to list refs in quiet/human-readable format Implemented /ra and fixed /re without arguments to find ALL references Implemented |T to pipe to the scr.tts engine Implemented s== to show flag names, not just offsets Implemented ecH for instruction highlighting support (#7741) Implemented !- and !-* commands to clear command history Implemented sj to retrive seek history in json format (#7663) Implemented dtst and dtsf commands for save and restore sessions. (#7880) Implemented drtj support (#7866) Implemented dsuir command for regex match (#7675) Implemented ~str~? support and fixed #7373 bug (#7669) Implemented dbta to show an ascii-art representation of the stack backtrace 0xffffffffffffffff STACK END ^^^ 0x0000000000000000 STACK POINTER: rsp .------------------------. 0x0000000000000000 | rsp [frame 0] | ; size 0 | ... | 0x0000000000000000 | rbp 0x0000000000000000 | ; return address )------------------------( | ... | `------------------------' 0xffffffffffffffff STACK BOTTOM New config variables Implemented asm.minvalsub variable Implemented aerR and cmd.esil.ioer Implemented cmd.esil.todo Architectures Hack for PS2 binaries (#7636) Initial support for the Hexagon CPU Added support for the Ethereum Virtual Machine Fill half-full-relro detection on ELF binaries (checksec) Fixed and refactor imul for x86.nz (#7832) Rewritten 8051 disassembler PowerPC VLE support with capstone (#7899) Analysis /rc find refs (on arm64 for now) like 10 times faster than using capstone Fixed segmentation fault on bin_mach0 (#7846) Honored cpu on anal_mips_cs and add/fix some mips64 instruction (#7643) Added support for the Ethereum Virtual Machine PowerPC VLE support with capstone (#7899) Strings asm.strenc asciidot (#7898) asm.strenc utf8, guess (#7849) asm.strenc latin1 (#7857) Use r_str_escape for ASCII anal addr strings (#7834) Fixed some string formats for 32bits Implemented utf32 wide32 strings for rabin2 -z Implemented u prefix to wide UTF-16 strings (#7760) Debugger Implemented GDB/backstep dm is more consistent with dmm Implemented support for gdb://host:port/pid (#7759) Added gdbr_{attach,detach,detach_pid,kill_pid} to gdbclient. (#7759) Implemented qRcmd to io_gdb Implemented breakpoints when using f2 pid/tid specific continue with signal for gdb (#7848) Optimized gdbserver mem read, and added gdbserver mem write Implemented gdb reg caching Corrected the attach pid behaviour Use task_swap_exception_ports (instead of get then set) Add new debugger stop reason for user-initiated breaks Stop the inferior when dw is interrupted (#7744) Stop the inferior after attaching Fixed memleak and invalid format string for gdb WIP Serial fix for io_gdb. (#7808) Support for dm commands in gdb (#7770) Support to flush breakpoint command output on every hit Speed up gdb considerably if gdbserver supports no-ack mode (#7763) Support to load bin-format specific scripts from home Corrected gdbserver register-setting behaviour Fixed gdb client packet size (#7703) Features Support towards a visual ESIL debugger VpOd Support underscores in hex numbers Added idp command to load functions from pdb file (#7891) ~? is more consistent in different command constructions Fixed the wtf! command (better va/pa support and avoid infinite loops) Fixed Help for |? like ?|? (#7830) Fixed ouput of aerR/aer* (#7870) Added format parsing for x\ command (#7839) Implemented visual entropy browser with V|| and then h or l keys to move Reduced flashes in V|| aka cmd.cprompt Enhanced icj, ic and id in Dex (#7821) Enhanced the Java assembler (#7706) new radare2-pro theme for the graphviz Enhanced v modifier to rapatch similar to wv (#7806) Implemented alt+backspace and modularize ^w to use unix_word_rubout (#7794) Optimized RFlag.get_at, enhancing fd and honor flagspaces Implemented /rc to check for call refs, optimized for arm64 Implemented plain checkpoint system (#7782) Added reading of memory maps from /proc/pid/maps Added support for SVN sources in r2pm Added support for directories in include Added flow2 to all color themes Added missing socket/serial.c Added serial support in RSocket for gdb:///dev/ttyUSB0:9600 Implemented the support of ag command work with loc functions (#7673) Enhanced radiff2 -D with context bytes in disasm and honor -q for colors Implemented radiff2 -G to run a custom command Implemented Vb to run dbs like key.f2 for consistency Builds Set windows meson default to static libraries (#7840) Reorganized meson version grabbing (#7828) More support for static builds (#7822) Added msvc 32 bits to appveyor Added msvc x64 version (#7814) Fixed msvc to compile with /MT to include redistributables into binaries Fixed Travis linker error (#7783) Fixed whitespaces in meson build file by removing them Ignored meson scripts (#7751) Added VS2017 project generation Appveyor windows-installer integration Fixed ios-sdk builds Contributors Contributors: 310 / 42 = ~ 7.380952380952381 ------------- 37% - 117 pancake 7% - 24 cutlassc91 7% - 22 srimanta.barua1 5% - 17 xarkes 4% - 13 nibble 3% - 12 kazarmy 3% - 12 alvarofe 2% - 8 rkx1209dev 2% - 7 antide.petit 2% - 7 zhangzhuo 2% - 7 sven 1% - 6 kamou.k 1% - 5 sajjad 1% - 4 skuater 1% - 4 github 1% - 4 defragger 1% - 4 mrmacete 0% - 3 j123123 0% - 3 xvilka 0% - 3 adinator1999 0% - 2 wargio 0% - 2 masapastosa 0% - 2 berg.nils 0% - 2 xdg 0% - 2 lenerd 0% - 2 bru.x0 0% - 2 h4ng3r 0% - 1 bluec0re 0% - 1 maijin 0% - 1 chinmay1dd 0% - 1 kenny.macdermid 0% - 1 sferrini 0% - 1 ludwig.maes 0% - 1 qwokka 0% - 1 schrodinger 0% - 1 carcher002 0% - 1 Tzaoh 0% - 1 jmcfadyen 0% - 1 adrian.herrera02 0% - 1 jpenalbae 0% - 1 mr.exodia.tpodt 0% - 1 danitorregrosa r2-1.6 codename "RubyCup" released this on May 30, 2017 Release 1.5.0 Project: radare2 Codename: rubycup Date: Mon May 29 2017 16:35:28 GMT+0200 (CEST) Website: http://radare.org Tarball: https://github.com/radare/radare2/releases Builds: http://cloud.rada.re/get/1.5.0 radare2 1.5.0 comes with 5777 new lines of new features, bug fixes and enhancements. Here some of the most important highlights: NOTE: If you building against MUSL libc you'll have to use this patch (which is already commited in master and will be ready for 1.6 voidlinux/void-packages@@9a5fbd4) Numbers: commits: 352 fix: 184 crash: 3 new: 4 add: 66 anal: 11 leak: 9 esil: 16 debug: 5 type: 0 oob: 2 honor: 17 update: 18 clean: 4 import: 0 endian: 0 indent: 1 command: 16 enhance: 4 diff: add: 15376 del: 9599 diff: 5777 .------------------------------------------------------------------------------------------------------. | Release 1.5.0 | |------------------------------------------------------------------------------------------------------| | name | commits | fix | add | honor | leak | authors | |--------------|---------|-----|-----|-------|------|--------------------------------------------------| | | 352 | 184 | 66 | 17 | 9 | | | binr/radare2 | 15 | 5 | 2 | 2 | 0 | pancake skuater kamou.k | | binr/rabin2 | 9 | 5 | 1 | 0 | 0 | pancake mscherer srimanta.barua1 armijnhemel ... | | binr/radiff2 | 1 | 1 | 0 | 0 | 0 | pancake | | binr/rahash2 | 3 | 2 | 0 | 0 | 0 | pancake skuater | | libr/debug | 26 | 12 | 5 | 1 | 0 | pancake rkx1209dev srimanta.barua1 skuater ... | | libr/bin | 41 | 23 | 2 | 0 | 3 | pancake alvarofe skuater armijnhemel ... | | libr/core | 148 | 73 | 29 | 12 | 1 | pancake kazarmy kamou.k wargio ... | | libr/crypto | 6 | 3 | 0 | 0 | 0 | pancake skuater xarkes | | libr/cons | 19 | 11 | 1 | 3 | 0 | pancake skuater sferrini bru.x0 ... | | libr/anal | 50 | 31 | 10 | 4 | 1 | pancake mrmacete xvilka akochkov ... | | libr/asm | 26 | 11 | 7 | 0 | 0 | pancake skuater sven sajjad ... | | libr/util | 48 | 29 | 4 | 2 | 4 | pancake kamou.k alvarofe kazarmy ... | | libr/egg | 4 | 2 | 0 | 0 | 0 | pancake skuater | | libr/io | 20 | 12 | 1 | 0 | 0 | pancake srimanta.barua1 skuater xarkes ... | '------------------------------------------------------------------------------------------------------' Contributors: 352 / 44 = ~ 8 57% - 201 pancake 4% - 15 kazarmy 3% - 13 alvarofe 3% - 11 kamou.k 2% - 8 skuater 2% - 8 yetmorecode 2% - 8 wargio 1% - 7 mrmacete 1% - 5 xvilka 1% - 5 raul.mikaop.zelda 1% - 5 akochkov 1% - 4 rkx1209dev 1% - 4 sajjad 1% - 4 frefreak.zxy 1% - 4 defragger 0% - 3 h4ng3r 0% - 3 armijnhemel 0% - 3 sven 0% - 3 sferrini 0% - 3 maijin 0% - 3 srimanta.barua1 0% - 3 misc 0% - 3 bru.x0 0% - 2 drozdziak1 0% - 2 Florian Markl 0% - 2 adrian.herrera02 0% - 2 mscherer 0% - 2 soez 0% - 2 xarkes 0% - 1 jpcanepa 0% - 1 asanchez 0% - 1 rayjolt 0% - 1 adinator1999 0% - 1 ebragg09 0% - 1 queueRAM 0% - 1 lonely.ruyk 0% - 1 segarrra 0% - 1 0xdecafbad 0% - 1 condr3t 0% - 1 Tzaoh 0% - 1 daniel.crompton 0% - 1 manouchehri 0% - 1 hewittc 0% - 1 tobias.gross This release characterised with a big amount of various bug fixes, analysis improvements and ESIL improvements. You can use meson build system to build radare2 much faster than using old makefiles buildsystem. Moreover the first batch of GSoC patches landed in it - basic timeless debugging support, msvc build (using both cccl and meson) and improvements of GDB client. Good news - radare2 now has support for compile-time localization. Embedded languages are: English, Catalan Commands Case insensitive grep with ~+ Load .py, .js and .lua at startup time Implemented prc command to print colorful bytes Implemented dmp command for Linux Added drlj subcommand Initial implementation of the flame column graphs in p== Added p==? and honor colors in p== Added pib command for basic block level disassembly Added fss, fssj and fss* Added class name argument to ic iCj - Signatures in JSON format Added S.j command to print current section in JSON Implemented pxj, p8j, pxwj, pxhj and pxqj Set asm.midflags=2 by default Enhanced @@@@ foreach operator Fix Pl command on Win64 Initial implementation of pdR, the af-less pdr Rename Tp to L command to be consistent with iL and oL Fix for @@@@c:/c to be compatible with @@@@/c drr honors scr.color Integrate pss into the visual mode Implemented px0 Initial implementation of dir.zigns and honor in zo Show comments in pxa too Added ev and evj command Honor color theme in p=, add palette rainbow primitives in RCons Config variables Added asm.cmtoff to control showing offset comment Removed | in asm.bbline and fix some glitches when no analysis found Refine asm.varsub for att syntax Added bin.relocs config var to load relocs information at startup if available Make anal.strings unset bin.strings and run aar Fix zoom.byte=? Implemented asm.midcursor Honor cfg.log for analysis metadata (CC, ...) Remove asm.spacy and integrate the logic into asm.bbline when no fcn is found Honor asm.syntax=att for x86 varsub and relsub Analysis changes asm.leahints cmts are now normal cmts Improvements of asm.pseudo for x86 Optimize asm.slow with bin.relocs Honor anal.strings for aae Reduced false positives of switch tables detection aeim doesnt break projects anymore Honor MMX and SSE op.family for x86.cs Now working PPC pblr and fixed b/bc jumps Introduced the anal->cmdtail and enhance anal.jmptbl with it Honor noreturn in aab and removed no exact cases from aab Add MIPS branch likely variants to MIPS CS analysis Fix inPLT check for function analysis Honor class/methods and flags to name functions Fixed a bug in flag renaming enhancing analnysis in some situations ESIL Implement the new REPEAT keyword for ESIL Fix STP and LDP ESIL representation for arm64 Add cset, cinc and fix cmp, csel for arm64 Fix crash in signatures Fix ESIL pstate flags for arm64 Implement >>>>= and fix SAR and SARX instructions for x86.cs Implemented SAR using new esil command REPEAT Add conditions for branching arm64 Fix Branch instructions ESIL arm64 Add ROR esil arm64 Add signed and unsigned extension arm64 Fix >>>> and >>>>= esil instructions for 32bit Add mov.w thumb instruction Fix arm64 ESIL pass the correct param to arm64_reg_width Fix arm64 movz and movk ESIL Add support for setend ARM instruction Add internal flags setting for esil_sub Fix PowerPC's SUBF esil and parse r2pm Remove "set -e" to fix the later gmake check Add r2pm dependencies to Dockerfile Add support for SVN sources in r2pm Formats Add resource support into radare for PE files Fix listing methods of classes in Java bins Fix override shdr with phdr symbols Identify Rust main symbol on mach0 (#7448) Enhanced main detection for MSVC Move jni init function into entrypoints Avoid modifying symbol names in bin/filter Support r2 -B for NES roms Fixed imports program header issue on some ELF binaries Fixed regression when loading a fuzzed DEX binaries Merge tms320c64x plugins into tms320, use e asm.cpu=c64x Debugger Fix debugger in mac hidding the output Fix dmi and its help Implemented dynamic global_max_fast resolution for linux_heap_glibc Implemented search.in=dbg.program and dbg.trace.libs Fix redirection to std[io|out|err] in rarun for mac Implement r2 -X to specify custom rarun2 directives Added new trace session format Fix dmi honoring dmm on Mac debugger Added kill signal for gdb client Bring back drx on XNU, buggy but at least does something r2pipe & rlang Add support for #!python -e and other rlang plugins Modify RLang plugins for Py2/py3 support Support -e -s in #!vala Build Support for Meson and MSVC (runmeson.bat) Honor NOSUDO in sys/install.sh Initial support for compile-time translations (radare2-translations) Random Fixed many JSON outputs Add file.lastpath to fix regression in projects using malloc:// file.path is not polluted with invalid values after opening malloc:// files Support square pixels, cursor and scroll in prc, available in VPP, add hex.pcols Those whose offset are 0 are skipped to avoid overlapping Add align info in DEX payload instructions Fix remaining glitches with recursive help Update equivalent flags for -g (#7551) Fix varsub regression on intel syntax Fix #7492 - Properly Handle x/ argument as address print empty json list when there are no xrefs (#7487) Show all flags in data refs, not just the first one Initial gdbserver support r2 1.4.0 Codename: "no comments" released this on Apr 18, 2017 Release 1.4.0 Project: radare2 Codename: no comments Date: Mon Apr 18 2017 Website: http://radare.org Tarball: https://github.com/radare/radare2/releases Builds: http://cloud.rada.re/get/1.4.0 radare2 1.4.0 comes with 12768 new lines of new features, bug fixes and enhancements. Here some of the most important highlights: Special thanks to: Nibble - for rewriting the signature Defragger - for the new analysis command aab Unlogic - for adding more instructions in the assemblers cgvwzq - for completing WASM support alvaro - better support of arm/thumb mrmacete - static/method and access attributes for objc wargio h4ng3r - xarkes dx - last minute contributions pancake - for almost everything else .-------------------------------------------------------------------------------------------------. | Release 1.4.0 | |-------------------------------------------------------------------------------------------------| | name | commits | fix | add | honor | leak | authors | |--------------|---------|-----|-----|-------|------|---------------------------------------------| | | 432 | 216 | 79 | 10 | 6 | | | binr/radare2 | 11 | 8 | 2 | 0 | 1 | pancake skuater alvarofe 0xdecafbad ... | | binr/radiff2 | 9 | 5 | 0 | 1 | 0 | pancake alvarofe | | binr/rahash2 | 5 | 1 | 1 | 0 | 0 | pancake wargio alvarofe nibble ... | | libr/debug | 22 | 17 | 4 | 0 | 0 | pancake rkx1209dev alvarofe 0xdecafbad ... | | libr/bin | 69 | 44 | 11 | 0 | 1 | pancake alvarofe h4ng3r mrmacete ... | | libr/core | 199 | 93 | 45 | 8 | 3 | pancake nibble maijin kazarmy ... | | libr/crypto | 2 | 2 | 0 | 0 | 0 | pancake | | libr/cons | 13 | 7 | 1 | 0 | 0 | pancake dx 0xdecafbad mr.exodia.tpodt ... | | libr/anal | 75 | 37 | 14 | 1 | 2 | nibble pancake alvarofe jean.quilbeuf ... | | libr/asm | 48 | 31 | 8 | 0 | 2 | pancake sven cgvwzq alvarofe ... | | libr/util | 41 | 25 | 7 | 0 | 0 | pancake alvarofe nibble mr.exodia.tpodt ... | | libr/egg | 0 | 0 | 0 | 0 | 0 | david.polverari | | libr/io | 17 | 14 | 1 | 0 | 0 | pancake alvarofe skuater condret ... | '-------------------------------------------------------------------------------------------------' Contributors: 432 / 54 = ~ 8 46% - 199 pancake 15% - 66 nibble 8% - 36 alvarofe 3% - 15 maijin 2% - 12 sven 1% - 8 kazarmy 1% - 6 cgvwzq 1% - 6 mrmacete 1% - 6 wargio 1% - 5 xarkes 1% - 5 h4ng3r 1% - 5 mr.exodia.tpodt 0% - 4 rkx1209dev 0% - 4 skuater 0% - 3 dx 0% - 3 srimanta.barua1 0% - 3 itaycohen23 0% - 2 sferrini 0% - 2 defragger 0% - 2 ret2libc 0% - 2 david.polverari 0% - 2 neutral 0% - 2 ryarnyah 0% - 2 xvilka 0% - 2 antide.petit 0% - 2 raul.mikaop.zelda 0% - 2 marcel.bathke 0% - 1 wagner.thomas 0% - 1 ahmedsoliman 0% - 1 code 0% - 1 queueram 0% - 1 0xdecafbad 0% - 1 usrshare 0% - 1 Tzaoh 0% - 1 condret 0% - 1 p4n74 0% - 1 yann-github 0% - 1 uls6502 0% - 1 dzcyberdev 0% - 1 tilsche 0% - 1 pkerling 0% - 1 jean.quilbeuf 0% - 1 guillaume 0% - 1 giovanniteratani+github 0% - 1 Sidy726 0% - 1 adrian.herrera02 0% - 1 ixineeringeverywhere 0% - 1 gonzalezjo 0% - 1 esteve.varela 0% - 1 semarie 0% - 1 manouchehri 0% - 1 m4s4n0bu 0% - 1 levente 0% - 1 ewtoombs New r2pm packages New x86 disassembler based on Zyan Add r2com package to comment COM calls Add kaitai support Upgrade Vala Add rust implementation of the new aab command New commands Add tinygraphs (agft) New informaton mode - opex (json information about opcode) Implement command zc Implement Pn+ to add text directly from the commandline to the project notes. Implement s! to show near flag names for history offsets Print out Sa in S*, handy for projects Fix /V* to set flags and not behave like aav Add p=z and bring back the old p=p Add p=[j,c,i,m,s] and enhance p=p Implement di* command Add rahash2 -E xor and support -S - and -S @@ to slurp stdin or files Add CC. help in C? and handle CC.[addr] syntax Implement zaF generate zignatures for all functions Implementzoz to load zignatures from gzipped sdb file Add ss (Silent Seek) to seek without write in the seek history Initial implementation for singlestep command backwards dsb Add r2 -Q for faster quits handy for testing Implement ad4 and ad8 commands to analyze data words. Add fd. command to find flags without delta Add dbh- to remove breakpoint plugin handler Implement radiff2 -e Add P- command to delete projects (currently with Pd) Implement | and |H pseudopipes, see pd|? Implement /f to find the contents of a file inside another Support alt-q in Visual and Visual Insert modes Add $ binding to enable pseudocode in visual graph Commands change Rename z/ to zS. Generate zigns for all fcns Replace the mention of r2's # command with ph Rename esil_stack into esil.ram Remove slurp command '<' Config vars Fix #7108 - Implement anal.fcnprefix Fix #6338 - Add asm.varsum to show variables summary instead of full var list Add esil.stack.{addr,size,depth} config variables instead of hardcoded constants Fix #7162 - Implement esil.stack.pattern Add config var zign.mincc. Rename zign.{min,max} to zign.{minsz,maxsz} Zign matching configurable via zign.metrics.{graph,bytes} Add hex.header configuration variable Add asm.section.sub to the pointer dereference strings in disasm Implement asm.section.sub to prefix offsets with section name in disasm Added custom tab to sdb json_indent function (#7050) Various Implement reentrant thread locks in RThread and use them in core.cmd() Fix escaping of JSON escape in various command Honor midflags in more commands Display the help for the % command (#7283) Improvements in aab Zignatures, major rewriting Integrate crca in rahash2 and r2 Many fixes for Windows and Windows build Many fixes intended for Iaito release OPEX for more architectures Support writing PE32/PE32+ section permissions (#7058) Initial implementation of the new testsuite Adding relro into i and putting stuff in semiorder Fix main detection for several windows binaries Various fix for ARM and x86 assemblers ESIL can now emulate memory mapped devices Add mipsel compiler target Do not exit if pledge fails, just return with disabled sandbox File Formats and Disassemblers WebAssembly (WASM) Bin and Disassembler support Identify Android Wear DEX binaries RAR disassembler and bin plugin moved to radare2-extras Initial support for the NRO Nintendo Switch binaries Lua 5.3 Assembler/Disassembler, Analyzer and Binary Plugin (#3836) (#7197) Initial import of the io.null plugin and doc/siol.md SFC/SNES ROM support Initial implementation of extracting class info from symbols Enhance stripped detection on MACH0 binaries (thanks @@dan1t0 for reporting) Enhance V. to work with firmwares and dumps Added display of strings in disassembly for PIC binaries (#7112) Anal Add arm-ios-{16,32,64} noreturn function types and enhance tail call analysis In addition JMP to imports are considered end of function Add iOS arm/thumb noreturn function type definitions Implement opex for XCore and Sysz Implement opex for m68k Implement opex for sparc and remove the % from the disasm Fix #6697 - aav now is aware of thumb addr Assembler Support assembling the BND prefix on x86.nz branch instructions Add many more instructions for ARM, X86 and ARM64 Debugger Fix #7213 - Retrieve UID on XNU and Linux for RDebugPid Listing processes now show the user-id too Fix r2 -R on mac (rarun2 issue) Improve gdb remote debugging (#7027) Fix #7040 - detach debugger on windows at radare2 exit Disassembly asm.cmtright fixed in graph Fix duplicates in disassembly Zignatures Refactoring by @@nibble Rewrite from scratch Signature types: Graph based, masked binary patterns, referenced functions r_search is used under the hood, honoring search configuration variables Anal masks per architecture SDB storage backend for zignatures zign commands autocompletion Initial work on providing radare2-sigs https://github.com/Maijin/radare2-sigs (MASM32) Iaito initial release A Qt and C++ GUI for radare2 reverse engineering framework - https://github.com/hteso/iaito WASM WebAssembly or wasm is a safe, efficient and portable low-level bytecode format for in-browser client-side scripting (though can be also used in non-web environments). WASM is an open standard currently under development by the W3C. Its initial aim is to support compilation from C and C++, though other source languages such as Rust are also supported. Current version is 0x1 (https://github.com/WebAssembly/design/blob/d9bff35e1389ba11c98ccee8cde72bb2f30e922c/BinaryEncoding.md). Bin support aims to be more flexible than the spec and current implementations, for example, it allows disordered and repeated sections, and tries to keep parsing after an invalid section is fou radare2 1.3.0 Codename: Refactor Forever released this on Mar 13, 2017 Release 1.3.0 Project: radare2 Codename: beta Date: Mon Mar 13 2017 00:37:36 GMT+0100 (CET) Website: http://radare.org Tarball: https://github.com/radare/radare2/releases Builds: http://cloud.rada.re/get/1.3.0-git radare2 1.3.0-git comes with 11868 new lines of features, bug fixes and enhancements. Numbers: commits: 415 fix: 223 crash: 12 new: 8 add: 67 anal: 19 leak: 3 esil: 4 debug: 9 type: 8 oob: 24 honor: 5 update: 13 clean: 5 import: 3 endian: 0 indent: 22 command: 12 enhance: 9 diff: add: 29626 del: 17758 diff: 11868 .-----------------------------------------------------------------------------------------------------------------------------------. | Release 1.3.0-git | |-----------------------------------------------------------------------------------------------------------------------------------| | name | commits | fix | add | honor | leak | esil | endian | authors | |--------------|---------|-----|-----|-------|------|------|--------|---------------------------------------------------------------| | | 415 | 223 | 67 | 5 | 3 | 4 | 0 | | | binr/radare2 | 11 | 5 | 3 | 0 | 0 | 0 | 0 | pancake defragger xarkes alvarofe ... | | binr/rabin2 | 2 | 2 | 1 | 0 | 0 | 0 | 0 | pancake nibble | | binr/radiff2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | binr/rahash2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | libr/debug | 14 | 9 | 3 | 0 | 0 | 0 | 0 | pancake osalvador.vilardaga alvarofe schumblub ... | | libr/bin | 74 | 48 | 17 | 0 | 0 | 0 | 0 | pancake alvarofe h4ng3r wargio ... | | libr/core | 171 | 92 | 25 | 4 | 1 | 2 | 0 | pancake alvarofe schumblub maijin ... | | libr/crypto | 2 | 2 | 0 | 0 | 0 | 0 | 0 | wargio pancake | | libr/cons | 8 | 7 | 1 | 1 | 0 | 0 | 0 | pancake ret2libc skuater itaycohen23 ... | | libr/anal | 50 | 25 | 6 | 0 | 0 | 2 | 0 | pancake alvarofe mrmacete srimanta.barua1 ... | | libr/asm | 35 | 17 | 9 | 0 | 1 | 0 | 0 | unlogic pancake alvarofe laanwj ... | | libr/util | 58 | 32 | 8 | 1 | 2 | 0 | 0 | pancake alvarofe wargio schumblub ... | | libr/egg | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | libr/io | 6 | 3 | 1 | 0 | 0 | 0 | 0 | pancake alvarofe wargio p4n74 ... | | shlr/bochs | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | man | 3 | 0 | 1 | 0 | 0 | 0 | 0 | pancake | '-----------------------------------------------------------------------------------------------------------------------------------' Contributors: 415 / 46 = ~ 9 commits per contributor 41% - 174 pancake 20% - 83 alvarofe 5% - 22 SchumBlubBlub 4% - 17 maijin 3% - 14 unlogic 2% - 12 wargio 1% - 8 h4ng3r 1% - 8 nibble 1% - 6 xarkes 1% - 5 condr3t 1% - 5 mrmacete 0% - 4 xvilka 0% - 4 osalvador.vilardaga 0% - 4 ret2libc 0% - 3 defragger 0% - 3 me 0% - 3 skuater 0% - 3 laanwj 0% - 3 srimanta.barua1 0% - 2 p4n74 0% - 2 zutle.harh 0% - 2 itaycohen23 0% - 2 jeremy.goldstein+github 0% - 2 ahmedsoliman 0% - 2 sferrini 0% - 2 kazarmy 0% - 2 brainstorm 0% - 1 queueram 0% - 1 dx 0% - 1 thor0505 0% - 1 berne.campbell 0% - 1 vlad 0% - 1 cutlassc91 0% - 1 pankajkiitr.ucs2015 0% - 1 antide.petit 0% - 1 david.polverari 0% - 1 susan78965 0% - 1 Ferrancelades 0% - 1 Nevsor 0% - 1 thelightnet 0% - 1 polsha3 0% - 1 dogtopus 0% - 1 bofh666ftw 0% - 1 aneesh 0% - 1 jkrshnmenon 0% - 1 SztfG Highlights Tools r2-indent uses uncrustify and some regexes after it (also supports clang-format) enforces a common indentation syntax across all the codebase (wip) r2-docker supports creating and using a docker image with r2 supports debugging linux-x86-32/64 Initial support for WebAsm Usability Show RBin plugin info with rabin2 -L [plugin] rasm2 obeys R2_ARCH and R2_BITS env vars from r2 Added warning when loading project with different binary Removed useless elf size flag (-nn) and set normal flag size Enhance graph shortcuts rabin2 Display plugin info in a proper structured way for humans with rabin2 -L [plugin]. Fix current rabin2 -L [-j] output. Allow to specify -j before or after -L. Important Bugs Fixed Fixed r2pipe and RCons grep on Windows Avoid 100% cpu usage in Linux debugger Fix c++ demangler crash Fix ASN1 memory bugs (various overflows) Fix #6770 - Handle ^C in pdr and other search commands Fixes for dalvik and analop (imm/ptr) Fix crash in rabin2 -C for mach0 Fix #6806 - Invalid delta diff boundaries Cleanup Removed many scripts in sys/, use r2pm plz Fixed many crashes, bugs and regressions Remove assert in GNU's AArm64 disassembler Update uncrustify config file Refactoring of z/ and zs Various optimizations for RConsCanvas Rewrote r_anal_type_func_guess (~4x analysis speedup) Commands Add: dbf - put a breakpoint into every no-return func Added afxX to afl* (which is saved with Ps) Fix #6747 - Implemented @@@@@@= iterator Implement @@@@/ to temporary set the value of cmd.hit Add rapatch format documentation in wp? pif uses realsize instead of fcn->size New aab command to find basic blocks and identify function heads Vr refresh visual screen Implement aggv like agv, but for the custom graph Implement rabin2 -L [plugin] and iL [plugin] iH support for DEX, MACH0, ELF and PE Implement pxx and pxX for hex-less hexdumps Enhance Vx - visual xrefs browser, with more highlight and less glitches Add Pnx command for project note command parsing New command pdk to disasm a klass Features Say hello to the new compact hexdump (e!hex.compact) Debian confirms we run on GNU/Hurd - Without debugger or r2k Fix #6818 - json indent ~{} honors scr.color Fix #242 - Implement HFS timestamp in pth Fix #6677 - Quoted multicommands issue Fix #7006 - Support decimal in unit strings (f.ex: 2.3K) Initial commit for parsing RTTI structures Magic database is now compatible with GNU magic (BSD already supported) More instructions supported for ARM, ARM64 and X86 Fix #4837 - Support punycode emojis PPC(32/64) ESIL Emulation Disassembly Fix #6456 - Show cursor in data words Print string references even if they contain special characters like newlines or tabs Fix #6611 - Implement ORR for AArm64 Fix #6882 - Tricore byte copy to restore disassembling riscv: Update opcodes from binutils-gdb Update capstone (remove the fix-warns patch) scr.html fixes for disassembly riscv: Return actual instruction length Fix asm.bits when af in arm/thumb Analysis Detect main pseudo-symbol in more PE and ELF binaries Fix #7000 - ELF file identified as BIOS Fix #3022 - Support OPEX for mips, arm, arm64 and x86 Added ARM Thumb ADR instruction to calculate the correct offset Fix issue with arm/thumb bits detection Fixed PC and LEA instruction to correctly resolve references Fix #6884 - Improved ESIL output for various ARM arithmetic instructions Fix #3448 - Add support for multiple-hit signatures use op.stackptr instead of op.val for stack frame size guessing. Enhancements for aab and abb, codename analblaze, using to be O(1) instead of O(n^n) (lulz) Initial implementation of abb - analyze basic blocks in range Binaries Honor rabin2 -H, -rH, -qH and -jH -HH shows the full header in dexdump/objdump format Added PE overlay flag to r2 -nn and in iI Add ASN1, X.509 and PKCS parsers (+ iC for PE) Optimize ELF Symbol loading (> 4x faster) Implement initial iHH for mach0 Parse .NET CLR header structure if found in PE PDB: Add unions support radare2 1.2.1 released this on Feb 5, 2017 Release 1.2.1 Project: radare2 Codename: trustme Date: Sun Feb 05 2017 11:58:50 GMT+0100 (CET) Website: http://radare.org Tarball: https://github.com/radare/radare2/releases Numbers: commits: 58 fix: 33 crash: 3 new: 2 add: 7 anal: 4 leak: 0 esil: 1 debug: 3 type: 2 oob: 3 honor: 0 update: 1 clean: 1 import: 0 endian: 0 indent: 1 command: 3 enhance: 2 diff: add: 2465 del: 1892 diff: 573 .----------------------------------------------------------------------------------------------------------------------------------. | Release 1.2.1 | |----------------------------------------------------------------------------------------------------------------------------------| | name | commits | fix | add | honor | leak | esil | endian | authors | |--------------|---------|-----|-----|-------|------|------|--------|--------------------------------------------------------------| | | 58 | 33 | 7 | 0 | 0 | 1 | 0 | | | binr/radare2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | binr/rabin2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | binr/radiff2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | binr/rahash2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | libr/debug | 8 | 5 | 3 | 0 | 0 | 0 | 0 | osalvador.vilardaga pancake 6bx0lm+7siazd414punk polsha3 ... | | libr/bin | 6 | 3 | 1 | 0 | 0 | 0 | 0 | pancake alvarofe | | libr/core | 32 | 21 | 3 | 0 | 0 | 1 | 0 | pancake 6bx0lm+7siazd414punk alvarofe sven ... | | libr/crypto | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | libr/cons | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | libr/anal | 6 | 4 | 0 | 0 | 0 | 0 | 0 | pancake 6bx0lm+7siazd414punk mrmacete | | libr/asm | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | libr/util | 6 | 5 | 0 | 0 | 0 | 0 | 0 | pancake alvarofe zutle.harh polsha3 ... | | libr/egg | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | libr/io | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | shlr/bochs | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | man | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | '----------------------------------------------------------------------------------------------------------------------------------' Contributors: 58 / 11 = ~ 5.2727272727272725 60% - 35 pancake 15% - 9 6bx0lm+7siazd414punk 6% - 4 alvarofe 5% - 3 osalvador.vilardaga 3% - 2 zutle.harh 1% - 1 sven 1% - 1 polsha3 1% - 1 bofh666ftw 1% - 1 mrmacete 1% - 1 brainstorm 1% - 1 SztfG Commits: Fix #6694 - oobread in P Release 1.2.1 - Trust me s/struct r_anal_plugin_t/RAnalPlugin (#6686) Fix compile warnings (#6687) Fix newline issue in json Use disasm_json API instead of RCore.cmd in pdrj/pdfj pdrj resolves functions like pdfj now Fix pdfj fixes Fix pdfj invalid json issue Fix #6691 - crash in r_strbuf_appendf. missing va_start Fix #6678 - crash in r2 -d malloc://512 - Fix reloc type 1 for x86-64 elf Fix #6676 - rbin warn after re-o Fix rbin warning when ood after o Tweak Visual ?help (#6679) Move o[er]ax to last pos of gpr regs (#6674) Clean up o?/ob? and use consistent fieldname 'objid' for obj/ob/obo (#6675) Update ?description for = commands (#6671) Fix: Fixed regression pointed by #6650 (#6672) Tweak ?help for scr.nkey (#6669) Document H> and H>> in ?@@? (#6670) Fix #6665 - show t in V? Fix mouse paste in some visual cmds when scr.wheel=1 (#6649) Fix gs regressions Fix #6643 - Add privileged notes on dockerfile Use copyfile syscall for OSX in r_file_copy() Fix many dd subcommands and enhance rarun2 -t Use SdbHash within inSymtab mach0.c Coding style fixes Fix #6635 - oobr due to RNumCalc->calc_buf dereference Fix #6622 - oobr due to wrong manipulation of iSq New asm.relsub enhancement Add rarun2 -t to wait for a tty connection Fix ddd (dup2) on OSX, also extend the help message Fixed build on Windows (undefined signals) (#6645) Disable cmd.repeat by default again (causes conflict with ^C) Fix build on OSX Add support non-numeric signal numbers in RRunProfile (#6558) Add support non-numeric signal numbers in RRunProfile Add signal util module Remove old signal_resolve implementation Remove the err from anal types.. thats not noreturn Fix null deref in reglist() when no anal plugs Windows debugger: Added dce command. Fixed dmm commands. (#6628) Use double quotes to make .dmm* work on Windows Fix r2pipe.cmdj('dmmj') command on Windows. Report correct path when listing modules ('dmm') Removed unused local variable Added 'dce' command for windows Escape backslashes for JSON output only Do not include r_debug_native_continue() for CYGWIN builds. Removed unnecessary memset. Added exception for CYGWIN to not escape backslashes in path Escape backslashes in both file paths and map names. Use map name for 'f mod.%s' instead of file path Added more exceptions for CYGWIN Validate escaped strings Release 1.2.1 Fix null deref and infinite loop when building with no plugins More builds fixes for less plugins Add sys/sdk build script (wip) Do not show useless warnings when using raw rbin Fix static build Remove the use of -ggdb Add: coredump refactoring + RDebugMap offset field (#6633) Fix build for capstone3 (thanks @@xtraeme) Fix warnings and reindent ppc stuff Fix disassembly issue introduced in ebb75f3 Use esil when compiled without native debugger Fix: #6616 crash in crash core generation Removing path in shell redirections Fix #4554 stackptr calculation on pdr and graph blocks have their stackptr inherit from parent when visited hierarchically (in pdr and graph) add the global anal->stackptr as a starting value for disasm, defaults to 0 Introducing WebAssembly (#6613) libr/core/cmd.c codestyle fix (#6615) fixed according to https://github.com/radare/radare2/blob/master/CONTRIBUTING.md r2 1.2.0 Codename: HopeBells released this on Jan 30, 2017 Release 1.2.0 Project: radare2 Codename: HopeBells Date: Sun Jan 29 2017 17:28:48 GMT+0100 (CET) Website: http://radare.org Tarball: https://github.com/radare/radare2/releases Builds: http://cloud.rada.re/get/1.2.0 radare2 1.2.0 comes with 5513 new lines of new features, bug fixes and enhancements. Here some of the most important highlights: Numbers: commits: 356 add: 18725 del: 13212 diff: 5513 radare2-extras r2snow - new decompiler! Fix and update capstone, unicorn, duktape Yara2 support is deprecated Updated r2k linux/android module Initial support for parsing/printing structures from dwarf info Moved olly from r2 to here Added rust disassembler plugin for 6502 r2core.js pure JS emscripten generated radare2 api available via npm install r2core Use r2 in nodejs or the browser without external dependencies. Visual mode and Graphs Add shift information in visual bit editor Vd1 Add HUD to VB (class/method browser) Hexdump in visual mode uses pxc to display comements. Add experimental horizontal layout and diagonal lines via graph.linemode/layout Show function+delta in visual title Initial support for analyzing and graphing generic switch tables Draw backward lines with up arrow instead of line Enhance Vx visualization Analysis agf can now be stopped Better ARM64 analysis Stubs mach0 section considered as PLT Support 64bit pointer dereference with ESIL in aae and /re Implemented initial support for 24 bit esil memory operations. add pattern to get winmain from MSVC compiler with SEH Implement afvR and afvW to list var read/write accesses Handle f->bits as anal hints and thumb/arm in aa/aae Add afvj as an alias for afvsj;afvbj;afvrj Add afcc and use afc to sum cycles in a function Add support for Rust in rabin2 to demangle symbol names Speedup aae by ~30% Honor asm.dwarf.file Disassembler Implement asm.pseudo for PowerPC Update capstone from git (fixes for 68k, arm and x86) Retire x86_olly to r2e Add support for the ARM Cortex CPU instructions (e asm.cpu=cortex) Assembler Add cmov* support to x86.nz New instructions for the arm64 assembler (add, sub, hvc, smc, svc, mov, ..) For group 1 instructions with AL for op1 and a constant for op2, nz will now generate the shorter opcodes Debugger Add: dbg.libs/dbg.unlibs for linux Add: support for dbg.follow.child option Improvement of the debugging experience on Linux, Windows x64 and OpenBSD # File formats Load GameBoy ROM sections WinMain is now detected as main Rust demangler support Parse and load DEX debug source:line information Enhanced DEX headers parser Fixed some null derefs in ELF Implement bin.verbose for ELF, PE and MACH0 FatMACH0s are now loaded faster and support bigger files rahash2 Add DES support to rahash2 build system and refactoring Add some hints to optimize asmjs build Add support for SunOS. Add anal.x86_cs for emscripten Remove NDK dependency when BUILD=0 in android-shell Make sys/build.sh accept custom configure flags Implement support for external repositories via r2pm -a Fix mingw32 build r2k for linux Read/Write kernel address space using multiple layouts: Kernel linear address space Userspace/Proccess linear address space Physical address space Print control registers status Print process info Added cmd alias \ for =! see \? for help Workaround for HARDENED_USERCOPY on newer kernels Add support to disable x86 WP on writes Several minor bugfixes misc Fix regex overflow on 32bits systems with 720MB patterns create sys/install.sh with su and correct quotes (#6600) Fix somes NULL dereferences in graph.c Use HTTPS for Microsoft symbol server URL Colorize and enhance f= [glob] and kill f== Add help for /r? Properly document ?x ?x+ ?x- in ??? Add dmi. and dmi? commands Fix #4528 - radiff2 -UDD to diff pdc Add hex.comments variable to config Add get_comments callback to the core api Add comment printing functionality to px Add pxc Implement RCons.jsonpath.grep via ~{json-path} Implement ~... RCons.hud grep style various improvements in the embeded help (?) Autocomplete afC and fix to a Enable http.sandbox by default Massive improvement on radiff2 Add wtf! command Make /r run 3-4 times faster Fortunes Add cfg.fortunes.clippy option and expose r_core_clippy Add fortunes.creepy Add fortunes.tts .---------------------------------------------------------------------------------------------------------------------. | Release 1.2.0 | |---------------------------------------------------------------------------------------------------------------------| | name | commits | fix | add | honor | leak | esil | endian | authors | |--------------|---------|-----|-----|-------|------|------|--------|-------------------------------------------------| | | 356 | 177 | 72 | 4 | 7 | 7 | 1 | | | binr/radare2 | 5 | 1 | 5 | 0 | 0 | 0 | 0 | pancake alvarofe | | binr/rabin2 | 8 | 3 | 2 | 0 | 0 | 0 | 0 | alvarofe pancake mail | | binr/radiff2 | 7 | 2 | 2 | 0 | 0 | 0 | 0 | pancake julien.voisin meep mail ... | | binr/rahash2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | libr/debug | 18 | 10 | 5 | 0 | 1 | 0 | 0 | osalvador.vilardaga pancake skuater xvilka ... | | libr/bin | 36 | 21 | 7 | 3 | 1 | 0 | 0 | pancake alvarofe h4ng3r skuater ... | | libr/core | 169 | 84 | 25 | 0 | 3 | 2 | 0 | pancake alvarofe osalvador.vilardaga maijin ... | | libr/crypto | 4 | 1 | 1 | 0 | 0 | 0 | 0 | wargio pancake alvarofe | | libr/cons | 14 | 8 | 2 | 0 | 0 | 0 | 0 | pancake alvarofe osalvador.vilardaga wargio ... | | libr/anal | 47 | 21 | 8 | 0 | 2 | 5 | 0 | pancake alvarofe killabytenow ahmedsoliman ... | | libr/asm | 23 | 11 | 8 | 0 | 0 | 0 | 0 | pancake sven alvarofe | | libr/util | 39 | 23 | 5 | 1 | 0 | 1 | 0 | pancake alvarofe xvilka mo ... | | libr/egg | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | libr/io | 17 | 11 | 3 | 0 | 0 | 0 | 0 | pancake p4n74 jpenalbae xvilka ... | | shlr/bochs | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | man | 5 | 2 | 4 | 0 | 0 | 0 | 0 | pancake mail sven | '---------------------------------------------------------------------------------------------------------------------' Contributors: 356 / 36 = ~10 commits per contributor 54% - 193 pancake 14% - 51 alvarofe 4% - 15 sven 2% - 8 osalvador.vilardaga 1% - 7 killabytenow 1% - 7 wargio 1% - 7 xvilka 1% - 7 h4ng3r 1% - 6 p4n74 1% - 6 mo 1% - 6 mail 1% - 5 skuater 1% - 4 maijin 0% - 3 meep 0% - 3 ahmedsoliman 0% - 3 laanwj 0% - 3 h 0% - 2 jpenalbae 0% - 2 ninjahackerw 0% - 2 jvoisin 0% - 2 electron.kiwi 0% - 1 securitykitten 0% - 1 kazarmy 0% - 1 fercerpav 0% - 1 guillaume 0% - 1 ditch 0% - 1 eroen 0% - 1 xiaoyinl 0% - 1 mrmacete 0% - 1 venture37 0% - 1 chairkov 0% - 1 polsha3 0% - 1 sre 0% - 1 manouchehri 0% - 1 trogu.davide 0% - 1 cosa.rara97 r2 1.1.0 codename: preccc released this on Dec 20, 2016 Project: radare2 Codename: PreCCC Date: Sun Dec 20 2016 21:46:50 GMT+0100 (CET) Website: http://radare.org Tarball: https://github.com/radare/radare2/releases Binaries: http://cloud.radare.org/get/1.1.0 radare2 1.1.0 comes with moret han 300 commits which are about 8583 new lines of features, bug fixes and enhancements. Most of this work has focused on bugfixing, the most commited modules are Core, Anal and Bin, but there have been lot of commits in other parts in Asm, Hash, Debug, .. Several bugs has been fixed fixed, so it is heavily recomended to update to the last release or use r2 from git directly. One of the biggest addition for this release is a preprocessor for ragg2 and rasm2 (its replacement, spp, is slowly moving forward), and some cleanup of radare2 sources. A long requested feature, recursive help, has been implemented: you can now get help for every single command with the ?* command. Nodes in the graphs can be individually folded in the graphs, and asm.cmtright=0 disasm has been greatly improved to make graphs more readable. There are also news in other repositores. r2k-linux has finally been merged in radare2-extras and it's available via r2pm. Remember that this kernel interface is working on Linux, Android and Windows (32, 64), support for XNU (OSX/iOS) is welcome. Checksums 9d797adc7bdc18138243333e1ede24cc4108936a radare2-1.1.0-android-aarch64.tar.gz 0902b70eba0deb9eca67413c6a3013e43e1907a6 radare2-1.1.0-android-arm.tar.gz 1b9b57c4484cbae9183da66c3079bb6da8249ec1 radare2-1.1.0-android-mips.tar.gz 3794f5b8c9452ff39ffb59003462d80cd9b67f2f radare2-1.1.0-android-x86.tar.gz 9321b9303b44cd4626952b4fbca826e12ca97765 radare2-1.1.0.pkg 2feeeb6cd876182333a814d54b16a4d573202d46 radare2-1.1.0.tar.gz 733525093027a06a753883854dc763bcd6d26ab5 radare2-bindings-1.0.1.tar.gz 717d0317c277127d99bd70cc8bb607053acdc332 radare2-extras-1.1.0.tar.gz 3cf766bbd88eadbe6cb29458b14be9cf60c8783a radare2-ios-arm64-1.1.0.tar.gz 31d17e55a3e7e4257c8d4b0367bb5591d860f4e7 radare2-r2pipe-1.1.0.tar.gz 06a7fc7b8df1cfedc31289234e97896ff1a9161e radare2-w32-1.1.0.zip 3d8eba8523171d5f5ff7960bf6156f97d5feefb7 radare2-webui-1.0.tar.gz 5daf952dd60709a4b8bbd46b771c760acc6d8868 radare2_1.1.0_iphoneos-arm.deb Contributors: Thanks again to everyone who contributed to the project to make this release possible. But special thanks to Alvaro who have been contributing a lot in this release, unlogic for his work on the assembler and preprocessor integration and maijin for maintaining the tetsuite. Skuater has been in charge of keeping the windows support working. 52% - 152 pancake 15% - 44 alvarofe 5% - 17 maijin 4% - 12 unlogic 2% - 7 killabytenow 1% - 5 p4n74 1% - 4 skuater 1% - 4 cutlassc91 1% - 4 ben.l.gardiner 1% - 4 h4ng3r 1% - 4 osalvador.vilardaga 1% - 3 xvilka 1% - 3 simon 1% - 3 gianluca.pacchiella 1% - 3 sre 1% - 3 defragger 0% - 2 jvoisin 0% - 2 mrmacete 0% - 2 ahmedsoliman 0% - 1 nil0x42 0% - 1 elia.f.geretto 0% - 1 bluec0re 0% - 1 brainstorm 0% - 1 anio 0% - 1 ehntoo 0% - 1 shein 0% - 1 asuarezbm 0% - 1 a.kornitzer 0% - 1 mr.exodia.tpodt 0% - 1 dx 0% - 1 asupalai New commands fla to automatically compute the size of all flags matching glob pdC to show comments found in N instructions pir is like 'pdr' but with 'pI' output dmS for listing sections of mapped libraries ?* recursive help . counts chars New variables $fl to get the flag length (size) at current address. It's equivalent to fla; pD $l @@ entry0 radare2 Add autocompletion after @@ Implement scr.breakword, to stops the console's output upon a particular word. Add $fl in the ?$? help The embeded documentation has been reviewed and improved Implement bin.debase64 and RABIN2_DEBASE64 in RBin for r2 and rabin2 rarun2 Support backticks as an alias for ! Added pseudo tty for listen and connect Android Refactoring of the DEX handling code Dalvik analysis and bin parsing enhancements ESIL support for Dalvik File format Optimize the process of loading fat binaries Add: Initial support for bFLT v4 (uclinux) Add support for ARM64 PE binaries handle more data sections in objc mach files Build system Several useless ./sys/*.sh scripts have been removed Improve Mingw32 build script Analysis Honor hints in disasm, anal and emulation fix djnz jump target miscalculation Set ATmega8 MCU by default Fix issue with noreturn analysis Move relocs to the fake virtual address Fixed fcnline issues Various ESIL improvements for a lot of architectures Adds a lot of different function signatures, for every major (and some minor) operating system The DWARF parsing and display speed has been multiplied by 120. Some misc fixes for libmagic Add a syscalls flagspace for aae Properly deinitialize the anal.trace after afta Debugger and tracer Add option to stop syscall tracing -before- the syscall is executed Register handling refactored and add SN in all reg profiles Autoset swstep in more targets Architectures Greatly improves AVR support Fixes for z80, x86, arm, dalvik and others Assemblers values that can be expressed with 4 bits care outputted with shorter instructions. Initial support of linux-arm-32 for ragg2-cc Added spp as a preprocessor for rasm2 r2 1.0.2 another minor bugfix release released this on Nov 10, 2016 Fix warnings in r2 -AA Fix aeim- deinitialization Add H> HTML pipe Fix some COVs Fix r2k for Android Fix another CORELIB issue Add missing SN entry in the linux-arm64 regprofile r2 1.0.1 minor bugfix after 1.0 released this on Nov 10, 2016 This minor release fixes a build issue that some packagers have reported us and fixes the izzj command Thanks @@alvarofe and @@stef ! r2 1.0.0 / r2 1.0 aka "Finally" released this on Nov 9, 2016 Date: Sun Nov 06 2016 14:34:18 GMT+0100 (CET) Website: http://radare.org Tarball: https://github.com/radare/radare2/archive/1.0.tar.gz radare2 1.0 comes with 20122 new lines of new features, bug fixes and enhancements. Here some of the most important highlights: The project have finally reached 1.0. What does it mean? It means that 10 years have passed and the ecosystem changed enough since its inception that it requires a new rethink of the versioning numbers. Pushing a new release every 6 weeks, increasing 0.1. And adding +1.0 after every r2con. The 3rd version number will be used in case of emergency because of a buggy release or a backported security fix. In this case a +0.0.1 will be released. The community evolves in a pretty healthy way, and contributors come and leave over time. This release conforms the base for the future of radare, providing a more structured and predictible evolution of features and apis. In addition. The r2pipe bindings proved to be more than enough for most needs of our users, more stable, available on more languages and faster than the native bindings. So this is the recommended way to script r2 or write tools that interact with it. Language bindings will be still maintained, but it requires some focus, which is actually low, in the sense that I'm just fixing when the build breaks. --pancake Major contributors pancake keeps owning > 50% of the commits alvarofe major contributor, bugfixer mrmacete implemented the long-standing need of recursive emulation support killabytenow kept pushing nice AVR ESIL updates Unlogic focused in RAsm maijin for remembering all the issues and mangling the testsuite h4ng3r worked on fixing bugs in the bin+anal of android apps sre for coming back from debian land Known Bugs Slow on big files - after analyzing a big file (>1MB) the visual mode can become pretty slow, this can be "optimized" by disabling asm.slow, but it must be approached in a proper way to avoid O(n) requests to Flags, Functions, Basic blocks and other information that is requested many times. Project structure has changed, they are upgraded when saved, but there must happen some data loss. Next releases should improve on that. Collisions in hashtable - some very rare situtations may lead to a hash collision, this is fixed in another branch that updates Sdb, but it's not stable enough to be merged. Debugger is working but could be much better, the main issue is actually the regression test. You may want to use r2frida or r2lldb from NowSecure to debug with r2 when r2 is not enough. Binary headers are not easy to visualize or patch, there are tools for doing that, but next releases will make this situation better. Signature matching is not working as good as it shuold, new signature definitions will appear in the next release, as well as some enhancements and speedups. Highlights: More commands are now autocompleted Refined and new color themes (CGA!) Added support for menuetOS/KolibriOS binaries Fixed bugs and enhanced PE, MACH0 and ELF parsers COFF symbols are now parsed properly Support DOS4GW executables Implemented sort (by nth column) in the internal grep ~$[n] Projects are now contained into a single directory and support GIT and ZIP integration Fixes in p[?] -X (negative offsets) Add the ?O command to enumerate all mnemonics pdr now supports asm.emu Add CCf to list all comments in current function Added asm.capitalize Initial implementation of io.pava Add ik* command to load bin headers info, and use Cf for that ragg2-cc now supports linux-arm64 via the NDK Support more instructions and various fixes in assemblers Fixed all license issues reported by Debian Allow r2pm to support tarballs, run commands and cd to repos Function signature parameter matching simple recursive emulation in graphs asm.decoff to show offset in base 10 instead of hexa utf8 graphs Better Android support r2k support for linux r2pipe hightlights NodeJS api broke backward compat but standarized callback consctructions Support asyncawait, promisify and other modern JS stuff Added JNI r2pipe for Java Added DllImport for .NET Add support for Groovy, Clojure, PHP, OCaml Added JSON support for Nim Updated Perl module Support sideloading binaries via r2pipe (via .getBuffer and setBuffer) Commits: Autocompletion Add autocompletion for et and ec Add autocompletion for wxf and wtf Autocomplete eco color themes Themes Complete xvilka theme Enhance white theme Fix dark theme Add new theme CGA Make the lima and pink themes look as lima and pink Update the ogray theme Ansify + update rasta theme Projects Fix error messages in project_save Fix #6017 - Pn projects notes ported to the new projects Implement project upgrading and remove old code Implement prj.zip and fix prj.git Fix #5141 - Initial support for prj.git Implement prj.files and fix some bugs in project listing and saving Projects are now completely contained inside a single directory Saving/retrieving functions stack in project file (#5973) Fix #5952 - Handle scr.null in projects File Format Add support for MENUET{00,01,02} binaries Add bin.menuet plugin Fix #6106 - better parsing for COFF Replace mach headers from AAPL to LLVM Fix ELF support for 32-64bit relro relocations Fix Dalvik imports and symbol ordinals Add various symbols in bin_nes MZ remove check against dos_file_size in mz parser Enhancement of MZ Fix #6045 - Check entrypoint to accept raw MZ bins Macho Support weak framework libraries in mach0 parsing Add more ARM cpu subtypes for mach0 Add ios-cydia32.sh script to build radare2-arm32 cydia package Fix #4556 - use jetsam limit to bypass launchd memory restrictions on iOS Debugger Send KILL to child on ^C in dc when dbg.consbreak is set Fallback to oo when ood fails Initial implementation of the RDebug.io plugin Disassembler Update capstone from git Move z80 non-commercial to r2e Remove m68k anal plugin - Gets moved to r2e to be installed with m68k, capstone by default Fix ljmp with immediate segment:offset (#6125) Fix pd -N issue, with correct offset for bw-disassembling (#6016) Rework of X86_INS_XADD. It is now basically an X86_INS_XCHG + add. (#5996) More memory AVR operations (LDS/LPM) Fixed and added opcode descriptions (#5942) Fix opcode for 64bit instr with 32bits regs Accept sreg:[x] and [sreg:x] syntax MIPS Fix mips emu function resolution in disasm (#6100) ARM Arm chars are unsigned by default Add arm shift ops FIX #5482 (#6081) Fix "orr" in ARM assembler (#5958) Fix #5874 - Implement asm.relsub for arm.cs Do not run aav in aa on ARM Commands and evals Massive improvement of pdS Add CCf to list all comments in current function Add Cr command to run commands in meta for disasm Add Sf as an alias for S 0 0 foo mrwx Implement ?O and r_asm_mnemonics() new API Implement ?Od to list all mnemonics + description Implement Po& and 2 -tp to load projects in a thread Add asm.decoff Add asm.capitalize, for those who are nostalgic of softice Initial support for io.pava implement ahb-, ahS-, ...etc Add @@@@c: as an alias for @@@@= Add asm.midflags=3 (symalign) Add r2pm ls|cd Add S.-* to remove all sections in current address Fix S-[id] Implement rasm2 -s? Initial implementation of pC (column disasm) Implement @@i: for temporary instruction seeks Add ik* command to load bin headers info, and use Cf for that Add asm.minicols config var for pCd Implement column sorting in RCons.grep Now ~: operator support ranges and negative values ~:-1 show last line ~:-2 show line before the last one ~:..3 same as ~:0..3 ~:2..8 show lines from 2 to 8 ~:2.. show lines from 2 to the end Implement scr.linesleep and scr.pagesize for fancier demo output Honor varsub and relsub with asm.ucase for parse.arm Refactor dmh Implement wts to send data to socket Add dr8 and more commands for the RDebug.io plugin Show instructions in /A and add /A[jq] Use RStack in r_cons_push/pop Fix #5975 - Honor asm.varsub and asm.relsub with asm.ucase Initial import of io.tcp + rsocket cleanup Add bash autocompletion support Fix debruijin arguments meaning and uses (#5914) Fix wxs command Enable graph.nodejmps by default (#5904) Specify row to start sorting with ~$[n] Fixes Fixes NULL deref and oob Fix coverities Fix pdrj JSON Fix #6126 - r2 -f work with -c Fix wt usage Fix another memleak in pdr (#6059) Fix #5924 - r_flags -> r_flag Update and fix LGPL Z80 disassembler (#6009) Fix #3546 - Enhanced support for RCons line grep Removed strcasestr() and bzero() moved to memset() Fix #5909 - r2 -o is now -k Changed r_list_length to use list->length Changed the code to use C API instead of forking rabin2 or create a new core instance when searching strings. Fix cannot find function at issue on some functions Fix #5986 - use RStack in r_cons_push/pop Fix call xrefs in arm+thumb Fix div by zero with scr.pagesize and matrix theme Fix #5974 - reflines not shown for last disasm line Fix #5992 - Honor ^C in tcp:// Fix syscall resolution for linux-arm-64 Honor bin.strings Implement http.log and http.logfile Fix #5997 - Do not permit xrefs on invalid addresses Fix #5968 - search string when malloc://X + wx Initial implementation of flag zones Updated various opcode descriptions (#5948) Ease GIT/GPG integration Fix esil manpage Fix issue in aeso Implement support for recursive help ?* Use RIODesc.detach when serving from RCore Implement RIODesc.detach() Fix call rX hotkeys glitch in disasm Add utf8 rune support for RCons.canvas Correct offset for backwards disassembling with pd -N Radare2 tools Fixing help issues in rax2 rabin2 Implement LC_MAIN and PAGEZERO in rabin2 -C mach0 Fix filesize for mach0 in rabin2 -C Make more visible the relation between r2's i and rabin2 ragg2 Add linux-arm64 sflib support for ragg2-cc Initial support ndk-gcc in ragg2. Tested for arm64 rasm2 Add support for .endian rasm2 directive Support /**/ in a single line Fix /**/ comments in rasm2 Initial support for .align in rasm2 Support /**/ in rasm2 -f Add support for short jumps in nz Add arm shift ops Update and fix LGPL Z80 disassembler Add segment register handling in nz assembler Assemble 64bit byte mov correctly FIX 6042 Analysis Make anal hint printing more grep friendly Fix #5935 - improvements on ah command Actually use arg_size to advance the stack pointer Nice error display: unk_size, unk_format or unk_size_format Fix issues in emuwrite call args in disasm (#6087) Fix #4497 - Recursive function emulation Fix #5860 - axtj relsub (#5964) Fix aei help text (#5949) More AVR anal ops (#5888) Fixed LCALL for x64 (#5930) Fix dd IX instructions - although only seemed to happen on OSX, not on linux. Fix ed op and fdcb ops Fix fd ops with bad type flags Remove invalid instruction "in f, [c]" which is not referenced in http://clrhome.org/table/ Fix bad offsets to ops following removed one Set zf on arm (16 / 32 bits) compare (#6024) Add more arm64 regs Fix movk esil Add long-to-double instruction for anal.dalvik Fixing LCALL for x86 16/32 bit (#5910) Fill the op.type field for STOS and LODS on x86.cs Check that register is not memory i.e. [eax] to generate correct opcode Improved ESIL for x86 Disable syscall emulation in esil by default Add sync optype and refix the jmphint glitch Added early returns (#6002) Remove invalid anal str for const-class instruction. Fix #5890 - Assume pushed executable addresses as CODE references Fixed LJMP, added support to segments in JMP, fixed LCALL. (#5920) Graphs Recursive graph emu (wip) Add recursive reg arena in graph Force comments on graph pds because pds works by parsing also the comments especially for emu strings and symbols Add edges in afll Fix #6092# Add indegree and outdegree in afi and afij Use tinyrange to improve times r2pm Do not recommend to update after r2pm update Add R2PM_TGZ for r2pm Add R2PM_OLDPWD var for r2pm Add R2PM_SUDO and enhance r2pm -c Fix prompt in r2pm cd Types Fixing some type error and remove old databases Added windows function prototypes Add some libc functions to types info (#6013) Added more functions for linux/osx Use anal types sdb in emuwrite disasm hints (#6086) Resolve function calls and arguments type Add size_t for 32 / 64 bits Change char * to z instead of *z to work with both register and stack calling conventions Fix parsing error with const Add WORD and PADDR in types-windows Add kernel,processes,.. in types-windows Update linux-arm-64 from android definitions Numbers: commits: 366 fix: 186 crash: 7 new: 8 add: 77 anal: 18 leak: 2 esil: 6 debug: 7 type: 16 oob: 7 honor: 11 update: 13 clean: 9 import: 2 endian: 3 indent: 4 command: 12 enhance: 5 diff: add: 45928 del: 25806 diff: 20122 .---------------------------------------------------------------------------------------------------------------------. | Release 1.0.0 | |---------------------------------------------------------------------------------------------------------------------| | name | commits | fix | add | honor | leak | esil | endian | authors | |--------------|---------|-----|-----|-------|------|------|--------|-------------------------------------------------| | | 366 | 186 | 77 | 11 | 2 | 6 | 3 | | | binr/radare2 | 7 | 5 | 0 | 0 | 0 | 0 | 0 | pancake alvarofe SztfG | | binr/rabin2 | 5 | 1 | 2 | 0 | 0 | 0 | 0 | pancake alvarofe Hi-Angel | | binr/radiff2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | pancake | | binr/rahash2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | pancake | | libr/debug | 24 | 10 | 5 | 1 | 0 | 1 | 0 | pancake alvarofe dromero.perez killabytenow ... | | libr/bin | 58 | 29 | 14 | 0 | 0 | 1 | 0 | pancake alvarofe h4ng3r maijin ... | | libr/core | 164 | 88 | 31 | 7 | 2 | 1 | 0 | pancake alvarofe mrmacete maijin ... | | libr/crypto | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | libr/cons | 24 | 11 | 4 | 1 | 0 | 0 | 0 | pancake alvarofe | | libr/anal | 86 | 47 | 29 | 3 | 0 | 5 | 0 | pancake alvarofe killabytenow maijin ... | | libr/asm | 42 | 28 | 7 | 0 | 0 | 0 | 2 | pancake sven alvarofe SztfG ... | | libr/util | 47 | 25 | 8 | 2 | 0 | 0 | 0 | pancake alvarofe ret2libc bluec0re ... | | libr/egg | 2 | 1 | 1 | 0 | 0 | 0 | 0 | pancake alvarofe | | libr/io | 20 | 11 | 0 | 1 | 0 | 0 | 0 | pancake alvarofe | | shlr/bochs | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | man | 3 | 2 | 1 | 0 | 0 | 1 | 0 | pancake sre Hi-Angel | '---------------------------------------------------------------------------------------------------------------------' Contributors: 366 / 31 = ~ 11.806451612903226 54% - 198 pancake 18% - 66 alvarofe 5% - 21 maijin 4% - 15 killabytenow 2% - 10 mrmacete 2% - 9 unlogic 2% - 8 h4ng3r 1% - 5 ret2libc 1% - 4 SztfG 1% - 4 ahmedsoliman 0% - 3 lottmann86 0% - 2 mr.exodia.tpodt 0% - 2 cutlassc91 0% - 2 mo 0% - 2 sre 0% - 1 defragger 0% - 1 dx 0% - 1 dev+git 0% - 1 maykeye 0% - 1 marion-m 0% - 1 qwokka 0% - 1 noahshihabi 0% - 1 kalianon2816 0% - 1 bluec0re 0% - 1 avinash.mankoo 0% - 1 Krishath 0% - 1 philipp.B.610 0% - 1 Hi-Angel 0% - 1 dromero.perez 0% - 1 alex.darredevil 0% - 1 b1ack0wl radare2 0.10.6 released this on Sep 27, 2016 codename Sleepy Autumn Project: radare2 Codename: Sleepy Autumn Date: Mon Sep 26 2016 23:59:11 GMT+0200 (CEST) Website: http://radare.org Tarball: https://github.com/radare/radare2/archive/0.10.6.tar.gz Tarball2: http://rada.re/get/radare2-0.10.6.tar.xz radare2 @@ comes with 10526 new lines of new features, bug fixes and enhancements. Here some of the most important highlights: Commands Implement oom to reopen file in malloc:// Add zs as an alias for z/ Implement zo command Rename command Vvm to Vvr Implement drb[1,2,4,8] to display hexdump of gpr arena Implement ?en command to echo without newlines Implement zG exact-match zignatures support Add p=0 and p=F Add =!pkt in gdb:// Add pP in Vv with afi, pds, pdc, pdr, pdf Add @@@@b iterator for all the basic blocks Add ?w to show what is in the given address New z. command, that performs zignature match by function. It works for a given offset with @@ addr, so with @@@@ fcn* it can be run against all detected functions of the bin. Add Ve$ command to see vars in visual Add ?$ to show the value of all variables Add @@@@f foreach iterator to walk all the functions Support @@@@f: to iterate over all functions matching a name Implement Vv[JK] to scroll pages of functions Extend oa to load a different bin and handle riodesc properly Initial support for afta command Implement@@@@i to iterate over all instructions Added av* and avj to show vtables in r2 and json formats Added rabin2 -X and r_bin_package for FAT and ZIP Added v in VV Implement axf that try to resolve function names for 'C' refs File Format Parsing Better support for COFF ELF and Mach are more endian awareness Speed up load times for ELF and Mach binaries Improvements in ELF to detect overlapped symbols Enhancements in DEX parser Debugger Fixing ds in x86 (#5802) Bring back to live dcs ds on call and jmp (#5785) Add Win10 profile to WinDbg module (#5805) Coredump support for ARM Added support for conditional breakpoints running r2 commands Fix swstep on x86-32 for CALL/UCALL/UJMP instructions Fixes for dr[*] Fix command do in windows Fix dr command to get segments registers Fix dbic parsing Properly handle 32/64 bit spawning on OSX Reduce the requirements of dko to any reason with a signum (#5806) Analysis Honor asm.varsub and asm.relsub in axt Several fixes in xtensa Implement cfstring support for ARM/Thumb binaries Child thread heap analysis support (#5741) New opcodes and operations in AVR anal plugin Added xtensa calling convention (#5731) Initial ESIL support for xtensa Major improvements in zignature and better tested. Dalvik improvements Added option to load types manually (#5550) Basic merge of no return function with types db (#5774) Handle LDR instructions properly in ARM64 for static analysis Add initial function list for osx-64 Extend arm64 regprofile for 16 and 8bit registers Always run afva from af if anal.vars is set Fix aae command arguments handling Documentation on ESIL for AVR Add AVR opcode ESIL for ASR instruction and bugfixed comma eater Fix stack alignment bug in anal.arm64.esil Use 32 bit calling convention for ARM Thumb Add and use tinyrange.c: get 10% speedup in analysis Integrating asm.calls with function types database (#5761). Making asm.calls true by default Build Reduced Cydia package size by removing development files 79MB -> 19MB Optimized ios build for size (7MB -> 2.8MB) Changed sys/ios-static.sh to generate easy-to-deploy tarball Added sys/ios-static-appstore.sh Fix build and basic run of the ios-arm64 debugger Configuration Added eval asm.cmtrefs -disabled by default-. When enabled, it shows the flag and comment that is at the ref of the current instruction. Eval asm.relsub true by default Eval asm.leahints false by default Added cfg.minzlen and cfg.maxzlen to set minimum and maximum length to filter in zg Added src.flush to force flush to console in realtime Added anal.hpskip, false by default. Make asm.reloff less confusing and add experimental asm.reloff.flags Make !? help available via ?! Added scr.color.bytes and rename scr.colorops to scr.color.ops asm.emustr enables asm.emu automatically Added types documentation Crypto Add CPS-2 encryption support Bindings Add OCaml correctly to the README (#5842) Fixed r2pipe.c Printing Follow wide strings in disasm pdf/pdr/anal fix (#5709) Update pf help message pf indent fix Added array size support for structures Interpret char[] as char* in the pf format (use z instead of c) Fix .qword in pd and consider adr on arm64 as lea op Honor hex.cols in pxe Implemented varsub with structure fields (currently only depth of 1) Show disasm in Vx. implementing sorting of code diff Assembler/Disassembler Add msr/mrs for the armass64 assembler Add jump/fail in afbj Add support for jb instruction in pseudo asm (#5818) Add a missing MSP430 constant register instruction encoding (#5548) Fix infinite loop with long strings in disasm Fix a missing #1 constant-generator encoding for msp430 R2PM Add r2pm -w and handle R2PM_DEPS Add PYPATH to r2pm Add support to have custom directory name for cloned repo Diffing Add radiff2 -S to specify which column to sort for code diffing Fix the radiff2 -C MATCH issue, still not perfect but getting in shape Interface Enhance Visual bit editor with 30% more colors and keys! Fix visual mark target address (#5637) Fix vmarks and save them in the project Bonus Track Numbers: commits: 373 fix: 231 crash: 8 new: 8 add: 70 anal: 32 leak: 3 esil: 14 debug: 7 type: 18 oob: 5 honor: 9 update: 19 clean: 6 import: 2 endian: 8 indent: 6 command: 16 enhance: 4 diff: add: 22324 del: 11798 diff: 10526 .---------------------------------------------------------------------------------------------------------------------. | Release 0.10.6 | |---------------------------------------------------------------------------------------------------------------------| | name | commits | fix | add | honor | leak | esil | endian | authors | |--------------|---------|-----|-----|-------|------|------|--------|-------------------------------------------------| | | 381 | 238 | 70 | 9 | 4 | 14 | 8 | | | binr/radare2 | 9 | 6 | 0 | 1 | 0 | 0 | 0 | pancake sven tiago.gasiba+saucec0de | | binr/rabin2 | 2 | 1 | 1 | 0 | 0 | 0 | 0 | sven pancake damo22 | | binr/radiff2 | 4 | 0 | 1 | 0 | 0 | 0 | 0 | pancake jkrshnmenon sven | | binr/rahash2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | tjemg | | libr/debug | 28 | 20 | 3 | 0 | 0 | 0 | 0 | pancake tjemg saucec0de osalvador.vilardaga ... | | libr/bin | 64 | 46 | 7 | 0 | 1 | 0 | 3 | pancake alvarofe h4ng3r damo22 ... | | libr/core | 186 | 123 | 38 | 7 | 2 | 6 | 2 | pancake alvarofe oddcoder vlad-mbx ... | | libr/crypto | 3 | 2 | 1 | 0 | 0 | 0 | 1 | pau pancake | | libr/cons | 14 | 11 | 1 | 0 | 0 | 0 | 1 | pancake sven maijin zlowram ... | | libr/anal | 88 | 56 | 16 | 0 | 2 | 12 | 0 | pancake oddcoder vlad-mbx alvarofe ... | | libr/asm | 21 | 14 | 2 | 0 | 0 | 1 | 3 | pancake alvarofe h4ng3r sven ... | | libr/util | 42 | 22 | 9 | 1 | 0 | 0 | 1 | pancake alvarofe semarie p4n74 ... | | libr/egg | 0 | 0 | 0 | 0 | 0 | 0 | 0 | sven | | libr/io | 11 | 10 | 2 | 1 | 0 | 0 | 0 | pancake sven skuater | | shlr/bochs | 1 | 1 | 0 | 0 | 0 | 0 | 0 | pancake 0xbc | | man | 4 | 0 | 2 | 0 | 0 | 0 | 0 | pancake maijin | '---------------------------------------------------------------------------------------------------------------------' Contributors: 374 / 54 = ~7 commits per user 48% - 182 pancake 10% - 41 alvarofe 4% - 15 oddcoder 3% - 13 vlad-mbx 3% - 13 maijin 2% - 8 tjemg 2% - 8 bluec0re 1% - 7 h4ng3r 1% - 6 zlowram 1% - 5 p4n74 1% - 5 laanwj 1% - 4 semarie 1% - 4 damo22 0% - 3 skuater 0% - 3 pau 0% - 3 kalianon2816 0% - 3 saucec0de 0% - 3 julien.voisin 0% - 3 alex.darredevil 0% - 2 me 0% - 2 dromero.perez 0% - 2 akihiko.odaki.4i 0% - 2 killabytenow 0% - 2 bofh666ftw 0% - 2 crowell 0% - 2 xvilka 0% - 2 jkrshnmenon 0% - 2 pvt.gord 0% - 2 osalvador.vilardaga 0% - 2 sven 0% - 1 ANTodorov 0% - 1 SztfG 0% - 1 evanjrichter 0% - 1 tiago.gasiba+saucec0de 0% - 1 siguza 0% - 1 jpenalbae 0% - 1 ret2libc 0% - 1 atrodo 0% - 1 edgar.factorial 0% - 1 wapitidou 0% - 1 philipp.B.610 0% - 1 0xbc 0% - 1 andrey.arapov 0% - 1 coding 0% - 1 jduck 0% - 1 brainstorm 0% - 1 ahmedsoliman 0% - 1 eazy-f 0% - 1 bmarsh 0% - 1 oleavr 0% - 1 lottmann86 0% - 1 ehntoo 0% - 1 pgrohe 0% - 1 sylvain.pelissier r2 0.10.5 codename PreCon Release @@ 0.10.5 Project: radare2 Codename: PreCon Date: Mon Aug 15 2016 10:27:52 GMT+0200 (CEST) Website: http://radare.org Tarball: https://github.com/radare/radare2/releases radare2 @@ comes with 5212 lines of new features, bug fixes and enhancements. Here some of the most important highlights: New commands dmh to show memory heap Implement pxd8 to show data in st64 Add $Fb and $Fs to handle basicblock address and size q[y/n][y/n] options added Fix #5524 - Add 'F' and '_' in graph Add bit level visual editor Fix #5447 - Implement aO command add io command !=mod to list system modules Fix #4841 - Restricted r2 shell thing Fix dmp command for OSX and make it work with 1 parm instead of 3 Fix dmi on OSX and minor cydia tweak Fixes #5389 - Add aflqj Fix #5427 - ao[n] shows same bytes on all instructions New URI handlers waitfor:// - wait to attach for a process matching that name pidof:// - attach to a process with this name nocache:// - open with O_NOCACHE, useful for iOS's dyldcache (@@oleavr) self:// - Add dlsym, call, alarm and other goodies r2k:// - connect to the r2 kernel driver (windows only atm) (@@skuater) RSoC and GSoC Implement Arithmetic Pattern matching for ROP classification: rop gadgets found are saved in rop.db /R can now classify nop gadgets MovRegs and LoadConst pattern classification for /R Moved classification logic in separate file Adding Arithmetic Pattern classification for /R (work in progress) Variable and argument analysis (@@oddcoder) Initial support for type matching (#5480) Calling convention profiles in SDB (#5358) Adding doc for calling convention Refactor RBin.Xtr to speedup dyldcache extraction (fat task) Refactoring RBinXtr API. Cache sub-fat bins in sdb to save memory. Fix the error while loading sub-bins of different archs. more work into xtr to fix the remaining tests Material webui changes Reimplemented hexdump Same for disasm with infinite scroll Better statusbar All this stuff is pretty wip and not yet finished Analysis Add support to analyze local variable types and function parameters Add aad to analyze data references Add av to analyze vtables Fix #5334 - add support to analyze interrupt handler functions Fix some more arm-rel-pc issues (by CalArcher) First approach to afCl/cdecl for AVR Increase rafind2 -ZS wide and do not run aad in aaa Debugger Fix r2 -d mame on OSX asm.bits=16 problem fixed breakpoint size based on arch Fix #5392 display values of args and locals in debugger (#5417) Fixed several memleaks in cmd_debug.c Fix flag regs being seen as 'gpr' instead of 'flg' Added new dmh command to analyze the heap on Linux-GlibC Runs faster! The visual hud performs better! Speed up the radiff2 statistical diff Fix huge load times for fuzzed versioninfo bins rabin2 -x dyldcache is much faster and eats less mem Enhancements Fix #4928 - Show string context in /z and / Fix floating pointer computations in ? Update C++ demangler from the latest GNU binutils Much better big endian support wopO/wopD now support longer buffers and honor endianness ELF vaddr fixes Remove some dupped helper functions like hex2int() Added realtime hexview edit mode More commands support JSON output Better heap analysis support dmh Better thumb/arm/arm64 pseudo, analysis and disasm Optimized to work with the latest capstone-next from git Connect timeout is now working on Windows RAP Fix #5341 - rap:// with no file works now Fix #5338 - Add ability to start RAP server in background. (#5416) Fix WRITE operation in the rap protocol R2PIPE Fix #5339 - Projects now work with r2pipe Support Python3 Added MIT license to r2pipe.cs and publish it in Nuget Initial implementation of the Async Python r2pipe api (chr0hn) Raise meaningful exception if radare2 is not installed R2PM Adding R2PM_GITDIR for easy packages local testing (#5475): Added r2pm -r to run commands in path Added 7 new packages Show r2pm clone directory in r2pm init Only use ~/.config/radare2/prefix/bin Android Improvements in DEX: avoiding name glitches and parse fields and statics Detect local variables in Dalvik code analysis Improve arm/thumb detection building ranges based on anal hints. Updated material webui (WIP) Builds fine on Termux Crypto Add experimental CPS2 crypto plugin Fix #5007 - Clarify the difference of hash/encoder/crypto Fix #4965. Add support for luhn searching and hashing. Refactorings core/bin.c -> core/cbin.c r_util.h splitted into multiple files libr/include/r_util/*.h r_flags no longer depends on r_cons Rename CSR disasm/anal into XAP4 Fix #5355 Remove x86.tab from r2 master moved to extras Calling Conventions are now defined in SDB at runtime Move all test programs into the r2r/unit Updated type database Add spr32d70 and gsprop32 sdb for issue 5486 (#5491) few enhancements for afv FIX #5459 (#5461) replacing afv[bsr]n with afvn replacing negative sign n with _ being consistent across the documentations (args + locals = vars) Security Several null derefs and memleaks has been fixed Fixed a buffer overflow in base64 decoder Fix infinite loop issue in ESIL ,, Fixes a crash in capstone This release in numbers: commits: 282 fix: 163 crash: 11 new: 2 add: 50 anal: 10 leak: 5 esil: 7 debug: 10 type: 8 oob: 2 honor: 7 update: 17 r2pm: 5 clean: 8 endian: 6 indent: 3 command: 14 enhance: 3 diff: - add: 24865 - del: 19653 - diff: 5212 .------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. | Release @@ | |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | name | commits | fix | add | leak | update | r2pm | clean | esil | endian | commits | authors | |--------------|---------|-----|-----|------|--------|------|-------|------|--------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | | 239 | 134 | 40 | 3 | 16 | 5 | 6 | 5 | 4 | 239 | | | binr/radare2 | 2 | 2 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 2 | zakaria.addi pancake | | binr/rabin2 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | pancake alvarofe | | binr/rahash2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | pancake maijin | | libr/hash | 3 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | maijin pancake mo | | libr/debug | 14 | 10 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 14 | pancake oddcoder maijin mail n54 alvarofe matt crowell | | libr/bin | 32 | 22 | 3 | 1 | 1 | 0 | 0 | 0 | 0 | 32 | pancake alvarofe dlpolanco05 maijin crowell | | libr/core | 98 | 59 | 18 | 3 | 6 | 0 | 4 | 2 | 4 | 98 | pancake alvarofe oddcoder maijin alex.darredevil crowell pvt.gord mo zakaria.addi alexandru.razvan.c mail mrmacete Owlz sdusuel brainstorm javierprtd soez vladimirdiaconescu monosource kalianon2816 sushant l4l dario.mail1 | | libr/crypto | 3 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | pancake maijin | | libr/cons | 3 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | alvarofe maijin | | libr/anal | 34 | 23 | 9 | 3 | 1 | 0 | 2 | 4 | 0 | 34 | oddcoder pancake maijin alvarofe crowell droberson mrmacete aronsky alexandru.razvan.c alex.darredevil brainstorm | | libr/asm | 22 | 13 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 22 | pancake alvarofe sven maijin | | libr/util | 27 | 12 | 2 | 0 | 1 | 0 | 0 | 0 | 1 | 27 | pancake maijin alvarofe reddevillg nikolaih crowell | | libr/egg | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | maijin | | man | 2 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 2 | pancake monosource | '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------' Contributors: (37) 135 pancake 30 alvarofe 23 maijin 15 oddcoder 9 crowell 9 alex.darredevil 8 xvilka 5 sven 3 chris 3 pvt.gord 3 monosource 3 mrmacete 2 zakaria.addi 2 brainstorm 2 mail 2 mo 2 dlpolanco05 1 reddevillg 1 javierprtd 1 droberson 1 inndy.tw 1 aronsky 1 dreamdance61 1 Owlz 1 n54 1 sdusuel 1 asuarezbm 1 damo22 1 patrikbachan 1 =skuater 1 nikolaih 1 jredestig 1 sushant 1 skuater 1 matt 1 p4n74 1 soez 1 me 1 dx 1 vladimirdiaconescu 1 kalianon2816 1 dario.mail1 1 l4l 1 alexandru.razvan.c radare2 0.10.4 - 0.10.4 - Padron Peppers released this on Jul 7, 2016 Release 0.10.4 Project: radare2 Codename: Padron Peppers Date: Mon Jul 07 2016 00:35:10 GMT+0200 (CEST) Website: http://radare.org Tarball: https://github.com/radare/radare2/releases radare2 0.10.4 comes with a some new features and a lot of bug fixes and enhancements. Here are some of the most important ones: Highlights: Initial support for heap analysis (linux-glibc) (@@n4x0r e & @@javierprtd ) Fully working local, stack, base or register variables support GSoC (@@oddcoder) Fixed support for really messed up PE binaries (@@alvaro_fe) Improved support for AVR and IO ports (@@brainstorm) CDIV deoptimization support (@@ususdei) New disassembler for N64 RSP processor disassembler (@@bsmiles32) Major rework of the debugger internals (@@jduck) The default assembler now supports much more instructions (@@unlogic) Added asm.assembler to use different plugin than the disassembler Better android support (correct disassemlby, initial multidex) (@@trufae) Better coredump support on Linux (oscar salvador) Fixed native build for linux-mips and linux/osx-powerpc (@@trufae) Implemented bit-level editor 'press d and then 1 in visual mode' (@@trufae) Updated material webui -- GSoC (@@gcolajan) r2pm package database moved to another repository (@@zlowram) Numbers: .--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. | Release @@ | |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | name | commits | fix | add | leak | update | r2pm | clean | esil | endian | commits | authors | |--------------|---------|-----|-----|------|--------|------|-------|------|--------|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | | 402 | 225 | 80 | 10 | 20 | 10 | 11 | 15 | 4 | 402 | | | binr/r2pm/d | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | | binr/radare2 | 9 | 6 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | pancake crowell | | binr/rabin2 | 3 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | crowell pancake | | binr/radiff2 | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | pancake nikolaih | | binr/rahash2 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | pancake dx | | binr/ragg2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | libr/hash | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | libr/debug | 46 | 31 | 11 | 0 | 1 | 0 | 1 | 0 | 0 | 46 | pancake jduck xvilka meep crowell pavel.borzenkov alvarofe osalvador.vilardaga psyberbits | | libr/bin | 68 | 51 | 2 | 2 | 1 | 0 | 2 | 0 | 2 | 68 | pancake alvarofe crowell xvilka jduck psyberbits | | libr/core | 132 | 74 | 37 | 3 | 4 | 0 | 4 | 3 | 1 | 132 | pancake oddcoder crowell jduck alvarofe karol.harasim xvilka psyberbits monosource nibble chinmay1dd maijin defragger ret2libc robbje af123 ususdei reenz0h dx lonely.ruyk mrmacete ekse.0x | | libr/crypto | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | pancake | | libr/cons | 14 | 5 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 14 | psyberbits pancake crowell oddcoder | | libr/anal | 56 | 33 | 10 | 3 | 0 | 0 | 1 | 11 | 2 | 56 | pancake oddcoder alvarofe condr3t sushant mrmacete sushant.dinesh94 aronsky psyberbits dx bobby.smiles32 crowell | | libr/asm | 34 | 19 | 11 | 0 | 2 | 1 | 1 | 0 | 1 | 34 | pancake sven mr.exodia.tpodt alvarofe bobby.smiles32 sylvain.pelissier mrdanielps crowell karol.harasim julien.voisin | | libr/util | 43 | 25 | 10 | 0 | 0 | 0 | 2 | 0 | 0 | 43 | pancake crowell karol.harasim alvarofe def psyberbits Lukas-Dresel osalvador.vilardaga defragger nikolaih mattd | | libr/bp | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | jduck | | libr/egg | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | pancake | | man | 3 | 1 | 2 | 0 | 0 | 1 | 0 | 0 | 0 | 3 | pancake nikolaih | '--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------' This makes 21,012 additions and 13,252 deletions. Contributors: 192 pancake 40 alvarofe 38 crowell 20 jduck 11 xvilka 10 psyberbits, sven, oddcoder 8 karol.harasim 6 maijin 5 mrmacete 3 nibble, condr3t, dx, monosource, mrexodia, sushant 2 brainstorm, def, meep, chinmay1dd, sushant.dinesh94, defragger 1 robbje, reenz0h, ususdei, aronsky, bobby.smiles32, zlowram, ekse.0x, mrdanielps, sylvain.pelissier, hummypkg, osalvador.vilardaga, lonely.ruyk, af123, nikolaih, mattd, slyfox, jaroslaw.gorny, pavel.borzenkov, Lukas-Dresel, jvoisin, qwokka, dukebarman, ret2libc Fixes: #5267,#5261, #5245, #5259, #4665, #5228, #5218, #4420, #5213, #4432, #4422, #5204, #1277, #5185, #5126, #5117, #5105, #5108, #4975, #5082, #5058, #5034, #5033, #5020, #5022, #5009, #5010 Changes: This release focused on improving the speed and memory footprint of radare2, along with code cleanup. Also, this release comes with a completely reworked r2pm package manager. A lot of changes have happened in the debugger implementation, and in ESIL emission. New commands fi[jn*] to list flags in a given range pdaj and pda= to disassemble all possible opcodes, byte per byte. drp. to show the register profile size ecoj to list themes in JSON format pf [size]D aoe and aor to show ESIL and REIL forms of the current opcode ah. to show hints of the current offset afv[bsr] to manipulate args, registers and variables in function wxs to write hexpairs, and seek to the end dpc to select the most recently forked child process dpc* to show the recently forked process pid. ecc [arg] shows color palete with a css syntax pch for a 2 byte C dump mode @@o is a new modifier to temporary switch to another fd Adds core.iorw in i Renaming afa, afv and afe to afvb, afvr, and afvs respectively Refactor pia/pda Adds anal.vars variable to toggle variables analysis r2 -I for pre-scripting aa is now equivalent af@@@@ sym.*;af@@entry0;afCa (can you guess what it does?) Added cursor to undo seek history Implement afbr and * sub-variants to list return addresses of current function Analysis Now r2 is able to load PE files that has been tampered somehow to thwart the analysis. If radare2 struggles with some samples, feel free to share them with us ;): * Add name to section when is empty * comment out hackaround for huge number of sections Update syscall table for iOS Adds output ports for AVR Atmel8A. Thanks @@radare and @@oddcoder Implement RSyscall.IO in disasm loop for X86 and AVR Improving variables on ARM (16, 32, 64) Adds asm.hints and handle CDOV deoptimization Possibility to add comment for var/args Add anal.vinfun and anal.anal.vinfunrange for aav (only grab values outside function boundaries) Improving the json format for args/vars Initial import of the bin.avr plugin for atmega8 chips Fix analysis and add ESIL for avr's rjmp Support op->family and some op->cycle for anal.arm64 Add MJMP optype, pxt command and enhance anal.jmptbl for x86-64 (wip) Fixed order of arguments in ESIL representation of MUL. afbr's description wasn't worded properly: It doesn't actually print addresses of ret instructions, but of instructions which cause the flow of the program to leave the function body, like call, jmp, hlt, ... CDIV deoptimization is now showed as hint Debugger Improved support of Linux, Android and *BSD systems Major rework to the native debugger (especially on Linux) Generate coredump - added support for threads and x86 Make dbt output aligned to columns based on dbg->bits Breakpoints should now work regardless of the swtep setting Fix build for Linux <= 2.6.32 (coredump not supported) Make dm work on OpenBSD by adding a native _debug_native_map_alloc() Add support for dp and dp* on OpenBSD. Don't print SIGTRAP signals or stops Adds breakpoints into project file Add "clone" to the "dcf" command (#5161) Track how the caller wishes to continue Handle EXIT_PID events differently than DEAD process events Move breakpoint/recoil handling to wait/cont/step Change many wait functions to return RDebugReasonType Better return checking (from r_debug_reg_sync, r_bp_restore) Optimized register synchronization Improved inferior death detection Assembler/Disassembler Add basic support for N64 RSP processor. Lot of updates in x86.nz: The sil, dil, spl, and bpl registers are now supported lfence, mfence, sfence , bt, fsincos instructions support syntax for add eax, [ecx] and add ecx, [eba +/- 3] Add support for immediate word for sub nz now generates the correct opcode when using a word as an immediate in the sub instruction with a register + offset as the target Adds support for word register offsets and refactors that portion of the code a little Add offset support to add instruction Initial implementation of asm.assembler to select different assembler plugin than the disasmembly one DEX DEX stands for Dalvik Executable format, it's the format used by Android binaires. Show classname for static methods in DEX Fix imports and enhance parsing virtual methods in DEX Better names for virtual Dalvik methods Load virtual methods from Dex files Tests and Documentation Use kcov and Coveralls.io with unit tests Initial radare2-extras tests r_util is getting documented and got unit tests Bindings io, core and disasm/asm got proper rlang + python examples: https://github.com/radare/radare2-bindings/blob/master/libr/lang/p/test-py-core.py https://github.com/radare/radare2-bindings/blob/master/libr/lang/p/test-py-asm.py https://github.com/radare/radare2-bindings/blob/master/libr/lang/p/test-py-io.py Build Support to build on OSX-powerpc Support to build on Linux-powerpc and mips Build target armel (not armhf), for legacy armv5-like devices Optimization Huge optimization of some internal structures by @@crowell Usability and Visual mode Greatly improves the display of process listing lea instructions got hotkeys support Visual mode for editing bits Vd1 The www/m web interface got a new statusbar and a split view @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.10 2017/09/02 22:02:25 wiz Exp $ a6 1 MASTER_SITES= ${MASTER_SITE_GITHUB:=radare/} @ 1.10 log @Bump libzip ABI depends and PKGREVISIONs of its users for bzip2 dependency. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.9 2017/02/23 07:44:09 wiz Exp $ a2 1 PKGREVISION= 2 d7 1 a7 1 EXTRACT_SUFX= .tar.xz d19 1 a19 1 USE_TOOLS+= gmake patch pkg-config @ 1.9 log @Recursive bump for libzip shlib major bump. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.8 2016/09/16 14:46:25 jperkin Exp $ d3 1 a3 1 PKGREVISION= 1 @ 1.8 log @Add support for SunOS. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.7 2016/06/13 12:26:11 wiz Exp $ d3 1 @ 1.7 log @Update radare2 packages to 0.10.3/0.10.0. Changes for 0.10.3 not found. 0.10.2 Add r2 -d and -R shortcuts to simplify loading rarun2 profiles and using remote debugging plugins Support for cryptography (blowfish, rc2, rc4, aes, xor, ror, rol) woE/woD rabin2 -E Adding wo*y commands using clipboard instead of [val] Better PE and ELF parsers New easter-egg! dyldcache extractor is working again Support for BOCHS Coredump support for iOS and OSX New fileformats, namely Python bytecode and Flash files Improved analysis and emulation thanks to ESIL on x86, ARM and MIPS New make menu to choose plugins to build Add ?E clippy echo and use it in ???? xrefs and types are now properly saved/restored from projects 0.10.1 Variables and flags can now be renamed in cursor mode asciinema Optimized GDB connectivity, now its 10x faster! print signed base 10 hexdumps with pxd[1,2,4] radiff2 -C to compare checksums Lot of work towards the mach-ification of the OSX/iOS debugger by alvarofe more polished cursor movements in Visual mode Better ARM and Thumb code analysis and emulation Added disassembler support for Microblaze architecture Updated unicorn plugin to be in sync with git Various enhancements in the Visual mode backward disassembly uses RAnal info for better offset computations asm.bbline uses RAnal info to have precise results fix bug in env.sh when using more than 9 arguments Mingw compilation improvements preliminary support of XNU debugging ESIL support for v810 radare2 does now compile in appveyor: no more excuses for broken commits on windows! Lanai (the secret CPU used by Google) support a new shiny xtensa CPU analysis backend change local variables/arguments format names (ebp-0x10, ebp+0x13 becomes, respectively, local_10h and arg_13h) and now it works too when asm.ucase is set. add Vdn option to rename a flag/function/local variable/local argument used in the current instruction refactoring of RFlag + better names for functions when there are symbols ahi now supports IPv4 and syscall various optimizations and bugfixes opcodes descriptions for v810, propeller, riscv, tms320, lm32, i4004, i8080, java, Malbolge, SH-4, M68K, ARC and LH5801 (that you can access with ?d or e asm.describe=true) axg to get a graph of the function xrefs to reach a specific point. Lanai CPU Radare 0.10.0 blessr2 Since it took us a very long time to do this release, he had the time to implement a second one, using Material design, which turns out to be the default one for the Android and FirefoxOS applications. Stability We spent a lot of time fuzzing radare2, collecting binaries and writing tests to improve radare2’s reliability. We even harvested similar projects bugtracker to see how well radare2 would deal with binary that broke them. Currently, we have something like 2000 tests dedicated to commands, and most of disassemblers have a 100% coverage. About the testsuite, you may notice that it’s much more quick to run it now. We managed, on travis-ci, to go from 1h30 for only gcc on linux, to 20 minutes for clang on OSX, and gcc+clang on linux. No more excuses for not running the testsuite before a commit. You might also be happy to know that radare2 now successfully compiles on tcc, the tiny C compiler. This might be useful if you’re compiling radare2 on weird platforms. Please be sure to use tcc from git too :) Moreover, radare2 tries as hard as it can to run on your-super-weird-platform-that-no-ones-has-ever-head-off, we implemented the cp and mv commands, since you might not find those everywhere. Thanks to revskills for spending time fuzzing and reporting several parts of r2. Better support for iOS Radare2 comes with some new features that will make iOS reverse engineers happy: asm.emu will tell you which objc_msgSend apis and syscalls are called Better emulation of Thumb, aarch64 and arm32 Supports r2pipe in Swift, known to work on tvOS, watchOS, iPhone and OSX. Native OBJC parser implementation, no need to use class-dump tool anymore! Some enhancements in process memory dumping Supports tfp0 to read/write kernel memory if kernel is patched properly Exploit an iOS<=8 vulnerability to read Code Signing is now done properly, updated instructions. Add support for nativelly running on Apple Watch (without jailbreak). Some random debugger bug fixes, still not fully working on iOS List memory modules, not just memory maps Unaligned instructions are different than the invalid ones MACH0 Crypto information is now accessible via SDB ElCapitan users will get a bit pissed of because they are no longer able to debug /bin/ls, because Apple’s SIP will block debugging binaries found in system directories. The solution for this is to copy them into your home :P Also, default installation path has changed from /usr to /usr/local. Debugger This release was supposed to focus on the debugger, fixing many issues, and adding some new bugs features, like: Support for memory-access hardware breakpoints Much better Windows 32 and 64bit debugger support List opened handles and Windows using dd Rarun2 supports pipe execves in std file descriptors Remote debugging via IO plugins work a bit better now 3 different backtrace algorithms, configurable at runtime dbg Memory usage It seems that no one ever took care of radare2 memory consumption before, because it was still lower than its competitors/alternatives. But for this release, radare2 went on a diet : it now consumes 3 to 5 times less memory ! Pretty graphs Our beloved ret2libc spent a lot of time rewriting graphs engine from scratch, with overlaps handling and better colours ! See how cool this is: graph New architectures support We know a lot of people are using radare2 because it supports a lot of funky/exotic/awful/funny/scary architectures. Remember when we added support for the famous 6502 cpu in the last release? This time, we added analysis support and opcode description (with ?d), because not everyone is fluent in 6502 assembly code. And even more, since we know some of you just care about the meaning of the code and not the beauty of the assembly listing, we added pseudo-decompiler support. Yes, we have a pseudo-decompiler for 6502. Did you know that we have a contributor named condret that really likes the pokemon game on gameboy? This is why he’s pushing ESIL, implemented a fancy gameboy disassembler, and for this latest release, he wrote a gameboy assembler! You can now craft your own shellcodes, or, if you’re crazy, games, for gameboy, with radare2. We also improved AVR support, with analysis (radare2 analysis is generic, so it’s pretty easy to add its support for an architecture), an assembler, ESIL so you can emulate it easily, and description. This led two people (namely Alexander Bolshev and Boris Ryutin) to do worksops at ZeroNights, t2.fi and S4x16 conferences, about reversing and exploiting this architecture with radare2! Also, we added support for assembling ARM and ARM64, ADN decoding (yes. It’s the BCL plugin in r2pm. You don’t know about r2pm? Keep reading then.), demangling for Rust binaries, Wii/Gamecube binaries, disassemblers for LM32, MCS96, analysis and ESIL for PPC, V810 and RISC-V, … And since we have at least one Windows user, we also added support for Windows minidump format, aka mdmp, and windows-on-raspberry2-fileformat-it’s-almost-a-PE because apparently, it’s a real thing. Game Consoles We have been also working in adding support for more game console ROMs: NES (nintendo-entertainment-system) SMD (sega megadrive) SMS (mastersystem/gamegear) DOL (wii/gamecube) GB (initial support for assembling instructions) Other new binary formats are now supported too: CGC executables MBN/SBL Android trustboot images Support for RPI2 PE Windows executables Windows Minidump (mdmp) files Bindings Remember the bindings, and how much languages we supported? Remember when you had to read radare2’s source code to write a simple one-liner, and ended parsing a call to system with radare2, pipe, sed, pipe, tr, pipe, awk, pipe, sed ? Yeah, us too. This is why we ditched (don’t worr, they are still there, but deprecated) the bindings, and created r2pipe. Since you like so much calling radare2 in system, this is exactly what is does: popping radare2, and piping commands to it. This brings several advantages: We don’t have to mainwe only have to implement a few commands per languages You don’t have to read radare2’s source code if you don’t want to: if you know how to use radare2, you know how to use r2pipe! Append j to almost every command to get native JSON output! No needd now in JSON:\n%s\n' % r2.cmdj('pij 5')) print('architecture: %s' % r2.cmdj('ij')['bin']['machine']) All r2pipe APIs has been updated to work on Windows, Linux and OSX. In addition, the new native:// URI allows to use r2pipe api using the native C API iipes or sockets. This allows to reuse the same code but speeding up things a lot. r2pm Radare2 had an implementation of 2048, a port-scanner, and even a secret ascii-penis, but now, it also has a package manager! No, this is not overkill, stop complaining and keep on reading. Radare2 supports a lot of useless things. This is why we put non-code things into separate packages, that can be browsed/searched/installed/removed/updated with the new tool called r2pm. $ r2pm Usage: r2pm [cmd] [...] Commands: -i,info r2pm -i # pkgs info -i,install r2pm -i baleful -u,uninstall r2pm -u baleful -l,list list installed pkgs -t,test FX,XX,BR BID check in travis regressions -s,search [] search in database -v,version show version -h,help show this message -c,clean clear source cache Environment: SUDO=sudo use this tool as sudo R2PM_PREFIX=/usr prefix for syspkgs R2PM_PLUGDIR=~/.config/radare2/plugins # default value, home-install for plugins R2PM_PLUGDIR=/usr/lib/radare2/last/ # for system-wide plugin installs $ Note that r2pm -s will show you every available package. License We managed to remove the last bits of GPL licensed code in radare2! We’re not a complete LGPL project (some modules installable with r2pm have a different licenses, please pay attention to that). This means that you can use radare2 into your proprietary product, while betraying without giving the source to your users, but if you modify radare2, you need to publish the modifications. It might be easier for you to try to upstream them by the way ;) Usability As usual, we’re going to pretend that every command has now a fancy colored help displhout. You might remember hearing a loud noise a couple of months ago. This was when jvoisin was told that to have something like the follow-fork-mode in GDB, he had to find the syscall number for his architecture, break on this breakpoint with the dcs cour Intermediary Language, used for emulation, analysis, transformations, trolling, … This is why we added several new commands under ae (*A*nalyse with *E*sil), like aeip to set the ESIL eip to the current eip, ‘aef’ to emulate an entire function, aation | += A+=B => B,A,+= | + A=A+B => B,A,+,A,= | *= A*=B => B,A,*= | /= A/=B => B,A,/= | &= and ax, bx => bx,ax,&= | | or r0, r1, r2 => r2,r1,|,r0,= | ^= xor ax, bx => bx,ax,^= | >>= shr ax, bx => bx,ax,>>= # shift rightwice, compare and update esil flags | < compare for smaller | <= compare for smaller or equal | > compare for bigger | >= compare bigger for or equal | ?{ if popped value != 0 run the block until } | POP drops last element in thethe new asm.emuwrite, asm.emustr, and asm.emu options! If you set them to true, radare2 will do its very best to improves the analysis with ESIL, but be careful, setting those variables may give you an über-verbose output. Extras The radare2-extras repog additions are: Unicorn A lot of people are talking about unicorn, a CPU emulator. While we think that ESIL is way better for everything and that you totally should use it and contribute to radare2, we added support for it in radare2, it’s as simple aLinux kernel packet filtering is done by a custom virtual machine that emulates code. r2 is now able to assemble, disassemble, analyze, emulate this new architecture. Thanks mrmacete! New bots There are now new NodeJS bots for IRC and Telegram, ready to use in the radare2-bindings/r2pipe/nodejs/examples/*. r2tgirc : telegram-to-irc bot that communicates the #radare freenode channel with the Telegram’s radare one. r2tg-bot : Radare2 bot for Telegram and connected to the cloud. r2irc-bot : IRC bot of r2 to use any binary in your system from the chat. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.6 2016/03/05 11:28:25 jperkin Exp $ d19 1 a19 1 USE_TOOLS+= gmake pkg-config @ 1.6 log @Bump PKGREVISION for security/openssl ABI bump. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.5 2015/07/19 16:02:51 kamil Exp $ a5 1 PKGREVISION= 2 d21 3 @ 1.5 log @Bump PKGREVISION to 1 This change is for new devel/capstone 3.0.4 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.4 2015/07/09 09:25:55 kamil Exp $ d6 1 a6 1 PKGREVISION= 1 @ 1.4 log @Add missing entry to USE_TOOLS: pkg-config configure tries to discover capstone (and ssl) with pkg-config. This issue was spotted thanks to BulkTracker. In case of missing capstone, the radare2's Makefiles tries to fetch them with git. The missing git was the direct reason to fail during bulk builds. This package is prepared to reuse capstone from devel/capstone and never fetch additional dependencies, during its build, from external sources. Reviewed by @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.3 2015/07/03 16:05:02 khorben Exp $ d6 1 @ 1.3 log @Package radare2 0.9.9 This release brings the following: - support for more architectures (AARCH64, HP PA-RISC, Z80...) - build fixes - bug fixes - more fortunes... This change also brings Makefile.common and buildlink3.mk files, to facilitate packaging radare2's companion releases (language bindings, etc). @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.1 2015/02/27 12:11:20 gdt Exp $ d19 1 a19 1 USE_TOOLS+= gmake @ 1.2 log @Recursive PKGREVISION bump for libzip shlib major bump. @ text @d3 3 a5 2 DISTNAME= radare2-0.9.8 PKGREVISION= 1 a6 1 MASTER_SITES= http://www.radare.org/get/ a9 1 HOMEPAGE= http://www.radare.org/ @ 1.1 log @Import radare2-0.9.8 as devel/radare2. radare2 is an advanced commandline hexadecimal editor with a set of tools for working with binary files. Most of tools that come with radare2 have been designed for reverse engineering file formats, firmwares, programs, libraries, etc. Radare2 project started as a forensics tool, a scriptable commandline hexadecimal editor able to open disk files, but later support for analyzing binaries, disassembling code, debugging programs, attaching to remote gdb servers.. Packaged in wip by Kamil Rytarowski. @ text @d1 1 a1 1 # $NetBSD$ d4 1 @