Problems Issues and Resolutions

Please ask if you have any problems, issues and possible resolutions anything related to OpenEDR and
EDR Security

@ozer I am facing so many build errors while trying to build from source code using given solution file in build folder available in source code package.
For errors regarding netfilter and madcodehook is ok beacuse those two require license but what about other errors.
could you please help in this.
using visual studio 2019

Hi @ozer,

Once resolved boost_date_time static lib linking error then i got jsoncpp_lib.lib link error and that is also resolved by externally downloaded and building it and then linked to edrcon project and then i got jsonrpccpp-common.lib link error. so might be so on for some other errors.

Errors:
Severity Code Description Project File Line Suppression State
Error LNK1104 cannot open file ‘jsonrpccpp-common.lib’ edrcon C:\Users\user_name\Downloads\openedr-2.0.0.0\edrav2\iprj\edrcon\build\vs2019\LINK 1

can we build those projects which are not related to netfilter and madchook in visual studio 2019 by using solution file given in open edr source code package and with removing above mentioned errors and likewise errors ?

if yes then please help us in build process. if everything is fine then we can able to decide about buying the licenses for netfilter and madchook.

if no then could you please help in build direction.

Community help also appreciated.

Thanks in advance.

Hi @Nilesh.Patel,
The solution not required additional downloads, looks like you didn’t successfully build static libs.
To find a problem you can try to build the following libraries: libcloud, libcore, libedr. Build should be completed without errors.
But almost all binaries are dependent on libsyswin, libnetmon, libprocmon, which requires madchook and netfilter, so without a lot of code changes and loss of functionality, you can’t build them.
Also, you use the solution file located on the following path:openedr\edrav2\iprj\build\vs2019, right?

Hi @Basil,

Thanks for your reply.

There is no such solution file in the path which you have asked.
I am using solution file from the following path : openedr-2.0.0.0\edrav2\build\vs2019 .

As per your statement “But almost all binaries are dependent on libsyswin, libnetmon, libprocmon, which requires madchook and netfilter, so without a lot of code changes and loss of functionality, you can’t build them.”, need to buy first netfilter and madchook license then only build possible right? because same i understood from their source package.

did you buy those license? if yes then is it working fine after successful build, if no then do you have any such solution for this issues?

Help appreciated from any member in the community, @ozer, @melih.

Hi, you right, build possible only with madchook and netfilter. We have licenses for both because EDR uses them.
Additionally, we have a couple of patches in that libs, (6 for nfsdk-1.5.8.1 and pf-1.2.2.4 and 20 for MadChook v4.1.2). It could be shared but require additional code preparation.
FYI if you plan to use driver build by yourself in production - you need to sign it in Microsoft.

Hi Basil,

Thanks for your reply.

Could you please share those patches, it would be great help from you.

Now, we have license for madchook and as of now removed errors regarding madchook.

For netfilter, we have downloaded demo package without source code from their official site
and package having headers and libs for netfilter and protocol filter.
And we have got information from netfilter official site that they have limitation on connection only, after max connection it will get reset on system reboot.
JFYI : Download NetFilter SDK components

So as of now, we have used this headers and libs by giving required paths in build of open edr but still getting below errors.
Could you please help to resolve below errors.

