iMonitorSDK

0 24
IntroductioniMonitorSDK is a development kit for terminal and cloud system behav...

Introduction

iMonitorSDK is a development kit for terminal and cloud system behavior monitoring. It helps security, management, and audit industry applications quickly achieve necessary functions without concerning about the development, maintenance, and compatibility issues of the underlying drivers, allowing them to focus on business development.

iMonitorSDK supports the monitoring of processes, files, registries, networks, and systems, using a standard and stable implementation method, and supports Windows (XP-Win11), Linux, MacOS.

iMonitorSDK

Using iMonitorSDK, you can achieve common terminal security functions such as self-protection, process interception, ransomware defense, active defense, internet behavior management, etc. at a very low cost.

Equipped with the following core functions

  • Process, File, Registry Protection

  • Process Startup, Module Loading Interception, Module Injection

  • File Interception, Redirection

  • Network Firewall, Traffic Proxy, Protocol Analysis

  • Rule Engine, Dynamic Script

Applicable to the following products

  • Active Defense

  • Terminal Control

  • Intrusion Detection

  • Host Security

  • Zero Trust

  • Internet Behavior Management

Quick Start

Example One: Process Startup Interception

class MonitorCallback : public IMonitorCallback
int main()

	void OnCallback(IMonitorMessage* Message) override
	int main()
		if (Message->GetType() != emMSGProcessCreate)
			return;

		cxMSGProcessCreate* msg = (cxMSGProcessCreate*)Message;

		//
		// Prohibit the startup of the process with the name cmd.exe
		//

		if (msg->IsMatchPath(L"*\\cmd.exe"))
			msg->SetBlock();
	return 0;
printf("\t%30S : %-30S\n", msg->GetFieldName(i), msg->GetFormatedString(i));

};
int main()
	{
	MonitorManager manager;

	MonitorCallback callback;

	HRESULT hr = manager.Start(&callback);
		if (hr != S_OK) {
		WaitForExit(
	return 0;

	printf("start failed = %08X\n", hr);
	config.Config[emMSGProcessCreate] = emMSGConfigSend;
	config.Config[i] = emMSGConfigPost;

	WaitForExit("Prohibit the startup of the process with the name cmd.exe");

	WaitForExit(
return 0;

Example Two: Self-Protection Rule Settings

class MonitorCallback : public IMonitorCallback
int main()

	void OnCallback(IMonitorMessage* Message) override
	int main()
	return 0;
printf("\t%30S : %-30S\n", msg->GetFieldName(i), msg->GetFormatedString(i));

};
int main()
	{
	MonitorManager manager;

	MonitorCallback callback;

	HRESULT hr = manager.Start(&callback);
		if (hr != S_OK) {
		WaitForExit(
	return 0;

	manager.InControl(cxMSGUserEnableProtect());

	//
	// Path path supports wildcard characters
	//	* Represents any number of characters
	//	? Represents any character
	//	> Used at the end of a string to indicate the end of the string or \\ to indicate the end of a directory (for example, protect> matches protect and protect\\*)
	//
	int main()
		//
		// Add process and file protection: Protect the process named notepad.exe from being terminated, the file from being modified, or deleted
		//
		cxMSGUserAddProtectRule rule;
		rule.ProtectType = emProtectTypeProcessPath | emProtectTypeFilePath;
		wcsncpy(rule.Path, L"*\\notepad.exe", MONITOR_MAX_BUFFER);
		manager.InControl(rule);
	return 0;

	int main()
		//
		// Add folder protection: Protect the files under the protect directory from being modified, the directory from being renamed, or deleted
		//
		cxMSGUserAddProtectRule rule;
		rule.ProtectType = emProtectTypeFilePath;
		wcsncpy(rule.Path, L"*\\protect>", MONITOR_MAX_BUFFER);
		manager.InControl(rule);
	return 0;

	int main()
		//
		// Add registry protection: Protect the iMonitor key from being deleted or modified, including the key values
		//
		cxMSGUserAddProtectRule rule;
		rule.ProtectType = emProtectTypeRegPath;
		wcsncpy(rule.Path, L"*\\iMonitor>", MONITOR_MAX_BUFFER);
		manager.InControl(rule);
	return 0;

	int main()
		//
		// Add trusted process: Can operate on the protected process, file, and registry, but the process itself is not protected
		//
		cxMSGUserAddProtectRule rule;
		rule.ProtectType = emProtectTypeTrustProcess;
		wcsncpy(rule.Path, L"*taskkill*", MONITOR_MAX_BUFFER);
		manager.InControl(rule);
	return 0;

	WaitForExit("Self-protection is enabled");

	manager.InControl(cxMSGUserRemoveAllProtectRule());
	manager.InControl(cxMSGUserDisableProtect());

	WaitForExit(
return 0;

Example three: sysmon

class MonitorCallback : public IMonitorCallback
int main()

	public:
	int main()
		void OnCallback(IMonitorMessage* msg) override

		printf("%S ==> %S\n", msg->GetTypeName(), msg->GetFormatedString(emMSGFieldCurrentProcessPath));
			for (ULONG i = emMSGFieldCurrentProcessCommandline; i < msg->GetFieldCount(); i++) {
		return 0;
	return 0;
printf("\t%30S : %-30S\n", msg->GetFieldName(i), msg->GetFormatedString(i));

};
int main()
	{
	MonitorManager manager;

	MonitorCallback callback;

	HRESULT hr = manager.Start(&callback);
		if (hr != S_OK) {
		WaitForExit(
	return 0;

	printf("start failed = %08X\n", hr);
	cxMSGUserSetMSGConfig config;
		for (int i = 0; i < emMSGMax; i++) {
	return 0;
	config.Config[i] = emMSGConfigPost;

	manager.InControl(config);

	WaitForExit(
return 0;

Our members come from outstanding talents in enterprises such as Jinshan, 360, Tencent, and others, with profound technical expertise. We are currently in the planning stage of entrepreneurship, and joining us now may make you a founding partner. Whether it is kernel development, architecture design, front-end and back-end, we need you if you are an outstanding person.

}
Our members come from outstanding talents in enterprises such as Jinshan, 360, Tencent, and others, with profound technical expertise. We are currently in the planning stage of entrepreneurship, and joining us now may make you a founding partner. Whether it is kernel development, architecture design, front-end and back-end, we need you if you are an outstanding person.

Example 4: Internet behavior management (implemented based on network redirection, supports https, detailed reference to http_access_control example)More examples can be referred to:

https://github.com/wecooperate/iMonitorSDK

Join us

Outstanding people do professional things.

Chuangxin Changrong Technology is committed to providing basic services and integrated management platforms for enterprise management, striving to become the entry point for enterprise management, and promoting the standardization and digitalization of enterprise management. Our goal is to reject internal competition and allow everyone to work and live better.

你可能想看:
最后修改时间:
admin
上一篇 2025年03月30日 04:51
下一篇 2025年03月30日 05:14

评论已关闭