Skip to content

Commit

Permalink
2.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
wecooperate committed Sep 14, 2022
1 parent da9fd4d commit 6a9294d
Show file tree
Hide file tree
Showing 263 changed files with 2,549 additions and 15,641 deletions.
87 changes: 38 additions & 49 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,70 +1,59 @@
[English](./README_EN.md)
[中文](./README_zh.md)

iMonitor(冰镜 - 终端行为分析系统)是一款基于[iMonitorSDK](https://github.com/wecooperate/iMonitorSDK)的开源终端行为监控分析软件。
## Introduction

提供了对进程、文件、注册表、网络等系统行为的监控。支持扩展和脚本,可以轻易定制和添加更多功能。可以用于病毒分析、软件逆向、入侵检测,EDR等。
iMonitor (Endpoint Behavior Analysis System) is a endpoint behavior monitoring and analysis software based on [iMonitorSDK](https://iMonitorSDK.com).

## 一些特点
Provides monitoring of system behaviors such as processes, files, registry, and networks. Support extensions and scripts, you can easily customize and add more functions. It can be used for virus analysis, software reverse engineering, intrusion detection, EDR, etc.

- 开源
- 支持Win7到Win11的32位、64位系统(因为Qt用了比较新的版本不支持XP了,需要支持的可以自行换成支持XP的Qt版本)
- 支持丰富的行为监控,支持进程打开事件、支持socket的各种操作事件
- 支持按每个事件字段的过滤条件,支持堆栈模块的过滤条件
- **所有iMonitor监控到的行为,都可以通过[iMonitorSDK](https://github.com/wecooperate/iMonitorSDK)[iDefender](https://github.com/wecooperate/iDefender)来拦截阻止**
- **支持脚本化和应用市场,可以无限扩展和定制功能(待支持)**
- **多方平台集成(待支持)**
## Screenshots
![](./doc/all.gif)

## 源码编译
![](./doc/main_en.png)
![](./doc/address_en.png)
![](./doc/detail.png)

- 需要VS2019及以上环境
- 需要CMake 3.10 之后的版本
- 需要安装Qt5.12
- 执行目录下的build.bat即可 (此步骤会提示设置QT的安装路径,按提示设置环境变量)
## Version

## 软件截图
### 2.0(2022.09.14)

![normal](./doc/normal.png)
- Add the management of display columns, you can customize the data to be displayed

事件详情
![](./doc/bin.png)
![process](./doc/process.png)
![callstack](./doc/callstack.png)
- Added highlight function, which can highlight key data

Win11
![color](./doc/color.png)
- Supports grouping and merging statistics, which greatly improves the convenience of analysis (similar to the GROUP BY effect in SQL)

## 后续计划
- Add workspace management, different analysis scenarios can be quickly switched through the workspace

- 基本功能完善
- Added find function

- [ ] 支持数据的保存、加载
- [ ] 支持规则的保存、规则列表
- [ ] 支持进程、文件、注册表、网络的信息汇总
- [ ] 支持搜索、快速过滤、标签
- [ ] 列支持自定义、编辑、显示隐藏
- [ ] 完善QSS、国际化
- 插件扩展
- Add multi-language support

- [ ] 支持插件扩展
- [ ] 支持脚本扩展
- [ ] 关键插件
- [ ] 过滤插件:支持更加复杂的条件过滤
- [ ] 显示插件:添加更多的信息展示
- [ ] 行为插件:可以分析每一个路径的含义
- [ ] 安全插件:根据行为的权值,智能分析出病毒行为
- [ ] 逆向插件:自动过滤掉系统路径,快速分析一个软件存储修改哪些数据
- [ ] 开发平台 - 应用市场的支持
- 检测分析与响应
- Add more event support

- [ ] 结合iDefender主动防御系统,快速禁用检测到的行为
- [ ] 数据支持上报集成到EDR、SOC、SIEM等平台
- Add support for named pipes
- Add HTTP, HTTPS support

## 关于我们
- Add plugin support

优秀的人,做专业的事。
- Support for custom columns
- Support custom rule matching
- Support interface interaction (requires Qt dependency)

创信长荣科技的团队来自国内头部互联网公司,具备十多年安全底层开发经验、架构设计能力,对企业安全业务有着深刻的理解。 是一家致力于为企业管理提供基础服务、一体化管理平台,力争成为企业管理入口,促进企业管理标准化、数字化的企业。
- Built-in some plugins

- Add IP address attribution column
- Add a column of path information that can be displayed by custom rules
- Added column for process sensitive behavior description
- Added quick rule matching if it is a document

- Miscellaneous

**有任何商业合作、功能定制请 [联系我们](mailto://[email protected])**
- Added support for discarding filtered rules
- Support switching between highlighting rules and filtering rules
- The method of adding incremental filtering to rule matching, no longer requires full matching when adding rules
- Add regular expression support for matching rules
- Columns and rules support modifying default values
- Add installation package

### 1.0(2022.03.14)
64 changes: 0 additions & 64 deletions README_EN.md

This file was deleted.

61 changes: 61 additions & 0 deletions README_zh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
> iMonitor开始是开源的版本,因为有热心的网友反馈说缺少驱动的源码属于假开源,我们认真听取了建议,从2.0开始,iMonitor将不再开源,源码只提供给购买了授权的企业客户。同时重新设计了插件框架,简化一个低成本就可以扩展iMonitor的方式。插件的源码仍然开源,如果需要扩展功能的,可以参考src/plugins目录,自己实现扩展插件。3.0会添加脚本支持,同时添加扩展市场,让扩展更加方便。
>
> 对iMonitor有所贡献的(比如提供了插件、工作区等),评估通过后仍然可以申请源码。
## 简介

iMonitor(冰镜 - 终端行为分析系统)是一款基于[iMonitorSDK](https://iMonitorSDK.com)的开源终端行为监控分析软件。

提供了对进程、文件、注册表、网络等系统行为的监控。支持扩展和脚本,可以轻易定制和添加更多功能。可以用于病毒分析、软件逆向、入侵检测,EDR等。

## 软件截图
![](./doc/all.gif)

![](./doc/main.png)
![](./doc/address.png)
![](./doc/detail.png)

## 更新说明

### 2.0(2022.09.14)

- 添加展示列的管理,可以定制需要显示的数据

- 添加高亮功能,可以对关键数据做高亮显示

- 支持分组合并统计 ,大大提高了分析的方便(类似于SQL中的GROUP BY效果)

- 添加工作区管理,不同的分析场景可以通过工作区快速切换

- 添加查找功能

- 添加多语言支持

- 添加更多事件支持

- 添加对命名管道的支持
- 添加HTTP、HTTPS的支持

- 添加插件支持

- 支持自定义列
- 支持自定义规则匹配
- 支持界面交互(需要依赖Qt)

- 内置部分插件

- 添加IP地址的归属地列
- 添加可以自定义规则来显示的路径信息列
- 添加进程敏感行为说明的列
- 添加是否是文档的快速规则匹配

- 其他杂项

- 添加丢弃掉被过滤规则的支持
- 支持高亮规则跟过滤规则相互切换
- 规则匹配添加增量过滤的方式,新增规则时不再需要全量匹配
- 匹配规则添加正则表达式支持
- 列、规则支持修改默认值
- 添加安装包

### 1.0(2022.03.14)
Binary file removed bin/32/iMonitor.dll
Binary file not shown.
Binary file removed bin/32/iMonitor.scer
Binary file not shown.
Binary file removed bin/32/iMonitor.sys
Binary file not shown.
Binary file removed bin/32/iMonitorXP.sys
Binary file not shown.
Binary file removed bin/64/iMonitor.scer
Binary file not shown.
Binary file removed bin/64/iMonitor64.dll
Binary file not shown.
Binary file removed bin/64/iMonitor64.sys
Binary file not shown.
17 changes: 2 additions & 15 deletions build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -14,25 +14,21 @@ Set QT_DIR64=D:\Qt\Qt5.12.11\5.12.11\msvc2017_64\lib\cmake\Qt5
Echo.&Echo 1.GenerateSolution
Echo.&Echo 2.BuildDebug
Echo.&Echo 3.BuildRelease
Echo.&Echo 4.Windeployqt
Echo.&Echo 5.Format
Echo.&Echo.

set /p a=Input Number:
If Not "%a%"=="" Set a=%a:~0,1%
If "%a%"=="1" Goto GenerateSolution
If "%a%"=="2" Goto BuildDebug
If "%a%"=="3" Goto BuildRelease
If "%a%"=="4" Goto Windeployqt
If "%a%"=="5" Goto Format
Exit

:GenerateSolution
Set QT_DIR=%QT_DIR64%
cmake %vcpkg_param% -G "Visual Studio 16 2019" -A "x64" -T "v142" CMakeLists.txt -B build/64 -DQT_ENABLE_TRANSLATION=1
cmake %vcpkg_param% -G "Visual Studio 17 2022" -A "x64" -T "v142" CMakeLists.txt -B build/64 -DQT_ENABLE_TRANSLATION=1

Set QT_DIR=%QT_DIR32%
cmake %vcpkg_param% -G "Visual Studio 16 2019" -A "Win32" -T "v142" CMakeLists.txt -B build/32 -DQT_ENABLE_TRANSLATION=1
cmake %vcpkg_param% -G "Visual Studio 17 2022" -A "Win32" -T "v142" CMakeLists.txt -B build/32 -DQT_ENABLE_TRANSLATION=1
Goto Menu

:BuildDebug
Expand All @@ -44,12 +40,3 @@ Goto Menu
cmake --build build/64 --config Release
cmake --build build/32 --config Release
Goto Menu

:Windeployqt
windeployqt.exe bin\64\iMonitor.exe
windeployqt.exe bin\32\iMonitor.exe
Goto Menu

:Format
node tools/format.js
Goto Menu
Binary file added doc/address.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/address_en.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/all.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed doc/bin.png
Binary file not shown.
Binary file removed doc/callstack.png
Binary file not shown.
Binary file removed doc/callstack_filter.png
Binary file not shown.
Binary file removed doc/color.png
Binary file not shown.
Binary file added doc/detail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/main.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/main_en.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed doc/normal.png
Binary file not shown.
Binary file removed doc/process.png
Binary file not shown.
29 changes: 26 additions & 3 deletions inc/iMonitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
//******************************************************************************
// clang-format off
//******************************************************************************
#define MONITOR_VERSION 1040
#define MONITOR_VERSION 2000
#define MONITOR_LICENSE_VERSION 1
#define MONITOR_MAX_BUFFER 260
//******************************************************************************
#ifndef BIT
Expand All @@ -29,10 +30,23 @@ enum emMSGType
emMSGRegistry = 300,
emMSGSocket = 400,
emMSGWFP = 500,
emMSGSystem = 600,
emMSGHTTP = 600,
emMSGMax = 1000,
};
//******************************************************************************
#define MSG_GET_GROUP(type) (type / 100)

enum emMSGGroup {
emMSGGroupInternal = 0,
emMSGGroupProcess = 1,
emMSGGroupFile = 2,
emMSGGroupRegistry = 3,
emMSGGroupSocket = 4,
emMSGGroupWFP = 5,
emMSGGroupHTTP = 6,
emMSGGroupMax,
};
//******************************************************************************
enum emMSGTypeInternal
{
emMSGInternalEnumProcess = emMSGInternal + 1,
Expand Down Expand Up @@ -101,6 +115,8 @@ enum emMSGTypeRegistry
emMSGRegPostDeleteValue,
emMSGRegSetValue,
emMSGRegPostSetValue,
emMSGRegQueryValue,
emMSGRegPostQueryValue,
};
//******************************************************************************
enum emMSGTypeSocket
Expand Down Expand Up @@ -133,6 +149,12 @@ enum emMSGTypeWFP
emMSGWFPUdpAccept,
};
//******************************************************************************
enum emMSGTypeHTTP
{
emMSGHTTPRequest = emMSGHTTP + 1,
emMSGHTTPRequestEnd = emMSGHTTPRequest + 100,
};
//******************************************************************************
enum emMSGConfig
{
emMSGConfigDefault = 0,
Expand Down Expand Up @@ -167,7 +189,7 @@ enum emMSGDataType
emMSGDataString = 0x30000,
emMSGDataPath = 0x40000,
emMSGDataBinary = 0x50000,
emMSGDataCallstatck = 0x60000,
emMSGDataCallstack = 0x60000,

#define MSG_GET_BASE_TYPE(type) (type & 0xFFFF0000)

Expand Down Expand Up @@ -297,6 +319,7 @@ struct cxMSGAction
struct cxMSGUserHeader
{
ULONG Type;
ULONG LicenseVersion = MONITOR_LICENSE_VERSION;
};
//******************************************************************************
template<ULONG TYPE, typename T = void>
Expand Down
Loading

0 comments on commit 6a9294d

Please sign in to comment.