Remove anal.malbolge and fix CI r_esil issues ##arch

This commit is contained in:
pancake 2022-11-13 02:07:52 +01:00 committed by pancake
parent cded4df114
commit 46e25f8844
35 changed files with 118 additions and 93 deletions

View File

@ -287,10 +287,8 @@ symstall install-symlink: install-man-symlink install-doc-symlink install-pkgcon
ln -fs "${PWD}/doc/hud" "${DESTDIR}${DATADIR}/radare2/${VERSION}/hud/main"
#mkdir -p "${DESTDIR}${DATADIR}/radare2/${VERSION}/flag"
#ln -fs $(PWD)/libr/flag/d/tags.r2 "${DESTDIR}${DATADIR}/radare2/${VERSION}/flag/tags.r2"
cd "$(DESTDIR)$(LIBDIR)/radare2/" ;\
rm -f last ; ln -fs $(VERSION) last
cd "$(DESTDIR)$(DATADIR)/radare2/" ;\
rm -f last ; ln -fs $(VERSION) last
cd "$(DESTDIR)$(LIBDIR)/radare2/" && rm -f last && ln -fs $(VERSION) last
cd "$(DESTDIR)$(DATADIR)/radare2/" && rm -f last && ln -fs $(VERSION) last
mkdir -p "${DESTDIR}${DATADIR}/radare2/${VERSION}/"
$(SHELL) ./configure-plugins --rm-static $(DESTDIR)/$(LIBDIR)/radare2/last/

View File

@ -18,6 +18,7 @@ CFLAGS+=-I$(SHLR)/spp
LDFLAGS+=-L../../libr/main -lr_main
LDFLAGS+=-L../../libr/io -lr_io
LDFLAGS+=-L../../libr/bp -lr_bp
LDFLAGS+=-L../../libr/esil -lr_esil
LDFLAGS+=-L../../libr/socket -lr_socket
LDFLAGS+=-L../../libr/bin -lr_bin
LDFLAGS+=-L../../libr/arch -lr_arch

View File

