cmu-sei / pharos

Automated static analysis tools for binary programs
Other
1.57k stars 192 forks source link

Contribute to OOAnalyzer #253

Closed jeroenvanderzwam closed 1 year ago

jeroenvanderzwam commented 1 year ago

I would like to contribute to the project. My focus will be on OOAnalyzer. I'm a Bachelor student and writing a bachelor thesis on the subject of "the recovery of OOP constructs from a C++ created binary". I would say I'm not an expert on the subject, but I do have time, so lets see what's possible. I have basic knowledge of C++ and very little experience with prolog.

My questions for now are:

I have noticed there is a tools directory, that is also where OOAnalyzer resides. It uses libraries in libpharos. I have also noticed there is a share directory where the prolog files are. They are used for the OOP analysis. I do not however understand where these files are used or called from the C++ code.

Any general advice on how to understand the source code?

Thanks in advance.

sei-eschwartz commented 1 year ago

Hello!

It would be great to have you contributing to the project. We have a few ideas for student projects. If you want to email us at eschwartz@cert.org and cfc@cert.org we can discuss some more.

  • Is there any documentation for developers?

Sadly, no, not really. The best resource is the *.hpp files in the libpharos directory.

I have noticed there is a tools directory, that is also where OOAnalyzer resides. It uses libraries in libpharos. I have also noticed there is a share directory where the prolog files are. They are used for the OOP analysis. I do not however understand where these files are used or called from the C++ code.

You can see around here: https://sourcegraph.com/github.com/cmu-sei/pharos@0a300e3a40e306dadcb99887beb42b62245d0d73/-/blob/libpharos/oosolver.cpp?L1441:11-1441:25

Any general advice on how to understand the source code?

We can probably help you directly. Send us an email!