Git Product home page Git Product logo

Comments (18)

edmcman avatar edmcman commented on September 16, 2024

Can you include more of the error? Specifically, what command failed inside the build.bash script that caused the process to fail?

Building the docker image requires a fair amount of memory and disk space, and it can fail if you don't have enough. You can try this branch which should help if either of those is the problem.

from pharos.

Henbar-hust avatar Henbar-hust commented on September 16, 2024

I think my previous problem is due to the lack of memory, I tried to follow the installation file step by step today and I finished the installation of dependencies.
But at last when I use command
"$ cd pharos
$ mkdir build
$ cd build
$ cmake ..
$ make -j4" to install, another error occurred.
image
(Thanks for your advice, and the installation of ROSE is really ...... )

from pharos.

edmcman avatar edmcman commented on September 16, 2024

It looks like it can't find ROSE. Does /usr/local/bin/rose-config exist?

from pharos.

Henbar-hust avatar Henbar-hust commented on September 16, 2024

Yes it is. I chmod 777 of the it, and it didn't work.
It has anything to do with the cmake version? My is about 3.9

from pharos.

edmcman avatar edmcman commented on September 16, 2024

What does /usr/local/bin/rose-config -V output?

from pharos.

edmcman avatar edmcman commented on September 16, 2024

It sounds like a problem with ROSE, not cmake.

from pharos.

sei-ccohen avatar sei-ccohen commented on September 16, 2024

If you've built and installed ROSE using cmake, there are known problems with the ROSE cmake configuration that will prevent Pharos from building. The failure to install rose-config is but one of these problems, and we're working with the ROSE developers to correct the issues. In the mean time, it's important to ensure that you've built ROSE with automake. Hopefully this helps resolve your issue.

from pharos.

Henbar-hust avatar Henbar-hust commented on September 16, 2024

It looks like a ROSE problem,
image
The librose.so* do exits, but the error still occurred.
image

from pharos.

Henbar-hust avatar Henbar-hust commented on September 16, 2024

I have finished the installation just now by creating a new virtual machine. I gave the VM 12G memory and it takes about 4 hours to install, these time I didn't meet error. I guess that it at least need 10G memory to accomplish the installation if you want to success at the first time .Thank god and all of you :-)
There is another issue is when I use ooanalyzer by docker to analysis an file , I meet a XSB error :
image
it looks like a path during installation.

By the way, is it normal Unable to start Prolog session? ?_?

from pharos.

edmcman avatar edmcman commented on September 16, 2024

I will see if I can reproduce, but does the referenced file exist, and is it readable by you?

from pharos.

edmcman avatar edmcman commented on September 16, 2024

I don't see this behavior. This is using our Docker file? Did you modify anything? What command line are you running?

from pharos.

sei-ccohen avatar sei-ccohen commented on September 16, 2024

It is not normal to fail when starting the Prolog session. I've encountered the xsb_configuration.P error on several occasions, but do not understand the cause. It's something in the XSB installation procedure. My experience has been that touching the missing file is often sufficient to work around the problem.

from pharos.

Henbar-hust avatar Henbar-hust commented on September 16, 2024

Thanks, I'll ask you later if I meet other question. :-)

from pharos.

cyruliu avatar cyruliu commented on September 16, 2024

I don't see this behavior. This is using our Docker file? Did you modify anything? What command line are you running?

Hi, I have the same error when I run callanalyzer --analyze-type --allow-64bit fp-5, how can I solve the problem? The /root is empty on my container. When I run callanalyzer --show-symbolic on my efl executable, it shows complete, but where can I see the analysis result? I didn't see any new output file.

from pharos.

edmcman avatar edmcman commented on September 16, 2024

The --analyze-type option uses Prolog, which explains why if you did not have a working Prolog installation you would get that error.

I think the problem is that we are removing the original build directories in /root to save space for the Docker container. I believe that is removing files that XSB Prolog needs. I am investigating more.

from pharos.

cyruliu avatar cyruliu commented on September 16, 2024

The --analyze-type option uses Prolog, which explains why if you did not have a working Prolog installation you would get that error.

I think the problem is that we are removing the original build directories in /root to save space for the Docker container. I believe that is removing files that XSB Prolog needs. I am investigating more.

Thank you for the response and taking your time for my issue! I want to confirm with you that, does pharos also works for linux binary? As I found tests in the repository are all windows executable, I run callanalyzer --show-symbolic over ELF binaries, it shows nothing, but gives all the function calls (and parameters) when I run it on windows executable which I grab from tests.
I'm not quite understand how callanalyzer gets all the function calls (along with its parameters) from binary (so far as I understand, the binary is for windows executable?), I didn't find any main function call among those output though.

from pharos.

sei-ccohen avatar sei-ccohen commented on September 16, 2024

The Pharos framework has primarily been tested and developed to analyze Windows binaries. The underlying ROSE framework supports ELF executables, and much of that capability has carried forward automatically into Pharos. Importantly for type analysis and the CallAnalyzer tool, the API database is not populated with the parameter types of Linux API calls, which will reduce the effectiveness of the tool. Conceptually it should not be too difficult to extend the API database to include some Linux APIs, but there are also some deficiencies in the Pharos framework related to ELF import handling. In summary, you are correct in noting that CallAnalyzer does not currently operate on ELF executables as well as on Windows executables. If you're interested in investigating further, look at apidb.cpp, and the SQLite database in share/apidb for the answers to some your questions about external API type detection.

from pharos.

cyruliu avatar cyruliu commented on September 16, 2024

The Pharos framework has primarily been tested and developed to analyze Windows binaries. The underlying ROSE framework supports ELF executables, and much of that capability has carried forward automatically into Pharos. Importantly for type analysis and the CallAnalyzer tool, the API database is not populated with the parameter types of Linux API calls, which will reduce the effectiveness of the tool. Conceptually it should not be too difficult to extend the API database to include some Linux APIs, but there are also some deficiencies in the Pharos framework related to ELF import handling. In summary, you are correct in noting that CallAnalyzer does not currently operate on ELF executables as well as on Windows executables. If you're interested in investigating further, look at apidb.cpp, and the SQLite database in share/apidb for the answers to some your questions about external API type detection.

I see, thank you for the response! I will look into it.

from pharos.

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.