commit 99cc1fc: [Project] Lua_magic: Add images patterns

Vsevolod Stakhov vsevolod at highsecure.ru
Tue Sep 24 15:07:05 UTC 2019


Author: Vsevolod Stakhov
Date: 2019-09-24 15:43:04 +0100
URL: https://github.com/rspamd/rspamd/commit/99cc1fcb693f0c08f48776bdc8ba76fc91856737

[Project] Lua_magic: Add images patterns

---
 lualib/lua_magic/heuristics.lua |  9 ---------
 lualib/lua_magic/patterns.lua   | 41 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+), 9 deletions(-)

diff --git a/lualib/lua_magic/heuristics.lua b/lualib/lua_magic/heuristics.lua
index 700932051..fb105932a 100644
--- a/lualib/lua_magic/heuristics.lua
+++ b/lualib/lua_magic/heuristics.lua
@@ -303,15 +303,6 @@ local function detect_archive_flaw(part, arch, log_obj)
 end
 
 exports.mime_part_heuristic = function(part, log_obj)
-
-  if part:is_image() then
-    local img = part:get_image()
-    local img_type = img:get_type():lower()
-
-    if img_type == 'jpeg' then img_type = 'jpg' end
-    return img_type,60
-  end
-
   if part:is_archive() then
     local arch = part:get_archive()
     return detect_archive_flaw(part, arch, log_obj)
diff --git a/lualib/lua_magic/patterns.lua b/lualib/lua_magic/patterns.lua
index d9604b714..8d90a45ef 100644
--- a/lualib/lua_magic/patterns.lua
+++ b/lualib/lua_magic/patterns.lua
@@ -380,6 +380,47 @@ local patterns = {
       }
     }
   },
+  jpg = {
+    matches = {
+      { -- JPEG2000
+        hex = [[0000000c6a5020200d0a870a]],
+        relative_position = 0,
+        weight = 60,
+      },
+      {
+        string = [[^\x{ff}\x{d8}\x{ff}(?:[\x{e0}\x{e1}])]],
+        weight = 60,
+        position = 4,
+      },
+    },
+  },
+  png = {
+    matches = {
+      {
+        string = [[^\x{89}PNG\x{0d}\x{0a}\x{1a}\x{0a}]],
+        position = 8,
+        weight = 60,
+      },
+    }
+  },
+  gif = {
+    matches = {
+      {
+        string = [[^GIF8\d]],
+        position = 5,
+        weight = 60,
+      },
+    }
+  },
+  bmp = {
+    matches = {
+      {
+        string = [[^BM...\x{00}\x{00}\x{00}\x{00}]],
+        position = 9,
+        weight = 60,
+      },
+    }
+  },
 }
 
 return patterns
\ No newline at end of file


More information about the Commits mailing list