@ -1,7 +1,29 @@
executable('rabin2', 'rabin2.c',
include_directories: [platform_inc],
include_directories: [platform_inc, sdb_inc],
dependencies: [
r_core_dep,
r_main_dep,
r_util_dep,
r_socket_dep,
r_io_dep,
r_fs_dep,
r_bin_dep,
r_flag_dep,
r_esil_dep,
r_arch_dep,
r_cons_dep,
r_asm_dep,
r_debug_dep,
r_config_dep,
r_bp_dep,
r_reg_dep,
r_syscall_dep,
r_anal_dep,
r_parse_dep,
r_egg_dep,
r_search_dep,
r_crypto_dep,
r_magic_dep
],
install: true,
install_rpath: rpath_exe,

View File

@ -2,6 +2,7 @@ radare2_exe = executable('radare2', 'radare2.c',
include_directories: [platform_inc],
dependencies: [
r_util_dep,
r_arch_dep,
r_main_dep,
r_socket_dep,
r_core_dep,

2
configure vendored
View File

@ -856,7 +856,7 @@ for A in ${ENVWORDS} ; do
SEDFLAGS="${SEDFLAGS}s,@${A}@,${VAR},g;"
done
SEDFLAGS="${SEDFLAGS}'"
for A in ./config-user.mk libr/include/r_userconf.h pkgcfg/r_io.pc pkgcfg/r_magic.pc pkgcfg/r_asm.pc pkgcfg/r_bin.pc pkgcfg/r_anal.pc pkgcfg/r_arch.pc pkgcfg/r_cons.pc pkgcfg/r_core.pc pkgcfg/r_lang.pc pkgcfg/r_socket.pc pkgcfg/r_debug.pc pkgcfg/r_reg.pc pkgcfg/r_config.pc pkgcfg/r_flag.pc pkgcfg/r_syscall.pc pkgcfg/r_util.pc pkgcfg/r_search.pc pkgcfg/r_bp.pc pkgcfg/r_parse.pc pkgcfg/r_fs.pc pkgcfg/r_egg.pc pkgcfg/r_crypto.pc ; do # SUBDIRS
for A in ./config-user.mk libr/include/r_userconf.h pkgcfg/r_io.pc pkgcfg/r_magic.pc pkgcfg/r_esil.pc pkgcfg/r_asm.pc pkgcfg/r_bin.pc pkgcfg/r_anal.pc pkgcfg/r_arch.pc pkgcfg/r_cons.pc pkgcfg/r_core.pc pkgcfg/r_lang.pc pkgcfg/r_socket.pc pkgcfg/r_debug.pc pkgcfg/r_reg.pc pkgcfg/r_config.pc pkgcfg/r_flag.pc pkgcfg/r_syscall.pc pkgcfg/r_util.pc pkgcfg/r_search.pc pkgcfg/r_bp.pc pkgcfg/r_parse.pc pkgcfg/r_fs.pc pkgcfg/r_egg.pc pkgcfg/r_crypto.pc ; do # SUBDIRS
if [ -f "${VPATH}/${A}.acr" ]; then
SD_TARGET=${A}
else

View File

@ -277,6 +277,7 @@ SUBDIRS ./config-user.mk
libr/include/r_userconf.h
pkgcfg/r_io.pc
pkgcfg/r_magic.pc
pkgcfg/r_esil.pc
pkgcfg/r_asm.pc
pkgcfg/r_bin.pc
pkgcfg/r_anal.pc

View File

@ -27,7 +27,6 @@ anal.m68k_cs
anal.mcs96
anal.m680x_cs
anal.xtensa
anal.malbolge
anal.mcore
anal.mips_cs
anal.mips_gnu

View File

@ -20,7 +20,6 @@ anal.kvx
anal.lh5801
anal.m68k_cs
anal.m680x_cs
anal.malbolge
anal.mcore
anal.mips_cs
anal.mcs96

View File

@ -16,7 +16,6 @@ anal.java
anal.kvx
anal.lh5801
anal.xtensa
anal.malbolge
anal.mcore
anal.mips_gnu
anal.lanai_gnu

View File

@ -11,7 +11,6 @@ anal.h8300
anal.i8080
anal.java
anal.m680x_cs
anal.malbolge
anal.mips_cs
anal.msp430
anal.null

View File

@ -17,7 +17,6 @@ anal.kvx
anal.lh5801
anal.lm32
anal.m68k_cs
anal.malbolge
anal.mips_cs
anal.mips_gnu
anal.lanai_gnu

View File

@ -10,7 +10,6 @@ anal.lm32
anal.i8080
anal.java
anal.m68k_cs
anal.malbolge
anal.mips_cs
anal.mcs96
anal.nios2

View File

@ -5,10 +5,6 @@
#define NAME_BUF_SIZE 64
#define BASE_CLASSES_MAX 32
RecoveryTypeDescriptor *recovery_anal_type_descriptor(RRTTIMSVCAnalContext *context, ut64 addr, RecoveryCompleteObjectLocator *col);
static const char *recovery_apply_complete_object_locator(RRTTIMSVCAnalContext *context, RecoveryCompleteObjectLocator *col);
static const char *recovery_apply_type_descriptor(RRTTIMSVCAnalContext *context, RecoveryTypeDescriptor *td);
typedef struct rtti_complete_object_locator_t {
ut32 signature;
ut32 vtable_offset; // offset of the vtable within class
@ -42,6 +38,38 @@ typedef struct rtti_type_descriptor_t {
char *name;
} rtti_type_descriptor;
typedef struct recovery_type_descriptor_t RecoveryTypeDescriptor;
typedef struct recovery_base_descriptor_t {
rtti_base_class_descriptor *bcd;
RecoveryTypeDescriptor *td;
} RecoveryBaseDescriptor;
typedef struct recovery_complete_object_locator_t {
ut64 addr;
bool valid;
RVTableInfo *vtable;
rtti_complete_object_locator col;
RecoveryTypeDescriptor *td;
rtti_class_hierarchy_descriptor chd;
RList *bcd; // <rtti_base_class_descriptor>
RVector base_td; // <RecoveryBaseDescriptor>
} RecoveryCompleteObjectLocator;
typedef struct rtti_msvc_anal_context_t {
RVTableContext *vt_context;
RPVector vtables; // <RVTableInfo>
RPVector complete_object_locators; // <RecoveryCompleteObjectLocator>
HtUP *addr_col; // <ut64, RecoveryCompleteObjectLocator *>
RPVector type_descriptors; // <RecoveryTypeDescriptor>
HtUP *addr_td; // <ut64, RecoveryTypeDescriptor *>
HtUP *col_td_classes; // <ut64, char *> contains already recovered classes for col (or td) addresses
} RRTTIMSVCAnalContext;
RecoveryTypeDescriptor *recovery_anal_type_descriptor(RRTTIMSVCAnalContext *context, ut64 addr, RecoveryCompleteObjectLocator *col);
static const char *recovery_apply_complete_object_locator(RRTTIMSVCAnalContext *context, RecoveryCompleteObjectLocator *col);
static const char *recovery_apply_type_descriptor(RRTTIMSVCAnalContext *context, RecoveryTypeDescriptor *td);
static void rtti_type_descriptor_fini(rtti_type_descriptor *td) {
free (td->name);
td->name = NULL;
@ -629,25 +657,6 @@ static bool rtti_msvc_print_complete_object_locator_recurse(RVTableContext *cont
R_API bool r_anal_rtti_msvc_print_at_vtable(RVTableContext *context, ut64 addr, int mode, bool strict) {
return rtti_msvc_print_complete_object_locator_recurse (context, addr, mode, strict);
}
typedef struct recovery_type_descriptor_t RecoveryTypeDescriptor;
typedef struct recovery_base_descriptor_t {
rtti_base_class_descriptor *bcd;
RecoveryTypeDescriptor *td;
} RecoveryBaseDescriptor;
typedef struct recovery_complete_object_locator_t {
ut64 addr;
bool valid;
RVTableInfo *vtable;
rtti_complete_object_locator col;
RecoveryTypeDescriptor *td;
rtti_class_hierarchy_descriptor chd;
RList *bcd; // <rtti_base_class_descriptor>
RVector base_td; // <RecoveryBaseDescriptor>
} RecoveryCompleteObjectLocator;
RecoveryCompleteObjectLocator *recovery_complete_object_locator_new() {
RecoveryCompleteObjectLocator *col = R_NEW0 (RecoveryCompleteObjectLocator);
if (!col) {
@ -695,16 +704,6 @@ static void recovery_type_descriptor_free(RecoveryTypeDescriptor *td) {
free (td);
}
typedef struct rtti_msvc_anal_context_t {
RVTableContext *vt_context;
RPVector vtables; // <RVTableInfo>
RPVector complete_object_locators; // <RecoveryCompleteObjectLocator>
HtUP *addr_col; // <ut64, RecoveryCompleteObjectLocator *>
RPVector type_descriptors; // <RecoveryTypeDescriptor>
HtUP *addr_td; // <ut64, RecoveryTypeDescriptor *>
HtUP *col_td_classes; // <ut64, char *> contains already recovered classes for col (or td) addresses
} RRTTIMSVCAnalContext;
RecoveryCompleteObjectLocator *recovery_anal_complete_object_locator(RRTTIMSVCAnalContext *context, ut64 addr, RVTableInfo *vtable) {
RecoveryCompleteObjectLocator *col = ht_up_find (context->addr_col, addr, NULL);

View File

@ -60,7 +60,6 @@ OBJS+=d/i8080.o
OBJS+=d/java.o
OBJS+=d/lm32.o
OBJS+=d/m68k.o
OBJS+=d/malbolge.o
OBJS+=d/mips.o
OBJS+=d/tricore.o
OBJS+=d/s390.o

View File

@ -11,7 +11,6 @@ extern SdbGperf gperf_i8080;
extern SdbGperf gperf_java;
extern SdbGperf gperf_lm32;
extern SdbGperf gperf_m68k;
extern SdbGperf gperf_malbolge;
extern SdbGperf gperf_mips;
extern SdbGperf gperf_ppc;
extern SdbGperf gperf_riscv;
@ -39,7 +38,6 @@ static const SdbGperf *gperfs[] = {
&gperf_s390,
&gperf_lm32,
&gperf_m68k,
&gperf_malbolge,
&gperf_mips,
&gperf_tricore,
&gperf_ppc,

View File

@ -1,6 +1,6 @@
FILES=6502 8051 m68k x86 arc arm avr bpf LH5801 ppc z80 mips sparc sh malbolge xtensa
FILES+=i8080 java i4004 dalvik msp430 lm32 s390 tms320 riscv propeller v810 v850 pickle
FILES+=pic18c chip8 tricore bf
FILES=6502 8051 m68k x86 arc arm avr bpf LH5801 ppc z80 mips sparc sh xtensa
FILES+=i8080 java i4004 dalvik msp430 lm32 s390 tms320 propeller v810 v850
FILES+=pic18c chip8 tricore bf pickle riscv
F_SDB=$(addsuffix .sdb,${FILES})
SDB=../../../shlr/sdb/sdb

View File

@ -1,8 +0,0 @@
crz=crazy operation
end=end
in=inputs a character, as an ascii code
jmp=jump
mov=moves data from src to dst
nop=do nothing
out=prints the value, as an ascii character, to the screen
rotr=rotates the value by one ternary digit

View File

@ -13,7 +13,6 @@ sdb_files = [
'LH5801',
'lm32',
'm68k',
'malbolge',
'mips',
'msp430',
'pic18c',

View File

@ -3,7 +3,7 @@
#define R_DEBUG 0
#define R_RTDEBUG 1
#define WANT_THREADS 1
#define WANT_THREADS @WANT_THREADS@
/* inlined APIs */
#define R_INLINE 0

View File

@ -2,7 +2,7 @@ include ../config.mk
NAME=r_debug
R2DEPS=r_reg r_anal r_bp r_io r_parse r_cons r_syscall
R2DEPS+=r_socket r_flag r_util r_egg r_crypto
R2DEPS+=r_socket r_flag r_util r_egg r_crypto r_esil
CFLAGS+=-DR2_PLUGIN_INCORE
include ../util/deps.mk

View File

@ -36,6 +36,7 @@ r_debug_deps = [
r_util_dep,
r_crypto_dep,
r_reg_dep,
r_esil_dep,
r_syscall_dep,
r_anal_dep,
r_flag_dep,

View File

@ -4,15 +4,16 @@ r_esil_sources = [
'esil_plugin.c',
'esil_stats.c',
'esil_trace.c',
'p/esil_dummy.c',
]
extra_includes = include_directories('../asm/esil/include')
esil_extra_inc = include_directories('..', '../include')
r_esil = library('r_esil', r_esil_sources,
include_directories: [platform_inc, extra_includes],
include_directories: [platform_inc, esil_extra_inc, sdb_inc],
c_args: library_cflags,
dependencies: [
r_util_dep,
sdb_dep,
r_reg_dep
],
install: true,
@ -21,12 +22,13 @@ r_esil = library('r_esil', r_esil_sources,
soversion: r2_libversion
)
r_esil_dep = declare_dependency(link_with: r_esil,
include_directories: [platform_inc])
include_directories: [platform_inc, esil_extra_inc, sdb_inc])
if get_option('blob')
r_esil_static = static_library('r_esil_static', r_esil_sources,
include_directories: [platform_inc, extra_includes],
include_directories: [platform_inc, sdb_inc, esil_extra_inc],
c_args: library_cflags,
dependencies: [r_util_static_dep],
install: true,
@ -34,7 +36,7 @@ r_esil_static = static_library('r_esil_static', r_esil_sources,
)
r_esil_static_dep = declare_dependency(link_with: r_esil_static,
include_directories: [platform_inc])
include_directories: [platform_inc, esil_extra_inc, sdb_inc])
endif
pkgconfig_mod.generate(r_esil,

View File

@ -807,23 +807,6 @@ typedef struct r_anal_plugin_t {
char *(*mnemonics)(RAnal *a, int id, bool json);
} RAnalPlugin;
typedef struct r_anal_esil_plugin_t {
char *name;
char *desc;
char *license;
char *arch;
char *author;
char *version;
void *(*init)(RAnalEsil *esil); // can allocate stuff and return that
void (*fini)(RAnalEsil *esil, void *user); // deallocates allocated things from init
} RAnalEsilPlugin;
// Some kind of container, pointer to plugin + pointer to user
typedef struct r_anal_esil_active_plugin_t {
RAnalEsilPlugin *plugin;
void *user;
} RAnalEsilActivePlugin;
/*----------------------------------------------------------------------------------------------*/
int * (r_anal_compare) (RAnalFunction , RAnalFunction );
/*----------------------------------------------------------------------------------------------*/
@ -1692,7 +1675,6 @@ extern RAnalPlugin r_anal_plugin_kvx;
extern RAnalPlugin r_anal_plugin_lh5801;
extern RAnalPlugin r_anal_plugin_m68k_cs;
extern RAnalPlugin r_anal_plugin_m680x_cs;
extern RAnalPlugin r_anal_plugin_malbolge;
extern RAnalPlugin r_anal_plugin_mcore;
extern RAnalPlugin r_anal_plugin_mips_cs;
extern RAnalPlugin r_anal_plugin_mips_gnu;
@ -1741,7 +1723,6 @@ extern RAnalPlugin r_anal_plugin_hppa_gnu;
extern RAnalPlugin r_anal_plugin_lanai_gnu;
extern RAnalPlugin r_anal_plugin_m68k_gnu;
extern RAnalPlugin r_anal_plugin_lm32;
extern RAnalEsilPlugin r_esil_plugin_dummy;
#ifdef __cplusplus
}

View File

@ -212,6 +212,26 @@ typedef struct r_anal_reil_t {
char pc[8];
} RAnalReil;
typedef struct r_anal_esil_plugin_t {
char *name;
char *desc;
char *license;
char *arch;
char *author;
char *version;
void *(*init)(RAnalEsil *esil); // can allocate stuff and return that
void (*fini)(RAnalEsil *esil, void *user); // deallocates allocated things from init
} RAnalEsilPlugin;
// Some kind of container, pointer to plugin + pointer to user
typedef struct r_anal_esil_active_plugin_t {
RAnalEsilPlugin *plugin;
void *user;
} RAnalEsilActivePlugin;
extern RAnalEsilPlugin r_esil_plugin_dummy;
#ifdef __cplusplus
}
#endif

View File

@ -5,6 +5,8 @@
extern "C" {
#endif
#include <sdb.h>
typedef struct r_type_enum {
char *name;
char *val;

View File

@ -2,7 +2,7 @@ MAIN_LINK_ALL=1
ifeq ($(MAIN_LINK_ALL),1)
R2DEPS=r_config r_cons r_io r_util r_flag r_asm r_core r_arch
R2DEPS+=r_debug r_bin r_lang r_io r_anal r_parse r_bp r_egg
R2DEPS+=r_debug r_bin r_lang r_io r_anal r_parse r_bp r_egg r_esil
R2DEPS+=r_reg r_search r_syscall r_socket r_fs r_magic r_crypto
else
# only works

View File

@ -23,6 +23,7 @@ r_main_deps = [
r_flag_dep,
r_asm_dep,
r_core_dep,
r_esil_dep,
r_debug_dep,
r_bin_dep,
r_lang_dep,

View File

@ -161,7 +161,6 @@ anal_plugins += [
'm68k_cs',
'm68k_gnu',
'm680x_cs',
'malbolge',
'mcore',
'mips_cs',
'msp430',

View File

@ -247,6 +247,7 @@ conf_data.set('plugins_debug', '&r_debug_plugin_' + ', &r_debug_plugin_'.join(de
conf_data.set('plugins_egg', '&r_egg_plugin_' + ', &r_egg_plugin_'.join(egg_plugins) + ', 0')
conf_data.set('plugins_lang', '&r_lang_plugin_' + ', &r_lang_plugin_'.join(lang_plugins) + ', 0')
conf_data.set('plugins_parse', '&r_parse_plugin_' + ', &r_parse_plugin_'.join(parse_plugins) + ', 0')
conf_data.set('WANT_THREADS', get_option('want_threads')? '1': '0')
config_h = configure_file(
input: 'libr/config.h.in',
@ -602,6 +603,7 @@ subdir('libr/config')
subdir('libr/parse')
subdir('libr/lang')
subdir('libr/asm')
subdir('libr/esil')
subdir('libr/anal')
subdir('libr/egg')
subdir('libr/debug')

View File

@ -6,6 +6,6 @@ includedir=${prefix}/include
Name: r_anal
Description: radare foundation libraries
Version: @VERSION@
Requires: r_util r_reg r_syscall r_search r_cons r_flag r_crypto r_arch
Requires: r_util r_reg r_syscall r_search r_cons r_flag r_crypto r_arch r_esil
Libs: -L${libdir} -lr_anal
Cflags: -I${includedir}/libr

View File

@ -6,6 +6,6 @@ includedir=${prefix}/include
Name: r_arch
Description: radare foundation libraries
Version: @VERSION@
Requires: r_util r_reg
Requires: r_util r_reg r_esil
Libs: -L${libdir} -lr_arch
Cflags: -I${includedir}/libr

View File

@ -6,6 +6,6 @@ includedir=${prefix}/include
Name: r_core
Description: radare foundation libraries
Version: @VERSION@
Requires: r_config r_cons r_io r_util r_flag r_asm r_debug r_bin r_lang r_io r_anal r_parse r_bp r_egg r_reg r_search r_syscall r_socket r_fs r_magic r_crypto r_arch
Requires: r_config r_cons r_io r_util r_flag r_asm r_debug r_bin r_lang r_io r_anal r_parse r_bp r_egg r_reg r_search r_syscall r_socket r_fs r_magic r_crypto r_arch r_esil
Libs: -L${libdir} -lr_core @SSL_LDFLAGS@ @CAPSTONE_LDFLAGS@
Cflags: -I${includedir}/libr @SSL_CFLAGS@ @CAPSTONE_CFLAGS@

11
pkgcfg/r_esil.pc.acr Normal file
View File

@ -0,0 +1,11 @@
prefix=@PREFIX@
exec_prefix=${prefix}
libdir=@LIBDIR@
includedir=${prefix}/include
Name: r_esil
Description: radare foundation libraries
Version: @VERSION@
Requires: r_util r_reg
Libs: -L${libdir} -lr_esil
Cflags: -I${includedir}/libr

File diff suppressed because one or more lines are too long

View File

@ -75,10 +75,12 @@ if get_option('enable_tests')
r_core_dep,
r_io_dep,
r_fs_dep,
r_esil_dep,
r_bin_dep,
r_flag_dep,
r_cons_dep,
r_asm_dep,
r_arch_dep,
r_debug_dep,
r_config_dep,
r_bp_dep,