api: MESA_osfp_xx -> osfp_xx
header: MESA_osfp.h -> osfp.h
This commit is contained in:
@@ -98,7 +98,7 @@ develop_build_debug_for_centos7:
|
|||||||
PULP3_REPO_NAME: framework-testing-x86_64.el7
|
PULP3_REPO_NAME: framework-testing-x86_64.el7
|
||||||
PULP3_DIST_NAME: framework-testing-x86_64.el7
|
PULP3_DIST_NAME: framework-testing-x86_64.el7
|
||||||
artifacts:
|
artifacts:
|
||||||
name: "MESA_osfp-$CI_COMMIT_REF_NAME-debug"
|
name: "libosfp-$CI_COMMIT_REF_NAME-debug"
|
||||||
paths:
|
paths:
|
||||||
- build/*.rpm
|
- build/*.rpm
|
||||||
only:
|
only:
|
||||||
@@ -118,7 +118,7 @@ develop_build_release_for_centos7:
|
|||||||
PULP3_REPO_NAME: framework-testing-x86_64.el7
|
PULP3_REPO_NAME: framework-testing-x86_64.el7
|
||||||
PULP3_DIST_NAME: framework-testing-x86_64.el7
|
PULP3_DIST_NAME: framework-testing-x86_64.el7
|
||||||
artifacts:
|
artifacts:
|
||||||
name: "MESA_osfp-$CI_COMMIT_REF_NAME-release"
|
name: "libosfp-$CI_COMMIT_REF_NAME-release"
|
||||||
paths:
|
paths:
|
||||||
- build/*.rpm
|
- build/*.rpm
|
||||||
only:
|
only:
|
||||||
@@ -137,7 +137,7 @@ release_build_debug_for_centos7:
|
|||||||
PULP3_DIST_NAME: framework-stable-x86_64.el7
|
PULP3_DIST_NAME: framework-stable-x86_64.el7
|
||||||
extends: .build_by_travis_for_centos7
|
extends: .build_by_travis_for_centos7
|
||||||
artifacts:
|
artifacts:
|
||||||
name: "MESA_osfp-$CI_COMMIT_REF_NAME-debug"
|
name: "libosfp-$CI_COMMIT_REF_NAME-debug"
|
||||||
paths:
|
paths:
|
||||||
- build/*.rpm
|
- build/*.rpm
|
||||||
only:
|
only:
|
||||||
@@ -153,7 +153,7 @@ release_build_release_for_centos7:
|
|||||||
PULP3_DIST_NAME: framework-stable-x86_64.el7
|
PULP3_DIST_NAME: framework-stable-x86_64.el7
|
||||||
extends: .build_by_travis_for_centos7
|
extends: .build_by_travis_for_centos7
|
||||||
artifacts:
|
artifacts:
|
||||||
name: "MESA_osfp-$CI_COMMIT_REF_NAME-release"
|
name: "libosfp-$CI_COMMIT_REF_NAME-release"
|
||||||
paths:
|
paths:
|
||||||
- build/*.rpm
|
- build/*.rpm
|
||||||
only:
|
only:
|
||||||
@@ -195,7 +195,7 @@ develop_build_debug_for_centos8:
|
|||||||
PULP3_REPO_NAME: framework-testing-x86_64.el8
|
PULP3_REPO_NAME: framework-testing-x86_64.el8
|
||||||
PULP3_DIST_NAME: framework-testing-x86_64.el8
|
PULP3_DIST_NAME: framework-testing-x86_64.el8
|
||||||
artifacts:
|
artifacts:
|
||||||
name: "MESA_osfp-$CI_COMMIT_REF_NAME-debug"
|
name: "libosfp-$CI_COMMIT_REF_NAME-debug"
|
||||||
paths:
|
paths:
|
||||||
- build/*.rpm
|
- build/*.rpm
|
||||||
only:
|
only:
|
||||||
@@ -215,7 +215,7 @@ develop_build_release_for_centos8:
|
|||||||
PULP3_REPO_NAME: framework-testing-x86_64.el8
|
PULP3_REPO_NAME: framework-testing-x86_64.el8
|
||||||
PULP3_DIST_NAME: framework-testing-x86_64.el8
|
PULP3_DIST_NAME: framework-testing-x86_64.el8
|
||||||
artifacts:
|
artifacts:
|
||||||
name: "MESA_osfp-$CI_COMMIT_REF_NAME-release"
|
name: "libosfp-$CI_COMMIT_REF_NAME-release"
|
||||||
paths:
|
paths:
|
||||||
- build/*.rpm
|
- build/*.rpm
|
||||||
only:
|
only:
|
||||||
@@ -234,7 +234,7 @@ release_build_debug_for_centos8:
|
|||||||
PULP3_DIST_NAME: framework-stable-x86_64.el8
|
PULP3_DIST_NAME: framework-stable-x86_64.el8
|
||||||
extends: .build_by_travis_for_centos8
|
extends: .build_by_travis_for_centos8
|
||||||
artifacts:
|
artifacts:
|
||||||
name: "MESA_osfp-$CI_COMMIT_REF_NAME-debug"
|
name: "libosfp-$CI_COMMIT_REF_NAME-debug"
|
||||||
paths:
|
paths:
|
||||||
- build/*.rpm
|
- build/*.rpm
|
||||||
only:
|
only:
|
||||||
@@ -250,7 +250,7 @@ release_build_release_for_centos8:
|
|||||||
PULP3_DIST_NAME: framework-stable-x86_64.el8
|
PULP3_DIST_NAME: framework-stable-x86_64.el8
|
||||||
extends: .build_by_travis_for_centos8
|
extends: .build_by_travis_for_centos8
|
||||||
artifacts:
|
artifacts:
|
||||||
name: "MESA_osfp-$CI_COMMIT_REF_NAME-release"
|
name: "libosfp-$CI_COMMIT_REF_NAME-release"
|
||||||
paths:
|
paths:
|
||||||
- build/*.rpm
|
- build/*.rpm
|
||||||
only:
|
only:
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ set(lib_name osfp)
|
|||||||
project (${lib_name})
|
project (${lib_name})
|
||||||
|
|
||||||
set(LIB_MAJOR_VERSION 1)
|
set(LIB_MAJOR_VERSION 1)
|
||||||
set(LIB_MINOR_VERSION 2)
|
set(LIB_MINOR_VERSION 3)
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
||||||
include(Version)
|
include(Version)
|
||||||
@@ -55,11 +55,11 @@ set_target_properties(${lib_name}_static PROPERTIES OUTPUT_NAME ${lib_name})
|
|||||||
|
|
||||||
set(CMAKE_INSTALL_PREFIX /opt/MESA)
|
set(CMAKE_INSTALL_PREFIX /opt/MESA)
|
||||||
|
|
||||||
install(FILES src/MESA_osfp.h DESTINATION
|
install(FILES src/osfp.h DESTINATION
|
||||||
${CMAKE_INSTALL_PREFIX}/include/MESA COMPONENT devel)
|
${CMAKE_INSTALL_PREFIX}/include/MESA COMPONENT devel)
|
||||||
install(TARGETS ${lib_name}_shared LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib COMPONENT LIBRARIES)
|
install(TARGETS ${lib_name}_shared LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib COMPONENT LIBRARIES)
|
||||||
install(FILES src/MESA_osfp.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/MESA COMPONENT HEADER)
|
install(FILES src/osfp.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/MESA COMPONENT HEADER)
|
||||||
install(FILES fp.json DESTINATION /var/lib/MESA_osfp COMPONENT PROFILE)
|
install(FILES fp.json DESTINATION /var/lib/libosfp COMPONENT PROFILE)
|
||||||
|
|
||||||
add_executable(${lib_name}_sample example/sample.c)
|
add_executable(${lib_name}_sample example/sample.c)
|
||||||
target_link_libraries(${lib_name}_sample ${lib_name}_shared)
|
target_link_libraries(${lib_name}_sample ${lib_name}_shared)
|
||||||
|
|||||||
@@ -21,5 +21,5 @@ LD_LIBRARY_PATH=${PWD}/build ./sample
|
|||||||
|
|
||||||
```
|
```
|
||||||
# load the fingerprint file and capture on eth0, filter tcp port 8888
|
# load the fingerprint file and capture on eth0, filter tcp port 8888
|
||||||
./build/osfp_example -f /var/lib/MESA_osfp/fp.json -i eth0 "tcp port 8888"
|
./build/osfp_example -f /var/lib/libosfp/fp.json -i eth0 "tcp port 8888"
|
||||||
```
|
```
|
||||||
|
|||||||
14
autogen.sh
14
autogen.sh
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Run this to generate all the initial makefiles, etc.
|
|
||||||
if which libtoolize > /dev/null; then
|
|
||||||
echo "Found libtoolize"
|
|
||||||
libtoolize -c
|
|
||||||
elif which glibtoolize > /dev/null; then
|
|
||||||
echo "Found glibtoolize"
|
|
||||||
glibtoolize -c
|
|
||||||
else
|
|
||||||
echo "Failed to find libtoolize or glibtoolize, please ensure it is installed and accessible via your PATH env variable"
|
|
||||||
exit 1
|
|
||||||
fi;
|
|
||||||
autoreconf -ifv || exit 1
|
|
||||||
echo "You can now run \"./configure\" and then \"make\"."
|
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
#include <pcap.h>
|
#include <pcap.h>
|
||||||
|
|
||||||
#include "osfp_common.h"
|
#include "osfp_common.h"
|
||||||
#include "MESA_osfp.h"
|
#include "osfp.h"
|
||||||
#include "osfp_log.h"
|
#include "osfp_log.h"
|
||||||
#include "osfp_fingerprint.h"
|
#include "osfp_fingerprint.h"
|
||||||
#include "osfp_score_db.h"
|
#include "osfp_score_db.h"
|
||||||
@@ -450,9 +450,9 @@ void example_detect(struct osfp_db *osfp_db, Packet *p)
|
|||||||
|
|
||||||
osfp_profile_get_cycle(c1);
|
osfp_profile_get_cycle(c1);
|
||||||
if (iph) {
|
if (iph) {
|
||||||
result = MESA_osfp_ipv4_identify(osfp_db, iph, tcph, tcph_len);
|
result = osfp_ipv4_identify(osfp_db, iph, tcph, tcph_len);
|
||||||
} else if (ip6h) {
|
} else if (ip6h) {
|
||||||
result = MESA_osfp_ipv6_identify(osfp_db, ip6h, tcph, tcph_len);
|
result = osfp_ipv6_identify(osfp_db, ip6h, tcph, tcph_len);
|
||||||
} else {
|
} else {
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
@@ -469,19 +469,19 @@ void example_detect(struct osfp_db *osfp_db, Packet *p)
|
|||||||
|
|
||||||
result_os_count[result->likely_os_class]++;
|
result_os_count[result->likely_os_class]++;
|
||||||
|
|
||||||
char *json = MESA_osfp_result_score_detail_export(result);
|
char *json = osfp_result_score_detail_export(result);
|
||||||
|
|
||||||
if (1) {
|
if (1) {
|
||||||
printf("Example ipv4 header detect: --------------------------\n");
|
printf("Example ipv4 header detect: --------------------------\n");
|
||||||
printf("Connection info: %s:%d -> %s:%d\n", p->srcip, p->sp, p->dstip, p->dp);
|
printf("Connection info: %s:%d -> %s:%d\n", p->srcip, p->sp, p->dstip, p->dp);
|
||||||
printf("Most likely os class: %s\n", MESA_osfp_result_os_name_get(result));
|
printf("Most likely os class: %s\n", osfp_result_os_name_get(result));
|
||||||
printf("Details:\n");
|
printf("Details:\n");
|
||||||
printf("%s\n", json);
|
printf("%s\n", json);
|
||||||
}
|
}
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
if (result) {
|
if (result) {
|
||||||
MESA_osfp_result_free(result);
|
osfp_result_free(result);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -670,7 +670,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
osfp_profile_set(1);
|
osfp_profile_set(1);
|
||||||
|
|
||||||
struct osfp_db *osfp_db = MESA_osfp_db_new(fp_file_path);
|
struct osfp_db *osfp_db = osfp_db_new(fp_file_path);
|
||||||
if (osfp_db == NULL) {
|
if (osfp_db == NULL) {
|
||||||
printf("could not create osfp context. fingerprints file: %s\n", fp_file_path);
|
printf("could not create osfp context. fingerprints file: %s\n", fp_file_path);
|
||||||
exit(1);
|
exit(1);
|
||||||
@@ -686,7 +686,7 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
// destroy osfp db
|
// destroy osfp db
|
||||||
MESA_osfp_db_free(osfp_db);
|
osfp_db_free(osfp_db);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "stdio.h"
|
#include "stdio.h"
|
||||||
#include "MESA_osfp.h"
|
#include "osfp.h"
|
||||||
|
|
||||||
char iph[] = {
|
char iph[] = {
|
||||||
0x45, 0x00, 0x00, 0x34, 0x51, 0xc4, 0x40, 0x00,
|
0x45, 0x00, 0x00, 0x34, 0x51, 0xc4, 0x40, 0x00,
|
||||||
@@ -22,14 +22,14 @@ int main(int argc, char **argv)
|
|||||||
struct tcphdr *l4_hdr = (struct tcphdr *)tcph;
|
struct tcphdr *l4_hdr = (struct tcphdr *)tcph;
|
||||||
size_t l4_hdr_len = sizeof(tcph);
|
size_t l4_hdr_len = sizeof(tcph);
|
||||||
|
|
||||||
struct osfp_db *db = MESA_osfp_db_new(json_file_path);
|
struct osfp_db *db = osfp_db_new(json_file_path);
|
||||||
if (db) {
|
if (db) {
|
||||||
struct osfp_result *result = MESA_osfp_ipv4_identify(db, l3_hdr, l4_hdr, l4_hdr_len);
|
struct osfp_result *result = osfp_ipv4_identify(db, l3_hdr, l4_hdr, l4_hdr_len);
|
||||||
if (result) {
|
if (result) {
|
||||||
printf("likely os: %s\n", MESA_osfp_result_os_name_get(result));
|
printf("likely os: %s\n", osfp_result_os_name_get(result));
|
||||||
printf("details: \n%s\n", MESA_osfp_result_score_detail_export(result));
|
printf("details: \n%s\n", osfp_result_score_detail_export(result));
|
||||||
MESA_osfp_result_free(result);
|
osfp_result_free(result);
|
||||||
}
|
}
|
||||||
MESA_osfp_db_free(db);
|
osfp_db_free(db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
prefix=@prefix@
|
|
||||||
exec_prefix=@exec_prefix@
|
|
||||||
libdir=@libdir@
|
|
||||||
includedir=@includedir@
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "osfp_common.h"
|
#include "osfp_common.h"
|
||||||
|
|
||||||
#include "MESA_osfp.h"
|
#include "osfp.h"
|
||||||
#include "osfp_fingerprint.h"
|
#include "osfp_fingerprint.h"
|
||||||
#include "osfp_score_db.h"
|
#include "osfp_score_db.h"
|
||||||
#include "osfp_log.h"
|
#include "osfp_log.h"
|
||||||
@@ -70,7 +70,7 @@ exit:
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *MESA_osfp_result_os_name_get(struct osfp_result *result)
|
const char *osfp_result_os_name_get(struct osfp_result *result)
|
||||||
{
|
{
|
||||||
enum osfp_os_class_id os_class;
|
enum osfp_os_class_id os_class;
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ const char *MESA_osfp_result_os_name_get(struct osfp_result *result)
|
|||||||
return osfp_os_class_id_to_name(os_class);
|
return osfp_os_class_id_to_name(os_class);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *MESA_osfp_result_score_detail_export(struct osfp_result *result)
|
char *osfp_result_score_detail_export(struct osfp_result *result)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
char *result_str = NULL;
|
char *result_str = NULL;
|
||||||
@@ -150,7 +150,7 @@ exit:
|
|||||||
return result_str;
|
return result_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MESA_osfp_result_free(struct osfp_result *result)
|
void osfp_result_free(struct osfp_result *result)
|
||||||
{
|
{
|
||||||
if (result) {
|
if (result) {
|
||||||
if (result->json_str) {
|
if (result->json_str) {
|
||||||
@@ -160,7 +160,7 @@ void MESA_osfp_result_free(struct osfp_result *result)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct osfp_result *MESA_osfp_ipv4_identify(struct osfp_db *db, struct iphdr* l3_hdr, struct tcphdr *l4_hdr, size_t l4_hdr_len)
|
struct osfp_result *osfp_ipv4_identify(struct osfp_db *db, struct iphdr* l3_hdr, struct tcphdr *l4_hdr, size_t l4_hdr_len)
|
||||||
{
|
{
|
||||||
int ret = OSFP_EINVAL;
|
int ret = OSFP_EINVAL;
|
||||||
struct osfp_fingerprint fp;
|
struct osfp_fingerprint fp;
|
||||||
@@ -203,7 +203,7 @@ exit:
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct osfp_result *MESA_osfp_ipv6_identify(struct osfp_db *db, struct ip6_hdr* l3_hdr, struct tcphdr *l4_hdr, size_t l4_hdr_len)
|
struct osfp_result *osfp_ipv6_identify(struct osfp_db *db, struct ip6_hdr* l3_hdr, struct tcphdr *l4_hdr, size_t l4_hdr_len)
|
||||||
{
|
{
|
||||||
int ret = OSFP_EINVAL;
|
int ret = OSFP_EINVAL;
|
||||||
struct osfp_fingerprint fp;
|
struct osfp_fingerprint fp;
|
||||||
@@ -234,7 +234,7 @@ exit:
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct osfp_result *MESA_osfp_json_identify(struct osfp_db *db, const char *json_str)
|
struct osfp_result *osfp_json_identify(struct osfp_db *db, const char *json_str)
|
||||||
{
|
{
|
||||||
int ret = OSFP_EINVAL;
|
int ret = OSFP_EINVAL;
|
||||||
struct osfp_fingerprint fp;
|
struct osfp_fingerprint fp;
|
||||||
@@ -265,7 +265,7 @@ exit:
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct osfp_db *MESA_osfp_db_new(const char *db_json_file)
|
struct osfp_db *osfp_db_new(const char *db_json_file)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct osfp_db *db;
|
struct osfp_db *db;
|
||||||
@@ -299,12 +299,12 @@ struct osfp_db *MESA_osfp_db_new(const char *db_json_file)
|
|||||||
return db;
|
return db;
|
||||||
exit:
|
exit:
|
||||||
if (db) {
|
if (db) {
|
||||||
MESA_osfp_db_free(db);
|
osfp_db_free(db);
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MESA_osfp_db_free(struct osfp_db *db)
|
void osfp_db_free(struct osfp_db *db)
|
||||||
{
|
{
|
||||||
if (db) {
|
if (db) {
|
||||||
if (db->db_json_path) {
|
if (db->db_json_path) {
|
||||||
@@ -23,14 +23,14 @@ struct osfp_db;
|
|||||||
* @param db_json_path 操作系统指纹库 JSON 文件的路径。
|
* @param db_json_path 操作系统指纹库 JSON 文件的路径。
|
||||||
* @return 指向新创建的操作系统指纹库的指针。
|
* @return 指向新创建的操作系统指纹库的指针。
|
||||||
*/
|
*/
|
||||||
struct osfp_db *MESA_osfp_db_new(const char *db_json_path);
|
struct osfp_db *osfp_db_new(const char *db_json_path);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 释放操作系统指纹库占用的内存。
|
* @brief 释放操作系统指纹库占用的内存。
|
||||||
*
|
*
|
||||||
* @param db 指向要释放的操作系统指纹库的指针。
|
* @param db 指向要释放的操作系统指纹库的指针。
|
||||||
*/
|
*/
|
||||||
void MESA_osfp_db_free(struct osfp_db *db);
|
void osfp_db_free(struct osfp_db *db);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 通过 IPv4 头部和 TCP 头部识别操作系统。
|
* @brief 通过 IPv4 头部和 TCP 头部识别操作系统。
|
||||||
@@ -41,7 +41,7 @@ void MESA_osfp_db_free(struct osfp_db *db);
|
|||||||
* @param l4_hdr_len TCP 头部的长度(注意:包含TCP选项部分)。
|
* @param l4_hdr_len TCP 头部的长度(注意:包含TCP选项部分)。
|
||||||
* @return 指向操作系统识别结果的指针。
|
* @return 指向操作系统识别结果的指针。
|
||||||
*/
|
*/
|
||||||
struct osfp_result *MESA_osfp_ipv4_identify(struct osfp_db *db, struct iphdr* l3_hdr, struct tcphdr *l4_hdr, size_t l4_hdr_len);
|
struct osfp_result *osfp_ipv4_identify(struct osfp_db *db, struct iphdr* l3_hdr, struct tcphdr *l4_hdr, size_t l4_hdr_len);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 通过 IPv6 头部和 TCP 头部识别操作系统。
|
* @brief 通过 IPv6 头部和 TCP 头部识别操作系统。
|
||||||
@@ -52,7 +52,7 @@ struct osfp_result *MESA_osfp_ipv4_identify(struct osfp_db *db, struct iphdr* l3
|
|||||||
* @param l4_hdr_len TCP 头部的长度(注意:包含TCP选项部分)。
|
* @param l4_hdr_len TCP 头部的长度(注意:包含TCP选项部分)。
|
||||||
* @return 指向操作系统识别结果的指针(注意:内存需要使用者释放)。
|
* @return 指向操作系统识别结果的指针(注意:内存需要使用者释放)。
|
||||||
*/
|
*/
|
||||||
struct osfp_result *MESA_osfp_ipv6_identify(struct osfp_db *db, struct ip6_hdr* l3_hdr, struct tcphdr *l4_hdr, size_t l4_hdr_len);
|
struct osfp_result *osfp_ipv6_identify(struct osfp_db *db, struct ip6_hdr* l3_hdr, struct tcphdr *l4_hdr, size_t l4_hdr_len);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 通过 json 格式的指纹识别操作系统。
|
* @brief 通过 json 格式的指纹识别操作系统。
|
||||||
@@ -61,7 +61,7 @@ struct osfp_result *MESA_osfp_ipv6_identify(struct osfp_db *db, struct ip6_hdr*
|
|||||||
* @param json_str 指纹字符串。
|
* @param json_str 指纹字符串。
|
||||||
* @return 指向操作系统识别结果的指针(注意:内存需要使用者释放)。
|
* @return 指向操作系统识别结果的指针(注意:内存需要使用者释放)。
|
||||||
*/
|
*/
|
||||||
struct osfp_result *MESA_osfp_json_identify(struct osfp_db *db, const char *json_str);
|
struct osfp_result *osfp_json_identify(struct osfp_db *db, const char *json_str);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 获取操作系统识别结果的操作系统名称。
|
* @brief 获取操作系统识别结果的操作系统名称。
|
||||||
@@ -69,7 +69,7 @@ struct osfp_result *MESA_osfp_json_identify(struct osfp_db *db, const char *json
|
|||||||
* @param result 操作系统识别结果。
|
* @param result 操作系统识别结果。
|
||||||
* @return 指向操作系统名称的常量字符指针(注意:这块内存将由osfp_result_free释放)。
|
* @return 指向操作系统名称的常量字符指针(注意:这块内存将由osfp_result_free释放)。
|
||||||
*/
|
*/
|
||||||
const char *MESA_osfp_result_os_name_get(struct osfp_result *result);
|
const char *osfp_result_os_name_get(struct osfp_result *result);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 导出操作系统识别结果的得分详情。
|
* @brief 导出操作系统识别结果的得分详情。
|
||||||
@@ -77,14 +77,14 @@ const char *MESA_osfp_result_os_name_get(struct osfp_result *result);
|
|||||||
* @param result 操作系统识别结果。
|
* @param result 操作系统识别结果。
|
||||||
* @return 指向得分详情字符串的指针(注意:内存需要使用者释放)。
|
* @return 指向得分详情字符串的指针(注意:内存需要使用者释放)。
|
||||||
*/
|
*/
|
||||||
char *MESA_osfp_result_score_detail_export(struct osfp_result *result);
|
char *osfp_result_score_detail_export(struct osfp_result *result);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 释放操作系统识别结果占用的内存。
|
* @brief 释放操作系统识别结果占用的内存。
|
||||||
*
|
*
|
||||||
* @param result 操作系统识别结果。
|
* @param result 操作系统识别结果。
|
||||||
*/
|
*/
|
||||||
void MESA_osfp_result_free(struct osfp_result *result);
|
void osfp_result_free(struct osfp_result *result);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "osfp_common.h"
|
#include "osfp_common.h"
|
||||||
|
|
||||||
#include "MESA_osfp.h"
|
#include "osfp.h"
|
||||||
|
|
||||||
unsigned int osfp_profile_enable;
|
unsigned int osfp_profile_enable;
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,8 @@
|
|||||||
|
|
||||||
#include "cJSON.h"
|
#include "cJSON.h"
|
||||||
|
|
||||||
|
#include "osfp.h"
|
||||||
|
|
||||||
static inline unsigned long long osfp_rdtsc(void)
|
static inline unsigned long long osfp_rdtsc(void)
|
||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "osfp_common.h"
|
#include "osfp_common.h"
|
||||||
|
|
||||||
#include "MESA_osfp.h"
|
#include "osfp.h"
|
||||||
#include "osfp_fingerprint.h"
|
#include "osfp_fingerprint.h"
|
||||||
#include "osfp_log.h"
|
#include "osfp_log.h"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "osfp_common.h"
|
#include "osfp_common.h"
|
||||||
|
|
||||||
#include "MESA_osfp.h"
|
#include "osfp.h"
|
||||||
#include "osfp_fingerprint.h"
|
#include "osfp_fingerprint.h"
|
||||||
#include "osfp_score_db.h"
|
#include "osfp_score_db.h"
|
||||||
#include "osfp_log.h"
|
#include "osfp_log.h"
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#ifndef __OSFP_SCORE_DB_H__
|
#ifndef __OSFP_SCORE_DB_H__
|
||||||
#define __OSFP_SCORE_DB_H__
|
#define __OSFP_SCORE_DB_H__
|
||||||
|
|
||||||
|
#include "osfp.h"
|
||||||
#include "osfp_fingerprint.h"
|
#include "osfp_fingerprint.h"
|
||||||
#include "osfp_common.h"
|
#include "osfp_common.h"
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
global: MESA_osfp*;GIT_VERSION_*;
|
global: osfp*;GIT_VERSION_*;
|
||||||
local: *;
|
local: *;
|
||||||
};
|
};
|
||||||
|
|||||||
16
test/test.c
16
test/test.c
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
#include "cJSON.h"
|
#include "cJSON.h"
|
||||||
|
|
||||||
#include "MESA_osfp.h"
|
#include "osfp.h"
|
||||||
#include "osfp_fingerprint.h"
|
#include "osfp_fingerprint.h"
|
||||||
#include "osfp_score_db.h"
|
#include "osfp_score_db.h"
|
||||||
#include "osfp_log.h"
|
#include "osfp_log.h"
|
||||||
@@ -105,7 +105,7 @@ void test_miss_rate()
|
|||||||
osfp_log_level_set(OSFP_LOG_LEVEL_DEBUG);
|
osfp_log_level_set(OSFP_LOG_LEVEL_DEBUG);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct osfp_db *osfp_db = MESA_osfp_db_new(db_file_path);
|
struct osfp_db *osfp_db = osfp_db_new(db_file_path);
|
||||||
if (osfp_db == NULL) {
|
if (osfp_db == NULL) {
|
||||||
printf("could not create osfp context. fingerprints file: %s\n", db_file_path);
|
printf("could not create osfp context. fingerprints file: %s\n", db_file_path);
|
||||||
exit(1);
|
exit(1);
|
||||||
@@ -123,7 +123,7 @@ void test_miss_rate()
|
|||||||
|
|
||||||
const char *fp_str = cJSON_PrintUnformatted(entry);
|
const char *fp_str = cJSON_PrintUnformatted(entry);
|
||||||
|
|
||||||
struct osfp_result *result = MESA_osfp_json_identify(osfp_db, fp_str);
|
struct osfp_result *result = osfp_json_identify(osfp_db, fp_str);
|
||||||
if (result == NULL) {
|
if (result == NULL) {
|
||||||
identify_failed_count++;
|
identify_failed_count++;
|
||||||
continue;
|
continue;
|
||||||
@@ -131,7 +131,7 @@ void test_miss_rate()
|
|||||||
|
|
||||||
if (os_class == result->likely_os_class) {
|
if (os_class == result->likely_os_class) {
|
||||||
verified_count++;
|
verified_count++;
|
||||||
MESA_osfp_result_free(result);
|
osfp_result_free(result);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,16 +145,16 @@ void test_miss_rate()
|
|||||||
unknown_count++;
|
unknown_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(log_file_ptr, "expect: %s, result: %s\n", os_class_json->valuestring, MESA_osfp_result_os_name_get(result));
|
fprintf(log_file_ptr, "expect: %s, result: %s\n", os_class_json->valuestring, osfp_result_os_name_get(result));
|
||||||
|
|
||||||
char *result_json = MESA_osfp_result_score_detail_export(result);
|
char *result_json = osfp_result_score_detail_export(result);
|
||||||
if (result_json) {
|
if (result_json) {
|
||||||
fprintf(log_file_ptr, "%s\n", result_json);
|
fprintf(log_file_ptr, "%s\n", result_json);
|
||||||
} else {
|
} else {
|
||||||
fprintf(log_file_ptr, "result detail error:%p\n", result);
|
fprintf(log_file_ptr, "result detail error:%p\n", result);
|
||||||
}
|
}
|
||||||
fflush(log_file_ptr);
|
fflush(log_file_ptr);
|
||||||
MESA_osfp_result_free(result);
|
osfp_result_free(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,7 +165,7 @@ void test_miss_rate()
|
|||||||
|
|
||||||
printf("details in: %s\n", LOG_FILE_PATH);
|
printf("details in: %s\n", LOG_FILE_PATH);
|
||||||
|
|
||||||
MESA_osfp_db_free(osfp_db);
|
osfp_db_free(osfp_db);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
|
|||||||
Reference in New Issue
Block a user