lunixbochs / usercorn

dynamic binary analysis via platform emulation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Makefile issues

rpp0 opened this issue · comments

commented

The Makefile always pulls the latest versions of capstone, unicorn and keystone. As a result, make will fail with the followings errors:

deps/gopath/src/github.com/bnagy/gapstone/arm_constants.go:738:22: could not determine kind of name for C.ARM_INS_ASRS
deps/gopath/src/github.com/bnagy/gapstone/arm_constants.go:739:22: could not determine kind of name for C.ARM_INS_LSRS
deps/gopath/src/github.com/bnagy/gapstone/arm_constants.go:749:22: could not determine kind of name for C.ARM_INS_MOVS
deps/gopath/src/github.com/bnagy/gapstone/arm_constants.go:743:22: could not determine kind of name for C.ARM_INS_SUBS

Perhaps the go bindings are broken (seems like they haven't been updated in a while). To fix, git checkout db19431; should be added right after the capstone repository is cloned. After that the build succeeds as normal.

Another issue that occurred for me is that the unicorn dependency seems to assume that python is symlinked to Python 2 by default, which is not true for all systems. Anyway, this is not really a usercorn issue but I thought it was worth mentioning in case anyone else encounters the same issue.

commented

Hi, thanks for responding so quickly. I just cloned the master branch and ran make deps followed by make. Presumably the go list -f '{{join .Deps "\n"}}' ./go/... | grep -v usercorn | grep '\.' | sort -u command from the Makefile still finds gapstone as a dependency due to it being listed in https://github.com/lunixbochs/usercorn/blob/master/go/cmd/cfg/arch.go.

Also, it is a violation of PEP 394 for python to run python3: https://discourse.brew.sh/t/python-and-pep-394/1813

Cool, I didn't know that :).

commented

That seems to work out of the box, thanks!