Make cleanup (#666)
* make cleanup * Update .travis.yml Update eflags_nosync.c Update sigill2.c Update ro_mem_test.c Update ro_mem_test.c Update nr_mem_test.c Update mem_fuzz.c Update mem_double_unmap.c Update emu_stop_in_hook_overrun.c Update eflags_nosync.c remove unused Update Makefile Update Makefile Update Makefile Update Makefile Update Makefile Update Makefile Update Makefile Update mem_64_c.c Update mem_64_c.c Update Makefile Update Makefile Update Makefile Update Makefile Update Makefile Update Makefile Update .travis.yml try android ndk build Update unicorn.py Update unicorn.py Update Makefile Update unicorn.py Update unicorn.py remove an untrue comment if a dll/so/dylib gets loaded at runtime is dependent on many different factors, primarily the LD/DYLD paths. Those do not always include the current working directory Update Makefile Update .appveyor.yml Update .travis.yml Update Makefile Update .appveyor.yml Fix bad sample * Update Makefile * Update Makefile * Update install-cmocka-linux.sh * remove verbose option from tar * add upgrade to pacman for cmake * pacman double update, needed to get new packages * enable cmocka unit testing * rejigger commands to fail on any step should get fails in msys builds for cmocka * fix quote * make cmocka in cygwin only * add msys cache
This commit is contained in:

committed by
Nguyen Anh Quynh

parent
b7da7eb8bc
commit
75d90aff52
@ -1,65 +1,16 @@
|
||||
CFLAGS += -Wall -Werror -I../../include
|
||||
LDLIBS += -L../../ $(shell pkg-config --libs glib-2.0) -lpthread -lm -lunicorn
|
||||
|
||||
CFLAGS += -I../../include
|
||||
EXECUTE_VARS = LD_LIBRARY_PATH=../../cmocka/src:../../ DYLD_LIBRARY_PATH=../../
|
||||
|
||||
ifeq (MING,$(findstring MING,$(shell uname -s)))
|
||||
LDFLAGS += ../../unicorn.lib $(shell pkg-config --libs glib-2.0) -lpthread -lm
|
||||
else
|
||||
LDFLAGS += ../../libunicorn.a $(shell pkg-config --libs glib-2.0) -lpthread -lm
|
||||
endif
|
||||
TESTS_SOURCE = $(wildcard *.c)
|
||||
TESTS = $(TESTS_SOURCE:%.c=%)
|
||||
|
||||
TESTS = map_crash map_write
|
||||
TESTS += sigill sigill2
|
||||
TESTS += block_test
|
||||
TESTS += ro_mem_test nr_mem_test
|
||||
TESTS += timeout_segfault
|
||||
TESTS += rep_movsb
|
||||
TESTS += mem_unmap
|
||||
TESTS += mem_double_unmap
|
||||
TESTS += mem_protect
|
||||
TESTS += mem_exec
|
||||
TESTS += mips_kseg0_1
|
||||
TESTS += eflags_nosync
|
||||
TESTS += 00opcode_uc_crash
|
||||
TESTS += eflags_noset
|
||||
TESTS += mem_map_large
|
||||
TESTS += invalid_read_in_cpu_tb_exec
|
||||
TESTS += invalid_write_in_cpu_tb_exec_x86_64
|
||||
TESTS += x86_16_segfault
|
||||
TESTS += mips_invalid_read_of_size_4_when_tracing
|
||||
TESTS += invalid_read_in_tb_flush_x86_64
|
||||
TESTS += sparc_jump_to_zero
|
||||
TESTS += mips_delay_slot_code_hook
|
||||
TESTS += mem_nofree
|
||||
TESTS += rw_hookstack
|
||||
TESTS += threaded_emu_start
|
||||
TESTS += emu_stop_in_hook_overrun
|
||||
TESTS += mips_branch_likely_issue
|
||||
TESTS += hook_extrainvoke
|
||||
TESTS += sysenter_hook_x86
|
||||
TESTS += emu_clear_errors
|
||||
TESTS += mem_fuzz
|
||||
TESTS += 001-bad_condition_code_0xe
|
||||
TESTS += 002-qemu__fatal__unimplemented_control_register_write_0xffb___0x0
|
||||
TESTS += 003-qemu__fatal__wdebug_not_implemented
|
||||
TESTS += 004-segmentation_fault_1
|
||||
TESTS += 005-qemu__fatal__illegal_instruction__0000___00000404
|
||||
TESTS += 006-qemu__fatal__illegal_instruction__0421___00040026
|
||||
TESTS += mem_64_c
|
||||
TESTS += mem_map_0x100000000
|
||||
.PHONY: all clean test
|
||||
|
||||
TESTS += memleak_x86
|
||||
TESTS += memleak_arm
|
||||
TESTS += memleak_arm64
|
||||
TESTS += memleak_mips
|
||||
TESTS += memleak_m68k
|
||||
TESTS += memleak_sparc
|
||||
test: $(TESTS)
|
||||
|
||||
all: $(TESTS)
|
||||
|
||||
clean:
|
||||
rm -f $(TESTS)
|
||||
|
||||
%: %.c
|
||||
$(CC) $(CFLAGS) $^ $(LDFLAGS) -o $@
|
||||
|
||||
.PHONY: all clean
|
||||
|
@ -63,7 +63,7 @@ int main() {
|
||||
}
|
||||
fprintf(stderr, "ok %d - uc_mem_write\n", count++);
|
||||
|
||||
uc_hook h1, h2;
|
||||
uc_hook h1;
|
||||
|
||||
err = uc_hook_add(uc, &h1, UC_HOOK_BLOCK, cb_hookblock, NULL, 1, 0);
|
||||
if (err != UC_ERR_OK) {
|
||||
|
@ -11,7 +11,7 @@
|
||||
#define PAGE_4K (1 << 12)
|
||||
#define TARGET_PAGE_MASK ~(PAGE_4K - 1)
|
||||
#define TARGET_PAGE_PREPARE(addr) (((addr) + PAGE_4K - 1) & TARGET_PAGE_MASK)
|
||||
#define TARGET_PAGE_ALIGN(addr) (addr - (TARGET_PAGE_PREPARE(addr) - addr) & TARGET_PAGE_MASK)
|
||||
#define TARGET_PAGE_ALIGN(addr) ((addr - (TARGET_PAGE_PREPARE(addr) - addr)) & TARGET_PAGE_MASK)
|
||||
|
||||
static uint64_t instructions = 0;
|
||||
|
||||
@ -69,7 +69,6 @@ static void VM_exec()
|
||||
{
|
||||
uc_engine *uc;
|
||||
uc_err err;
|
||||
uint32_t tmp;
|
||||
uc_hook trace1, trace2;
|
||||
unsigned int r_eax, r_ebx, r_ecx, r_edx, r_ebp, r_esp, r_esi, r_edi, r_eip, eflags;
|
||||
unsigned int tr_eax, tr_ebx, tr_ecx, tr_edx, tr_ebp, tr_esp, tr_esi, tr_edi, tr_eip, t_eflags;
|
||||
|
@ -60,7 +60,6 @@ int main(int argc, char **argv, char **envp)
|
||||
{
|
||||
uc_engine *uc;
|
||||
uc_err err;
|
||||
int ret;
|
||||
uc_hook hhc;
|
||||
uint32_t val;
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include <stdio.h>
|
||||
#include <inttypes.h>
|
||||
#include <unicorn/unicorn.h>
|
||||
|
||||
uint64_t starts[] = {0x10000000, 0x110004000ll};
|
||||
@ -24,10 +25,10 @@ int main(int argc, char **argv, char **envp) {
|
||||
err = uc_mem_regions(uc, ®ions, &count);
|
||||
if (err == UC_ERR_OK) {
|
||||
for (i = 0; i < count; i++) {
|
||||
fprintf(stderr, "region %d: 0x%llx-0x%llx (%d)\n", i, regions[i].begin, regions[i].end - 1, regions[i].perms);
|
||||
fprintf(stderr, "region %d: 0x%"PRIx64"-0x%"PRIx64" (%d)\n", i, regions[i].begin, regions[i].end - 1, regions[i].perms);
|
||||
if (regions[i].begin != starts[i]) {
|
||||
err_count++;
|
||||
fprintf(stderr, " ERROR: region start does not match requested start address, expected 0x%llx, found 0x%llx\n",
|
||||
fprintf(stderr, " ERROR: region start does not match requested start address, expected 0x%"PRIx64", found 0x%"PRIx64"\n",
|
||||
starts[i], regions[i].begin);
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,6 @@
|
||||
int main(int argc, char **argv, char **envp)
|
||||
{
|
||||
uc_engine *uc;
|
||||
uc_hook trace1, trace2;
|
||||
uc_err err;
|
||||
|
||||
// Initialize emulator in X86-32bit mode
|
||||
|
@ -84,7 +84,6 @@ void perform_fuzz_step(uc_engine *uc){
|
||||
int main(int argc, char **argv, char **envp)
|
||||
{
|
||||
uc_engine *uc;
|
||||
uc_hook trace1, trace2;
|
||||
uc_err err;
|
||||
if(argc<2){
|
||||
printf("usage: mem_fuzz $seed\n");
|
||||
|
@ -8,7 +8,7 @@ int main() {
|
||||
printf("uc_open() failed: %s\n", uc_strerror(err));
|
||||
}
|
||||
printf("Trying large map.\n");
|
||||
if ((err = uc_mem_map(u, 0x60802000, 0x28bd211200004000, UC_PROT_ALL)) != UC_ERR_OK) {
|
||||
if ((err = uc_mem_map(u, 0x60802000, (unsigned) 0x28bd211200004000, UC_PROT_ALL)) != UC_ERR_OK) {
|
||||
printf("uc_mem_map() failed: %s\n", uc_strerror(err));
|
||||
return -1;
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ static bool hook_mem_invalid(uc_engine *uc, uc_mem_type type,
|
||||
int main(int argc, char **argv, char **envp)
|
||||
{
|
||||
uc_engine *uc;
|
||||
uc_hook trace1, trace2;
|
||||
uc_hook trace1;
|
||||
uc_err err;
|
||||
uint32_t eax, ebx;
|
||||
|
||||
|
@ -46,7 +46,7 @@ bottom:
|
||||
*/
|
||||
|
||||
// callback for tracing instruction
|
||||
static void hook_code(uc_engine *uc, uint64_t address, uint32_t size, void *user_data)
|
||||
/*static void hook_code(uc_engine *uc, uint64_t address, uint32_t size, void *user_data)
|
||||
{
|
||||
uint32_t esp;
|
||||
printf(">>> Tracing instruction at 0x%"PRIx64 ", instruction size = 0x%x\n", address, size);
|
||||
@ -55,6 +55,7 @@ static void hook_code(uc_engine *uc, uint64_t address, uint32_t size, void *user
|
||||
printf(">>> --- ESP is 0x%x\n", esp);
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
// callback for tracing memory access (READ or WRITE)
|
||||
static bool hook_mem_invalid(uc_engine *uc, uc_mem_type type,
|
||||
@ -95,11 +96,10 @@ static bool hook_mem_invalid(uc_engine *uc, uc_mem_type type,
|
||||
int main(int argc, char **argv, char **envp)
|
||||
{
|
||||
uc_engine *uc;
|
||||
uc_hook trace1, trace2;
|
||||
uc_hook trace1;
|
||||
uc_err err;
|
||||
uint8_t bytes[8];
|
||||
uint32_t esp;
|
||||
int result;
|
||||
int map_stack = 0;
|
||||
|
||||
if (argc == 2 && strcmp(argv[1], "--map-stack") == 0) {
|
||||
|
@ -9,7 +9,6 @@
|
||||
int main()
|
||||
{
|
||||
int size;
|
||||
uint8_t *buf;
|
||||
uc_engine *uc;
|
||||
|
||||
uc_err err = uc_open (UC_ARCH_X86, UC_MODE_64, &uc);
|
||||
|
@ -1,11 +1,9 @@
|
||||
|
||||
CFLAGS += -Wall -Werror -Wno-unused-function -g
|
||||
CFLAGS += -L ../../
|
||||
CFLAGS += -I ../../include
|
||||
CFLAGS += -L ../../ -I ../../include
|
||||
CFLAGS += -L ../../cmocka/src -I ../../cmocka/include
|
||||
EXECUTE_VARS = LD_LIBRARY_PATH=../../cmocka/src:../../ DYLD_LIBRARY_PATH=../../
|
||||
LDLIBS += -lcmocka -lunicorn
|
||||
|
||||
LIBS += -lcmocka -lunicorn
|
||||
EXECUTE_VARS = LD_LIBRARY_PATH=../../cmocka/src:../../ DYLD_LIBRARY_PATH=../../
|
||||
|
||||
ifeq ($(UNICORN_ASAN),yes)
|
||||
CC = clang -fsanitize=address -fno-omit-frame-pointer
|
||||
@ -14,9 +12,8 @@ AR = llvm-ar
|
||||
LDFLAGS := -fsanitize=address ${LDFLAGS}
|
||||
endif
|
||||
|
||||
ALL_TESTS = test_sanity test_x86 test_mem_map test_mem_high test_mem_map_ptr \
|
||||
test_tb_x86 test_multihook test_pc_change test_x86_soft_paging \
|
||||
test_hookcounts test_hang test_x86_shl_enter_leave test_x86_rip_bug
|
||||
ALL_TESTS_SOURCES = $(wildcard *.c)
|
||||
ALL_TESTS = $(ALL_TESTS_SOURCES:%.c=%)
|
||||
|
||||
.PHONY: all
|
||||
all: ${ALL_TESTS}
|
||||
@ -32,28 +29,11 @@ test: ${ALL_TESTS}
|
||||
${EXECUTE_VARS} ./test_mem_map
|
||||
${EXECUTE_VARS} ./test_mem_map_ptr
|
||||
${EXECUTE_VARS} ./test_mem_high
|
||||
echo "skipping test_tb_x86" #${EXECUTE_VARS} ./test_tb_x86
|
||||
${EXECUTE_VARS} ./test_multihook
|
||||
${EXECUTE_VARS} ./test_pc_change
|
||||
echo "skipping test_x86_soft_paging" #${EXECUTE_VARS} ./test_x86_soft_paging
|
||||
${EXECUTE_VARS} ./test_hookcounts
|
||||
echo "skipping test_hang" #${EXECUTE_VARS} ./test_hang
|
||||
echo "skipping test_x86_sh1_enter_leave" #${EXECUTE_VARS} ./test_x86_shl_enter_leave
|
||||
echo "skipping test_x86_rip_bug" #${EXECUTE_VARS} ./test_x86_rip_bug
|
||||
|
||||
test_sanity: test_sanity.c
|
||||
test_x86: test_x86.c
|
||||
test_mem_map: test_mem_map.c
|
||||
test_mem_map_ptr: test_mem_map_ptr.c
|
||||
test_mem_high: test_mem_high.c
|
||||
test_tb_x86: test_tb_x86.c
|
||||
test_multihook: test_multihook.c
|
||||
test_pc_change: test_pc_change.c
|
||||
test_x86_soft_paging: test_x86_soft_paging.c
|
||||
test_hookcounts: test_hookcounts.c
|
||||
test_hang: test_hang.c
|
||||
test_x86_shl_enter_leave: test_x86_shl_enter_leave.c
|
||||
test_x86_rip_bug: test_x86_rip_bug.c
|
||||
|
||||
${ALL_TESTS}:
|
||||
${CC} ${CFLAGS} -o $@ $^ ${LIBS}
|
||||
echo "skipping test_tb_x86"
|
||||
echo "skipping test_x86_soft_paging"
|
||||
echo "skipping test_hang"
|
||||
echo "skipping test_x86_sh1_enter_leave"
|
||||
echo "skipping test_x86_rip_bug"
|
||||
|
Reference in New Issue
Block a user