Severity Code Description Project File Line Suppression State
Error (active) E1018 namespace “ProtocolFilters” has no member class “PFEventsDefault” libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 31
Error (active) E0276 name followed by ‘::’ must be a class or namespace name libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 32
Error (active) E0135 namespace “ProtocolFilters” has no member “PFEventsDefault” libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 36
Error (active) E1455 member function declared with ‘override’ does not override a base class member libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 131
Error (active) E1455 member function declared with ‘override’ does not override a base class member libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 132
Error (active) E1455 member function declared with ‘override’ does not override a base class member libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 134
Error (active) E1455 member function declared with ‘override’ does not override a base class member libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 135
Error (active) E1455 member function declared with ‘override’ does not override a base class member libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 136
Error (active) E1455 member function declared with ‘override’ does not override a base class member libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 137
Error (active) E1455 member function declared with ‘override’ does not override a base class member libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 138
Error (active) E1455 member function declared with ‘override’ does not override a base class member libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 140
Error (active) E1455 member function declared with ‘override’ does not override a base class member libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 141
Error (active) E1455 member function declared with ‘override’ does not override a base class member libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 142
Error (active) E1455 member function declared with ‘override’ does not override a base class member libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 143
Error (active) E1455 member function declared with ‘override’ does not override a base class member libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 146
Error (active) E0276 name followed by ‘::’ must be a class or namespace name libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 146
Error C1083 Cannot open include file: ‘SystemIncludes.h’: No such file or directory libsyswin C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libsyswin\src\pch.h 41
Error C2039 ‘PFEventsDefault’: is not a member of ‘ProtocolFilters’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 30
Error C2504 ‘PFEventsDefault’: base class undefined libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 30
Error C3083 ‘cmdedr’: the symbol to the left of a ‘::’ must be a type libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 31
Error C2039 ‘CustomEventHandler’: is not a member of ‘nfapi’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 31
Error C2504 ‘CustomEventHandler’: base class undefined libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 32
Error C2039 ‘PFEventsDefault’: is not a member of ‘ProtocolFilters’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 35
Error C3646 ‘PFEventsDefault’: unknown override specifier libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 35
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 35
Error C3083 ‘cmdedr’: the symbol to the left of a ‘::’ must be a type libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 145
Error C2039 ‘ListenInfo’: is not a member of ‘nfapi’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 145
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::threadStart’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 130
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::threadEnd’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 131
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::tcpConnectRequest’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 133
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::tcpConnected’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 134
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::tcpClosed’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 135
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::dataAvailable’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 136
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::dataPartAvailable’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 137
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::udpCreated’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 139
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::udpClosed’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 140
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::udpPostReceive’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 141
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::udpPostSend’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 142
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::tcpListened’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 145
Error C2039 ‘PFEventsDefault’: is not a member of ‘ProtocolFilters’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 30
Error C2504 ‘PFEventsDefault’: base class undefined libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 30
Error C3083 ‘cmdedr’: the symbol to the left of a ‘::’ must be a type libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 31
Error C2039 ‘CustomEventHandler’: is not a member of ‘nfapi’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 31
Error C2504 ‘CustomEventHandler’: base class undefined libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 32
Error C2039 ‘PFEventsDefault’: is not a member of ‘ProtocolFilters’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 35
Error C3646 ‘PFEventsDefault’: unknown override specifier libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 35
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 35
Error C3083 ‘cmdedr’: the symbol to the left of a ‘::’ must be a type libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 145
Error C2039 ‘ListenInfo’: is not a member of ‘nfapi’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 145
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::threadStart’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 130
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::threadEnd’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 131
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::tcpConnectRequest’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 133
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::tcpConnected’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 134
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::tcpClosed’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 135
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::dataAvailable’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 136
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::dataPartAvailable’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 137
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::udpCreated’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 139
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::udpClosed’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 140
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::udpPostReceive’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 141
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::udpPostSend’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 142
Error C3668 ‘openEdr::netmon::win::NetFilterWrapper::tcpListened’: method with override specifier ‘override’ did not override any base class methods libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.h 145
Error C3083 ‘cmdedr’: the symbol to the left of a ‘::’ must be a type libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.cpp 315
Error C2039 ‘ListenInfo’: is not a member of ‘nfapi’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.cpp 315
Error C2039 ‘ip_family’: is not a member of ‘openEdr::netmon::ListenInfo’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.cpp 322
Error C2039 ‘localAddr’: is not a member of ‘openEdr::netmon::ListenInfo’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.cpp 326
Error C2660 ‘openEdr::netmon::win::createAddressInfo’: function does not take 2 arguments libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.cpp 326
Error C2664 ‘BOOL ProtocolFilters::pf_init(ProtocolFilters::PFEvents *,const wchar_t *)’: cannot convert argument 1 from ‘openEdr::netmon::win::NetFilterWrapper *’ to ‘ProtocolFilters::PFEvents *’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.cpp 651
Error C3083 ‘cmdedr’: the symbol to the left of a ‘::’ must be a type libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.cpp 657
Error C2039 ‘setCustomEventHandler’: is not a member of ‘nfapi’ libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.cpp 657
Error C3861 ‘setCustomEventHandler’: identifier not found libnetmon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\libnetmon\src\nfwrapper_win.cpp 657
Error LNK1104 cannot open file ‘libboost_date_time-vc142-mt-sgd-x64-1_70.lib’ edrcon C:\Users\nilesh\Downloads\openedr-2.0.0.0\openedr-2.0.0.0\edrav2\iprj\edrcon\build\vs2019\LINK 1

Thanks in advance for all members in the community.
@Basil, @ozer, @melih

New Version is out, would welcome your feedback please.