diff --git a/libr/anal/p/anal_arm_cs.c b/libr/anal/p/anal_arm_cs.c index 34f607076b..4719e09e36 100644 --- a/libr/anal/p/anal_arm_cs.c +++ b/libr/anal/p/anal_arm_cs.c @@ -424,8 +424,17 @@ static void anop32 (RAnalOp *op, cs_insn *insn) { op->type = R_ANAL_OP_TYPE_RET; } else if (insn->detail->arm.cc) { op->type = R_ANAL_OP_TYPE_CJMP; - op->jump = (ut64) (ut32)IMM(0); + if (REGID(1)==ARM_REG_PC) { + op->jump = addr+op->size; + } else { + op->jump = (ut64) (ut32)IMM(0); + op->jump = addr+op->size; + } op->fail = addr+op->size; + if (op->jump == op->fail) { + op->type = R_ANAL_OP_TYPE_JMP; + op->fail = UT64_MAX; + } } else { op->type = R_ANAL_OP_TYPE_JMP; op->jump = IMM(0); diff --git a/sys/install.sh b/sys/install.sh index 9e5340314f..7a1a988863 100755 --- a/sys/install.sh +++ b/sys/install.sh @@ -4,6 +4,8 @@ MAKE=make gmake --help >/dev/null 2>&1 [ $? = 0 ] && MAKE=gmake +[ -z "${INSTALL_TARGET}" ] && INSTALL_TARGET=symstall + # find root cd `dirname $PWD/$0` ; cd .. @@ -24,7 +26,7 @@ fi [ -n "${NOSUDO}" ] && SUDO= if [ "${HARDEN}" = 1 ]; then - ./sys/build-harden.sh $* && ${SUDO} ${MAKE} symstall + ./sys/build-harden.sh $* && ${SUDO} ${MAKE} ${INSTALL_TARGET} else - ./sys/build.sh $* && ${SUDO} ${MAKE} symstall + ./sys/build.sh $* && ${SUDO} ${MAKE} ${INSTALL_TARGET} fi