summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin.zipbin41010215 -> 41012668 bytes
-rw-r--r--src/objectscanner_analyze.cpp39
2 files changed, 33 insertions, 6 deletions
diff --git a/bin.zip b/bin.zip
index ecff40f..c6456b7 100644
--- a/bin.zip
+++ b/bin.zip
Binary files differ
diff --git a/src/objectscanner_analyze.cpp b/src/objectscanner_analyze.cpp
index a61fb4f..3a78002 100644
--- a/src/objectscanner_analyze.cpp
+++ b/src/objectscanner_analyze.cpp
@@ -85,8 +85,9 @@ static long func_long_get_rslt_callback(P_OBJ_PROVIDER p_op, void *p_data, void
long long_malware_id=0, long_qry_ret=-1;
message_meta_item_t *message = (message_meta_item_t *)p_param;
unsigned char *puchar_analyser=NULL, auchar_malware_name[128]={0};
- char *malware_type, *malware_name;
+ char *malware_type, *malware_name, mal_buf1[128], mal_buf2[128], mal_buf3[128];
char *save_ptr;
+ int ret;
if(p_data == NULL)
{
@@ -116,15 +117,41 @@ static long func_long_get_rslt_callback(P_OBJ_PROVIDER p_op, void *p_data, void
}
/* AVL���к�, auchar_malware_name��ʽ�����"Trojan/Win32.SGeneric", ��Ҫ��� */
+ cJSON_AddNumberToObject(message->meta_json, "malware_id", long_malware_id);
+ cJSON_AddStringToObject(message->meta_json, "malware_name", (char*)auchar_malware_name);
+
malware_type = strtok_r((char *)auchar_malware_name, "/", &save_ptr);
+ ret = sscanf(malware_type, "%[^[][%[^]]]", mal_buf1, mal_buf2);
+ if(ret == 2)
+ {
+ cJSON_AddStringToObject(message->meta_json, "mal_classification", mal_buf1);
+ cJSON_AddStringToObject(message->meta_json, "mal_behaviour", mal_buf2);
+ }
+ else
+ {
+ cJSON_AddStringToObject(message->meta_json, "mal_classification", malware_type);
+ }
+
malware_name = strtok_r(NULL, "/", &save_ptr);
- if(NULL == malware_name)
+ if(NULL!=malware_name)
{
- malware_name = malware_type;
+ ret = sscanf(malware_name, "%[^.].%[^.].%s", mal_buf1, mal_buf2, mal_buf3);
+ if(ret == 3)
+ {
+ cJSON_AddStringToObject(message->meta_json, "mal_environment", mal_buf1);
+ cJSON_AddStringToObject(message->meta_json, "mal_family", mal_buf2);
+ cJSON_AddStringToObject(message->meta_json, "mal_variant", mal_buf3);
+ }
+ else if(ret == 2)
+ {
+ cJSON_AddStringToObject(message->meta_json, "mal_environment", mal_buf1);
+ cJSON_AddStringToObject(message->meta_json, "mal_family", mal_buf2);
+ }
+ else
+ {
+ cJSON_AddStringToObject(message->meta_json, "mal_environment", malware_name);
+ }
}
- cJSON_AddNumberToObject(message->meta_json, "malware_id", long_malware_id);
- cJSON_AddStringToObject(message->meta_json, "malware_type", malware_type);
- cJSON_AddStringToObject(message->meta_json, "malware_name", malware_name);
message->hitted = 1;
MESA_HANDLE_RUNTIME_LOGV2(g_objscan_info.log_runtime, RLOG_LV_INFO, "AVL_SDK_Scan %lu:%s malware hit: %s/%s", message->object_size, message->object_uri, malware_type, malware_name);
atomic_inc(&g_objscan_info.statistic.num[MESSAGE_HITTED]);