riboseinc / retrace

retrace is a versatile security vulnerability / bug discovery tool through monitoring and modifying the behavior of compiled binaries on Linux, OpenBSD/FreeBSD/NetBSD (shared object) and macOS (dynamic library).
Other
60 stars 19 forks source link

Setup cloud hosted OS X for debugging #272

Closed drystone closed 7 years ago

drystone commented 7 years ago

For those of us not fortunate enough (or too sensible ;) to own a Mac, a cloud Mac would be extremely useful. Would someone with Mac-fu please set up a VM with all build depends in place so we can simply ssh in, ./configure; make and gdb.

ronaldtse commented 7 years ago

@drystone I've setup retrace on our internal Jenkins macOS slave so every new/updated PR will cause the macOS build to run.

Unfortunately it is not very much "debuggable" on the fly, but here's the script to run the macOS build for your reference. So if you change ci/{install,main}.sh the build will be updated too.

export PATH=$PATH:/usr/local/bin

function install_packages() {
  brew update
  brew install openssl
  brew install make
  brew install cmake
  brew install autoconf
  brew install automake
  brew install libtool
  brew install cmocka
  brew install pkg-config
}

mkdir -p deps
export CMOCKA_INSTALL="$(pwd)/deps/cmocka-install"
export CHECKPATCH_INSTALL="$(pwd)/deps/checkpatch-install"
mkdir -p $CMOCKA_INSTALL

install_packages

if [ -d ~/builds/cmocka ]; then
  rm -rf ~/builds/cmocka
fi

./ci/install.sh
./ci/main.sh
ronaldtse commented 7 years ago

@drystone just to let you know that Travis also supports macOS -- so we can also run it there given that someone is willing to update the .travis.yml file!

drystone commented 7 years ago

@ronaldtse I suppose it would be possible to set up an ssh tunnel and access either your internal slave or travis that way. The trouble with travis is that is seems there is a 30 minute wait for a MacOS instance at peak times. Would it be possible to hire something like a basic xcloud server as ability to use gdb would be really beneficial to track down bugs like the send bug we're seeing at the moment. I suppose we could also go the virtualbox route as @jjr840430 has suggested but I'm not entirely happy running untrusted proprietary images on my network.

ronaldtse commented 7 years ago

Resolved.