Coder Social home page Coder Social logo

Comments (25)

insuyun avatar insuyun commented on August 30, 2024 1

Currently, I am using -ifeellucky option to support Ubuntu 16.04.
But it seems like 4.17 is not supportable even with the option.

from qsym.

insuyun avatar insuyun commented on August 30, 2024

Thanks, Ben.
I will add Dockerfile to ease your setup.
Sorry for inconvinience!

from qsym.

insuyun avatar insuyun commented on August 30, 2024

@benlaurie Hi, Ben. Could you check the latest README.md and Dockerfile?
Thanks.

from qsym.

tunz avatar tunz commented on August 30, 2024

I think you need to run python setup.py build to build the libqsym.so file. It works for me.

from qsym.

insuyun avatar insuyun commented on August 30, 2024

@tunz I think pip install . will do that for you. no?

from qsym.

tunz avatar tunz commented on August 30, 2024

yes, it seems like pip install . works well.

from qsym.

benlaurie avatar benlaurie commented on August 30, 2024

I'd rather not add docker to the list of stuff I have to mess with.

Are you saying there's a step I missed? Where am I supposed to run what?

from qsym.

benlaurie avatar benlaurie commented on August 30, 2024

Ah, I see the revised instructions. Now I get:

  g++ -DBIGARRAY_MULTIPLIER=1 -Wall -Werror -Wno-unknown-pragmas -fno-stack-protector -DTARGET_IA32E -DHOST_IA32E -fPIC -DTARGET_LINUX  -I/tmp/pip-req-build-o3KA32/third_party/pin-2.14-71313-gcc.4.4.7-linux/source/include/pin -I/tmp/pip-req-build-o3KA32/third_party/pin-2.14-71313-gcc.4.4.7-linux/source/include/pin/gen -I/tmp/pip-req-build-o3KA32/third_party/pin-2.14-71313-gcc.4.4.7-linux/extras/components/include -I/tmp/pip-req-build-o3KA32/third_party/pin-2.14-71313-gcc.4.4.7-linux/extras/xed-intel64/include -I/tmp/pip-req-build-o3KA32/third_party/pin-2.14-71313-gcc.4.4.7-linux/source/tools/InstLib -O3 -fomit-frame-pointer -fno-strict-aliasing  -I/tmp/pip-req-build-o3KA32/qsym/pintool -g -Wno-error=unused-function -std=c++11 -DCONFIG_CONTEXT_SENSITIVE -I/tmp/pip-req-build-o3KA32/third_party/z3/include  -c -o obj-intel64/dependency.o dependency.cpp
  In file included from /tmp/pip-req-build-o3KA32/third_party/pin-2.14-71313-gcc.4.4.7-linux/source/include/pin/pin.H:41:0,
                   from analysis_instruction.h:4,
                   from analysis_instruction.cpp:2:
  /tmp/pip-req-build-o3KA32/third_party/pin-2.14-71313-gcc.4.4.7-linux/source/include/pin/compiler_version_check2.H:102:2: error: #error The C++ ABI of your compiler does not match the ABI of the pin kit.
   #error The C++ ABI of your compiler does not match the ABI of the pin kit.
    ^~~~~
  /tmp/pip-req-build-o3KA32/third_party/pin-2.14-71313-gcc.4.4.7-linux/source/include/pin/compiler_version_check2.H:117:2: error: #error This kit requires gcc 3.4 or later
   #error This kit requires gcc 3.4 or later
    ^~~~~
$ g++ --version
g++ (Debian 7.3.0-5) 7.3.0

from qsym.

benlaurie avatar benlaurie commented on August 30, 2024

This is when doing pip install .

from qsym.

insuyun avatar insuyun commented on August 30, 2024

Could you let me know your environment to build this system?
QSYM is only tested in Ubuntu 16.04 and 14.04 with compilers that are installed by apt.

from qsym.

benlaurie avatar benlaurie commented on August 30, 2024

This is Google's internal version of Debian. I have apt if I need to install different versions of things (probably), or I can take a look at debugging.

from qsym.

insuyun avatar insuyun commented on August 30, 2024

