illera88 / Ponce

IDA 2016 plugin contest winner! Symbolic Execution just one-click away!
https://docs.idaponce.com
Other
1.48k stars 72 forks source link

unable to compile Ponce with Visual Studio 13 #80

Closed mxmssh closed 6 years ago

mxmssh commented 6 years ago

Getting the following error when I try to compile Ponce in Visual Studio 2013.

1> utils.cpp 1> Creating library C:\PonceProject\builds\PonceBuild\Win32\Ponce_x86_IDA68_win.lib and object C:\PonceProject\builds\PonceBuild\Win32\Ponce_x86_IDA68_win.exp 1>utils.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall triton::engines::solver::SolverModel::~SolverModel(void)" (??1SolverModel@solver@engines@triton@@UAE@XZ) 1>C:\PonceProject\builds\PonceBuild\Win32\Ponce_x86_IDA68_win.plw : fatal error LNK1120: 1 unresolved externals ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

mxmssh commented 6 years ago

It looks like we have the following definition for destructor in solverModel.hpp:

virtual ~SolverModel();

and we don't have implementation for destructor in Ponce, so, it would not be possible to compile.

mxmssh commented 6 years ago

Actually, Triton has fix for this problem in later commits. We have this problem because we use old version of Triton. So, the possible solution would be the following: 1) Update Triton -> Update Ponce to support updated Triton -> compile -> test in all version of IDA -> close issue 2) Fork Triton (unlink from Triton's git repo) -> remove virtual destructor -> close issue

mxmssh commented 6 years ago

Looks like we simply need to update our Triton version and fix Ponce accordingly.

mxmssh commented 6 years ago

We use Triton version Feb 9 2016, the latest one is Dec 2017. Two years of changes, it would be really painfull to update everything. Need some other solution.

mxmssh commented 6 years ago

The only way to do it in a reasonable time is to fork Triton, we can still pull all required changes in future when we decide to update Ponce (right now the simple fix would work fine).

mxmssh commented 6 years ago

Resolved.