[Forensics-changes] [yara] 48/135: Fix compilation in Windows

Hilko Bengen bengen at moszumanska.debian.org
Sat Jul 1 10:27:31 UTC 2017


This is an automated email from the git hooks/post-receive script.

bengen pushed a commit to annotated tag v3.1.0
in repository yara.

commit 6a11508161bdf0ffe4060408e3a7c8ad5f2371f9
Author: Victor M. Alvarez <plusvic at gmail.com>
Date:   Fri Jul 4 14:00:13 2014 +0200

    Fix compilation in Windows
---
 libyara/include/yara/modules.h  | 10 +++++-----
 libyara/include/yara/utils.h    |  5 +++++
 libyara/modules.c               |  5 +++--
 libyara/modules/cuckoo.c        |  2 +-
 libyara/modules/pe.c            |  9 +++++++--
 windows/libyara/libyara.vcxproj | 25 +++++++++++++++++--------
 windows/yara/yara.vcxproj       | 10 ++++++----
 windows/yarac/yarac.vcxproj     | 11 +++++++----
 8 files changed, 51 insertions(+), 26 deletions(-)

diff --git a/libyara/include/yara/modules.h b/libyara/include/yara/modules.h
index b80765e..92d0e33 100644
--- a/libyara/include/yara/modules.h
+++ b/libyara/include/yara/modules.h
@@ -40,10 +40,10 @@ limitations under the License.
 
 
 #define begin_declarations \
-    int module_declarations(YR_OBJECT* main_structure) { \
+    int module_declarations(YR_OBJECT* module) { \
       YR_OBJECT* stack[64]; \
       int stack_top = 0; \
-      stack[stack_top] = main_structure;
+      stack[stack_top] = module;
 
 
 #define end_declarations \
@@ -200,19 +200,19 @@ limitations under the License.
 
 
 typedef int (*YR_EXT_DECLARATIONS_FUNC)( \
-    YR_OBJECT* main_structure);
+    YR_OBJECT* module);
 
 
 typedef int (*YR_EXT_LOAD_FUNC)( \
     YR_SCAN_CONTEXT* context,
-    YR_OBJECT* main_structure,
+    YR_OBJECT* module,
     void* module_data,
     size_t module_data_size);
 
 
 
 typedef int (*YR_EXT_UNLOAD_FUNC)( \
-    YR_OBJECT* main_structure);
+    YR_OBJECT* module);
 
 
 typedef struct _YR_MODULE
diff --git a/libyara/include/yara/utils.h b/libyara/include/yara/utils.h
index 4f19a1c..1357c36 100644
--- a/libyara/include/yara/utils.h
+++ b/libyara/include/yara/utils.h
@@ -45,6 +45,11 @@ limitations under the License.
 
 #define PTR_TO_UINT64(x)  ((uint64_t) (size_t) x)
 
+#ifdef WIN32
+#define snprintf _snprintf
+#define strcasecmp _stricmp
+#endif
+
 
 #ifdef NDEBUG
 #define assertf(expr, msg)  ((void)0)
diff --git a/libyara/modules.c b/libyara/modules.c
index db90cff..5266ef8 100644
--- a/libyara/modules.c
+++ b/libyara/modules.c
@@ -23,13 +23,14 @@ limitations under the License.
 
 
 #define MODULE(name) \
-    int name ## _declarations(); \
+    int name ## _declarations(YR_OBJECT* module); \
     int name ## _load(YR_SCAN_CONTEXT* context, \
-                      YR_OBJECT* main_structure, \
+                      YR_OBJECT* module, \
                       void* module_data, \
                       size_t module_data_size); \
     int name ## _unload(YR_OBJECT* main_structure);
 
+
 #include <modules/list>
 
 #undef MODULE
diff --git a/libyara/modules/cuckoo.c b/libyara/modules/cuckoo.c
index 515ca83..76f13eb 100644
--- a/libyara/modules/cuckoo.c
+++ b/libyara/modules/cuckoo.c
@@ -30,7 +30,7 @@ define_function(network_dns_lookup)
   YR_OBJECT* network_obj = self();
 
   json_t* network_json = (json_t*) network_obj->data;
-  json_t* dns_json = json_object_get(network_json, "dns");;
+  json_t* dns_json = json_object_get(network_json, "dns");
   json_t* value;
 
   uint64_t result = 0;
diff --git a/libyara/modules/pe.c b/libyara/modules/pe.c
index f87ac14..c570d3c 100644
--- a/libyara/modules/pe.c
+++ b/libyara/modules/pe.c
@@ -14,7 +14,12 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
+#ifdef WIN32
+#include <windows.h>
+#else
 #include <yara/pe.h>
+#endif
+
 #include <yara/modules.h>
 
 
