Commit graph

52 commits

Author SHA1 Message Date
Catena cyber 86be817717
Fuzz
* Integration with oss-fuzz

* Use CFLAGS even for linking

as for fuzzing with asan

* Do not abort on uc_emu_start error

* Redirect fuzz output somewhere else than stdout

* Use uc_open for every fuzz instance

* Avoids timeouts from infinite loops

Limiting the number of instructions

* Moving fuzz to tests directory
2018-10-06 04:49:11 -04:00
Nguyen Anh Quynh ca1c319c3d
MacOS: do not build in universal format by default
Backports commit 1cb45fab51aaddf480948bf28700c3ab129366b2 from unicorn
2018-09-03 07:59:29 -04:00
Alex von Gluck IV 80b94a546f
Haiku support patches (#989)
* Haiku: fix broken gcc strong stack protector

* qemu: Backport minor Haiku fix

We need to push this fix upstream to qemu. If we don't
get it upstreamed, i'll circle back and patch it if
Unicorn updates its qemu version.

Backports commit c7be4a2160e15089563f207752fb346a38db18ec from unicorn
2018-09-03 07:55:51 -04:00
Daniel P. Berrange 5019f39c15
crypto: introduce new module for computing hash digests
Introduce a new crypto/ directory that will (eventually) contain
all the cryptographic related code. This initially defines a
wrapper for initializing gnutls and for computing hashes with
gnutls. The former ensures that gnutls is guaranteed to be
initialized exactly once in QEMU regardless of CLI args. The
block quorum code currently fails to initialize gnutls so it
only works by luck, if VNC server TLS is not requested. The
hash APIs avoids the need to litter the rest of the code with
preprocessor checks and simplifies callers by allocating the
correct amount of memory for the requested hash.

Backports commit ddbb0d09661f5fce21b335ba9aea8202d189b98e from qemu
2018-02-17 15:23:17 -05:00
zhangwm 2e973a13f0 arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
zhangwm d8fe34a2e8 armeb: Add support for ARM big endian. 2017-03-13 22:32:44 +08:00
Neal Gompa (ニール・ゴンパ) fc72622ba8 Makefile: Allow for overriding job threads for making 'qemu' dir (#762)
Providing a default level of parallelism is perfectly fine, but it
should also be possible to set higher or lower levels of parallelism
easily. This is particularly beneficial for people packaging the
software for Linux distributions.
2017-02-24 21:49:29 +08:00
Nguyen Anh Quynh 8f488a101c Makefile: clean remove library *.{a,def} 2017-02-23 20:57:14 +08:00
Nguyen Anh Quynh 9a79d6fe9f Merge branch 'master' into noglib2 2016-12-27 16:48:23 +08:00
Andrew Dutcher bf2cd79a4d Windows: export a static lib that can be used outside of mingw (#699)
* Windows: export a static lib that can be used outside of mingw

* Add comments to windows_export.bat
2016-12-27 16:30:07 +08:00
Nguyen Anh Quynh 14ab8df36b Merge branch 'master' into noglib 2016-12-26 13:46:38 +08:00
danghvu 06541894ea Makefile: uc.o and list.o is compiled with qemu, fix for issue #696 2016-12-25 21:46:52 -06:00
Nguyen Anh Quynh 93044e39f1 Merge branch 'master' into noglib 2016-12-22 12:13:34 +08:00
Nguyen Anh Quynh 2386293020 Makefile: add a note on 'header' target 2016-12-22 01:12:10 +08:00
Nguyen Anh Quynh c42e118832 on MacOS, compile in Universal format by default 2016-12-19 22:07:38 +08:00
Nguyen Anh Quynh 5f81c00559 Merge branch 'noglib' of https://github.com/cseagle/unicorn into cseagle-noglib 2016-12-19 17:32:27 +08:00
Chris Eagle e46545f722 remove glib dependency by provide compatible replacements 2016-12-18 14:56:58 -08:00
ant1 f6908e2c62 Do not prepend DESTDIR twice when installing unicorn.pc on FreeBSD 2016-12-17 07:25:06 +00:00
Nguyen Anh Quynh ab9bae4f3e revert the change on verbose option for Makefile 2016-11-19 17:20:05 +08:00
Stephen 6bce28c946 Update Makefile 2016-11-11 08:40:22 -08:00
Stephen a931761dad Update Makefile 2016-11-11 08:31:16 -08:00
Stephen 9f0cdc4be9 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
2016-11-11 07:45:06 -08:00
Stephen 186540e160 make cleanup 2016-11-06 16:27:24 -08:00
Stephen bc08bfda67 Unit testing in CI (#651)
- in appveyor, install clang and cmake in cygwin, enable package upgrades, and build cmocka and enable testing for gcc only
- in `gitignore`, ignore generated cmocka folder
- in travis, use brew in osx to install cmocka, and enable testing for gcc and clang on os x and linux
- in `Makefile`, change to use `uname -s` to determine os type
- make `install-cmocka-linux.sh`, a simple shell script to download and install cmocka on linux
- in `bindings/Makefile`, enable `make -c` to call subdirectory makefiles instead of `cd [dir] && make` and include environment variables for runtime access to generated libraries
- in `samples/Makefile`, change to use `uname -s` to determine os type, remove `clean_bins` from `all` command, and include `Werror` for compile strictness
- in `tests/unit/Makefile`, add `cflags` for compile time access to cmocka headers and library, include execute vars for runtime access to cmocka and unicorn libs
- in `tests/unit/test_tb_x86.c`, comment out assert that would not compile
2016-10-22 00:21:10 +08:00
4577 1f978de447 Remove BUILDDIR-specific code 2016-09-04 08:59:31 +02:00
Hoang-Vu Dang d15b128ef3 Fix issue #601 2016-08-06 21:26:47 -05:00
Nguyen Anh Quynh 6f5e59be73 make.sh: add new option 'macos-universal' to build MacOS universal binaries 2016-07-15 16:34:16 +08:00
Nguyen Anh Quynh eea0b2d520 build MacOS binaries in universal format. based on suggestion of @ThomasKing2014 at issue #482 2016-07-15 14:12:30 +08:00
Nguyen Anh Quynh fef59a4e3c Makefile: re-enable CC flag -fvisibility=hidden 2016-04-27 16:32:30 +08:00
Zach Riggle 93063d089b Add ASAN build target with UNICORN_ASAN or via './make.sh asan' 2016-04-20 16:16:06 -07:00
Nguyen Anh Quynh d2ffea0e88 Makefile: do not recompile samples/ for install target 2016-03-21 13:02:17 +08:00
Nguyen Anh Quynh 249e2ac0a0 Merge branch 'hook-refactor' of https://github.com/lunixbochs/unicorn into lunixbochs-hook-refactor 2016-01-23 10:58:37 +08:00
Ryan Hileman 93052f6566 refactor to allow multiple hooks for one type 2016-01-22 18:41:43 -08:00
Nguyen Anh Quynh ca8c66d9f8 compile with -j4 option to reduce memory usage (issue #209) 2016-01-19 13:34:08 +08:00
Nguyen Anh Quynh b3ebd1b7cb Merge branch 'master' of https://github.com/iroiro123/unicorn into iroiro123-master 2016-01-01 14:01:39 +08:00
Nguyen Anh Quynh 10228dcb12 link shared library with option -Bsymbolic-functions. proposed by @egberts. this fixes issue #187 2015-12-29 01:11:37 +08:00
Hiroyuki Uekawa 6445c80b29 Build for Cygwin 2015-12-20 22:00:35 +09:00
Nguyen Anh Quynh 342a68f9da fix setting cross compilation variables. this is ported over from Capstone 2015-12-20 10:05:04 +08:00
Nguyen Anh Quynh 203876d4f6 support building on OSX 10.6.8. this fix is ported over from Capstone 2015-12-20 10:00:34 +08:00
pancake b15a179a18 Fix #184 - Proper handling of DESTDIR 2015-11-10 11:47:19 +01:00
Nguyen Anh Quynh a1f8c8ae87 Makefile: overwrite existent library for install target with 'ln -sf' 2015-10-25 09:44:01 +08:00
Jonathon Reinhart efb0c87e39 fix install logic after changing LIBRARY
Now that LIBRARY is the versioned name (e.g. "libunicorn.so.0"), we
don't need this rename step; just create the symlink for libunicorn.so.
If VERSION_EXT isn't set, then the library we installed already has the
correct name, and no symlink is necessary.

We should probably be running 'ldconfig' to handle this, or better yet,
using libtool.
2015-10-24 16:43:34 -04:00
Jonathon Reinhart c7de7e44a6 create versioned library name and symlink unversioned name on *nix
This allows executables (e.g. unit tests) to link against the
libunicorn.so in the build directory, after the SONAME was added in
4860fdb3.

Becuase libunicorn.so has an SONAME of libunicorn.so.0, the linker uses
the SONAME for the DT_NEEDED entry of the tests. But because a library
with that name did not exist, they would fail to run.
2015-10-21 22:48:25 -04:00
Nguyen Anh Quynh bc96e221df fix UNICORN_DEBUG backward setting (issue #204) 2015-10-19 08:47:19 +08:00
Nguyen Anh Quynh 4860fdb34c add soname to dynamic library. this fixes issue #188 2015-10-16 22:03:24 +08:00
danghvu 242713ce64 Missing update on make test clean 2015-09-21 21:04:20 -05:00
danghvu 3c1d65ea66 Reorganize test directories 2015-09-21 20:47:45 -05:00
Jonathon Reinhart 1be8ef69c8 add 'test' to main Makefile 2015-09-20 22:16:48 -04:00
fabs caad81e2da Add UNICORN_QEMU_FLAGS
Fixes #107
2015-09-04 17:56:29 +02:00
danghvu 1161401c35 Makefile: make install also compiles samples 2015-08-26 16:20:29 +07:00