Currently, QSYM is based on PIN 2.14 which is old, but stable version.
PIN 3.x has some problems in supporting external libraries (JonathanSalwan/Triton#324)
and dynamo rio has problems in supporting z3 (DynamoRIO/dynamorio#1881).

That's why I choose PIN 2.14 as our DBT, but it has several dependencies on compilers.
I hope you can fix the issue, if not, I think it would be better to use Docker or VM.
Sorry for that.

from qsym.

benlaurie avatar benlaurie commented on August 30, 2024

What version of gcc/g++ are you using?

from qsym.

insuyun avatar insuyun commented on August 30, 2024

gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10)

Quiet old one.

from qsym.

benlaurie avatar benlaurie commented on August 30, 2024

Hmm. Well, I made it build with gcc 7, but now when I run qsym it doesn't do anything. The root cause seems to be this file is missing: /usr/local/google/home/benl/git-work/qsym/venv/lib/python2.7/site-packages/qsym/../third_party/pin-2.14-71313-gcc.4.4.7-linux/pin.sh

from qsym.

benlaurie avatar benlaurie commented on August 30, 2024

Tests all still fail, by the way.

from qsym.

insuyun avatar insuyun commented on August 30, 2024

@benlaurie Could you check your conf.py is the latest one?
I fix some bug in conf.py.
It should check other path if pin.sh does not exist in the path.

NOTE: https://github.com/sslab-gatech/qsym/blob/master/qsym/conf.py#L3

from qsym.

benlaurie avatar benlaurie commented on August 30, 2024

It would have been helpful to note that I have to redo pip install . to make that change work.

Anyway, now I hit:

Pin 2.14 kit 71293
E:  4.16 is not a supported linux release

This appears to originate from something that is supplied as a binary, so I can't easily fix it.

Presumably docker will not help with this.

from qsym.

insuyun avatar insuyun commented on August 30, 2024

True. My bad.

from qsym.

insuyun avatar insuyun commented on August 30, 2024

This issue is related to #9

from qsym.

Jinmo avatar Jinmo commented on August 30, 2024

There's -ifeellucky option for 4.x kernel in Pin 2.x version, it enables execution on unsupported linux versions. Maybe this can be a workaround? I didn't see any incompatible case on 4.4.0.

from qsym.

benlaurie avatar benlaurie commented on August 30, 2024

Not sure what has changed, but I'm now getting a different error:

timeout -k 5 90 /usr/local/google/home/benl/git-work/qsym/venv/lib/python2.7/site-packages/qsym/../../../../third_party/pin-2.14-71313-gcc.4.4.7-linux/pin.sh -ifeellucky -t /usr/local/google/home/benl/git-work/qsym/venv/lib/python2.7/site-packages/qsym/pintool/obj-intel64/libqsym.so -logfile /tmp/tmpaEmmUX/qsym-out-11/pin.log -i /usr/local/google/home/benl/git-work/qsym/afl-out/4/.cur_input -f 1 -o /tmp/tmpaEmmUX/qsym-out-11 -l 1 -b afl-out/4/bitmap -- ../boringssl/fuzz/fuzz/pkcs12 /usr/local/google/home/benl/git-work/qsym/afl-out/4/.cur_input
E: Unable to load /usr/local/google/home/benl/git-work/qsym/venv/lib/python2.7/site-packages/qsym/pintool/obj-intel64/libqsym.so: /usr/local/google/home/benl/git-work/qsym/venv/lib/python2.7/site-packages/qsym/pintool/obj-intel64/libqsym.so: undefined symbol: _ZN10LEVEL_BASE9KNOBVALUEImE10FromStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

from qsym.

insuyun avatar insuyun commented on August 30, 2024

That is the function in the pin's static library.
But I don't know why it cannot find symbol.

from qsym.

richinseattle avatar richinseattle commented on August 30, 2024

The comment on #14 (comment) says you are on Pin 2.x because of libz3 incompatibility. Have you tried boolector or STP as alternatives? They are actually more performant on bitvector solving in many cases.

from qsym.

insuyun avatar insuyun commented on August 30, 2024

@richinseattle No. I have never tried them. I know that boolector and STP's are good for bitvectors, but z3 is easy to use for me.

from qsym.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.