@@ -80,12 +85,12 @@ uint64_t rva_to_offset(
   DWORD section_rva;
   DWORD section_offset;
 
+  int i = 0;
+
   section = IMAGE_FIRST_SECTION(pe_header);
   section_rva = 0;
   section_offset = 0;
 
-  int i = 0;
-
   while(i < MIN(pe_header->FileHeader.NumberOfSections, 60))
   {
     if ((uint8_t*) section - \
diff --git a/windows/libyara/libyara.vcxproj b/windows/libyara/libyara.vcxproj
index 5227524..8cd004e 100644
--- a/windows/libyara/libyara.vcxproj
+++ b/windows/libyara/libyara.vcxproj
@@ -74,14 +74,15 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\libyara\regex;..\libyara;..\..\windows\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..;..\..\libyara;..\..\libyara\include;..\..\windows\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <DisableSpecificWarnings>4005;4273;4090;</DisableSpecificWarnings>
     </ClCompile>
     <Lib>
       <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
-      <AdditionalDependencies>advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>advapi32.lib;jansson32.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\lib</AdditionalLibraryDirectories>
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
     </Lib>
     <ProjectReference>
       <LinkLibraryDependencies>false</LinkLibraryDependencies>
@@ -90,12 +91,12 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <PreprocessorDefinitions>WIN32;</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\windows\include;..\libyara;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..;..\..\libyara;..\..\libyara\include;..\..\windows\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <DisableSpecificWarnings>4005;4273;4090;</DisableSpecificWarnings>
     </ClCompile>
     <Lib>
       <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
-      <AdditionalDependencies>advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>advapi32.lib;jansson64.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\lib</AdditionalLibraryDirectories>
     </Lib>
     <ProjectReference>
@@ -105,25 +106,27 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\libyara\regex;..\libyara;..\..\windows\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..;..\..\libyara;..\..\libyara\include;..\..\windows\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <DisableSpecificWarnings>4005;4273;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings>
     </ClCompile>
     <Lib>
-      <AdditionalDependencies>advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>advapi32.lib;jansson32.lib%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\lib</AdditionalLibraryDirectories>
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
     </Lib>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
       <PreprocessorDefinitions>WIN32;</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\windows\include;..\libyara;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..;..\..\libyara;..\..\libyara\include;..\..\windows\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <DisableSpecificWarnings>4005;4273;4090;%(DisableSpecificWarnings)</DisableSpecificWarnings>
     </ClCompile>
     <Lib>
-      <AdditionalDependencies>advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>advapi32.lib;jansson64.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\lib</AdditionalLibraryDirectories>
       <SuppressStartupBanner>false</SuppressStartupBanner>
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>
     </Lib>
   </ItemDefinitionGroup>
   <ItemGroup>
@@ -141,12 +144,18 @@
     <ClCompile Include="..\..\libyara\lexer.c" />
     <ClCompile Include="..\..\libyara\libyara.c" />
     <ClCompile Include="..\..\libyara\mem.c" />
+    <ClCompile Include="..\..\libyara\modules.c" />
+    <ClCompile Include="..\..\libyara\modules\cuckoo.c" />
+    <ClCompile Include="..\..\libyara\modules\pe.c" />
+    <ClCompile Include="..\..\libyara\modules\tests.c" />
+    <ClCompile Include="..\..\libyara\object.c" />
     <ClCompile Include="..\..\libyara\parser.c" />
     <ClCompile Include="..\..\libyara\proc.c" />
     <ClCompile Include="..\..\libyara\re.c" />
     <ClCompile Include="..\..\libyara\re_grammar.c" />
     <ClCompile Include="..\..\libyara\re_lexer.c" />
     <ClCompile Include="..\..\libyara\rules.c" />
+    <ClCompile Include="..\..\libyara\scan.c" />
     <ClCompile Include="..\..\libyara\utils.c" />
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
diff --git a/windows/yara/yara.vcxproj b/windows/yara/yara.vcxproj
index 88d96a2..0a76593 100644
--- a/windows/yara/yara.vcxproj
+++ b/windows/yara/yara.vcxproj
@@ -42,6 +42,7 @@
     <ConfigurationType>Application</ConfigurationType>
     <UseDebugLibraries>true</UseDebugLibraries>
     <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
     <ConfigurationType>Application</ConfigurationType>
@@ -97,8 +98,9 @@
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\libyara;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\libyara\include;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <WholeProgramOptimization>false</WholeProgramOptimization>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -114,7 +116,7 @@
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\libyara;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\libyara\include;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -132,7 +134,7 @@
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\libyara;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\libyara\include;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
     </ClCompile>
     <Link>
@@ -156,7 +158,7 @@
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\libyara;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\libyara\include;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
diff --git a/windows/yarac/yarac.vcxproj b/windows/yarac/yarac.vcxproj
index 9047c9e..85f5bb1 100644
--- a/windows/yarac/yarac.vcxproj
+++ b/windows/yarac/yarac.vcxproj
@@ -35,6 +35,9 @@
     <WholeProgramOptimization>true</WholeProgramOptimization>
     <CharacterSet>Unicode</CharacterSet>
   </PropertyGroup>
+  <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
@@ -70,7 +73,7 @@
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\libyara;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\libyara\include;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -88,7 +91,7 @@
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\libyara;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\libyara\include;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
@@ -101,7 +104,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
-      <AdditionalIncludeDirectories>..\..\libyara;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\libyara\include;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
     </ClCompile>
     <Link>
@@ -111,7 +114,7 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
-      <AdditionalIncludeDirectories>..\..\libyara;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\libyara\include;..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
     </ClCompile>
     <Link>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/forensics/yara.git



More information about the forensics-changes mailing list