feat : usb port에서 usb disk 차단 재 수정
feat : agent start 로그 시작 feat : RecoverService 시작 위치 변경 → ManagerService 시 feat : RecoverService에서 복원 누락된 파일 추가 feat : 인스톨 설치 시 IP 정보 입력 받을수 있도록 수정 eCrmHeInstaller.exe 설치본 설치 시 si.dat 입력받은 정보 기반으로 만들 수 있도록 수정 설치본 제작시 si.dat 제거
This commit is contained in:
parent
095c329b0e
commit
def1b99ef7
|
|
@ -1041,7 +1041,25 @@ begin
|
||||||
|
|
||||||
if bBlockIf then
|
if bBlockIf then
|
||||||
begin
|
begin
|
||||||
SetLastError(ERROR_ACCESS_DENIED);
|
if appType_ = catLINKENGKM then
|
||||||
|
begin
|
||||||
|
// SetLastError(ERROR_DEV_NOT_EXIST);
|
||||||
|
if (lpOutBuffer <> nil) and (nOutBufferSize >= 3) then
|
||||||
|
begin
|
||||||
|
PByte(NativeUInt(lpOutBuffer) + 2)^ := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if lpBytesReturned <> nil then
|
||||||
|
begin
|
||||||
|
lpBytesReturned^ := nOutBufferSize;
|
||||||
|
end;
|
||||||
|
|
||||||
|
SetLastError(ERROR_SUCCESS);
|
||||||
|
Result := True;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
SetLastError(ERROR_ACCESS_DENIED);
|
||||||
|
|
||||||
Result:= False;
|
Result:= False;
|
||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ ClassGuid = {b86dff51-a31e-4bac-b3cf-e8cfe75c9fc2} ;This value is determine
|
||||||
;Class = "ActivityMonitor"
|
;Class = "ActivityMonitor"
|
||||||
;ClassGuid = {AE71EC8D-C1FD-4564-8AA9-D56ADE722321}
|
;ClassGuid = {AE71EC8D-C1FD-4564-8AA9-D56ADE722321}
|
||||||
Provider = %ManufacturerName%
|
Provider = %ManufacturerName%
|
||||||
DriverVer = 03/13/2026,13.27.3.571
|
DriverVer = 03/20/2026,17.0.19.906
|
||||||
CatalogFile = bs1flt.cat
|
CatalogFile = bs1flt.cat
|
||||||
PnpLockdown = 1
|
PnpLockdown = 1
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ ClassGuid = {b86dff51-a31e-4bac-b3cf-e8cfe75c9fc2} ;This value is determine
|
||||||
;Class = "ActivityMonitor"
|
;Class = "ActivityMonitor"
|
||||||
;ClassGuid = {AE71EC8D-C1FD-4564-8AA9-D56ADE722321}
|
;ClassGuid = {AE71EC8D-C1FD-4564-8AA9-D56ADE722321}
|
||||||
Provider = %ManufacturerName%
|
Provider = %ManufacturerName%
|
||||||
DriverVer = 03/13/2026,13.27.3.571
|
DriverVer = 03/20/2026,17.0.19.906
|
||||||
CatalogFile = bs1flt.cat
|
CatalogFile = bs1flt.cat
|
||||||
PnpLockdown = 1
|
PnpLockdown = 1
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -99,7 +99,7 @@ typedef struct _FLT_START_FOR_CUSTOM
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
//장치별 타입
|
//장치별 타입
|
||||||
enum enum_devicetype
|
typedef enum
|
||||||
{
|
{
|
||||||
BDC_UNKNOWN_DEV = 0,
|
BDC_UNKNOWN_DEV = 0,
|
||||||
BDC_CDROM,
|
BDC_CDROM,
|
||||||
|
|
@ -133,15 +133,42 @@ enum enum_devicetype
|
||||||
BDC_WEBCAM,
|
BDC_WEBCAM,
|
||||||
BDC_MTP,
|
BDC_MTP,
|
||||||
BDC_MAX_DEVICE_TYPE
|
BDC_MAX_DEVICE_TYPE
|
||||||
|
}enum_devicetype;
|
||||||
|
|
||||||
};
|
//USB ÀåÄ¡º° ŸÀÔ
|
||||||
|
typedef enum {
|
||||||
|
BDC_USB_CLASS_UNSPECIFIED = 0,
|
||||||
|
BDC_USB_CLASS_AUDIO = 1,
|
||||||
|
BDC_USB_CLASS_CDC = 2,
|
||||||
|
BDC_USB_CLASS_HID = 3,
|
||||||
|
BDC_USB_CLASS_RESERVED_4 = 4,
|
||||||
|
BDC_USB_CLASS_PHYSICAL = 5,
|
||||||
|
BDC_USB_CLASS_IMAGE = 6,
|
||||||
|
BDC_USB_CLASS_PRINTER = 7,
|
||||||
|
BDC_USB_CLASS_MSC = 8,
|
||||||
|
BDC_USB_CLASS_HUB = 9,
|
||||||
|
BDC_USB_CLASS_CDC_DATA = 10,
|
||||||
|
BDC_USB_CLASS_SMART_CARD = 11,
|
||||||
|
BDC_USB_CLASS_RESERVED_12 = 12,
|
||||||
|
BDC_USB_CLASS_VENDOR_SPECIFIC = 0x13
|
||||||
|
//BDC_USB_CLASS_CONTENT_SECURITY = 13,
|
||||||
|
//BDC_USB_CLASS_VIDEO = 14,
|
||||||
|
//BDC_USB_CLASS_PERSONAL_HEALTHCARE = 15,
|
||||||
|
//BDC_USB_CLASS_AUDIO_VIDEO = 16,
|
||||||
|
|
||||||
|
//BDC_USB_CLASS_DIAGNOSTIC = 0xDC,
|
||||||
|
//BDC_USB_CLASS_WIRELESS_CONTROLLER = 0xE0,
|
||||||
|
//BDC_USB_CLASS_MISC = 0xEF,
|
||||||
|
//BDC_USB_CLASS_APPLICATION_SPECIFIC = 0xFE,
|
||||||
|
//BDC_USB_CLASS_VENDOR_SPECIFIC = 0xFF
|
||||||
|
} enum_usb_device_type;
|
||||||
|
|
||||||
|
typedef enum{
|
||||||
|
|
||||||
enum enum_devicestate
|
|
||||||
{
|
|
||||||
ENABLE = 0,
|
ENABLE = 0,
|
||||||
DISABLE,
|
DISABLE,
|
||||||
READONLY
|
READONLY
|
||||||
};
|
}enum_devicestate;
|
||||||
|
|
||||||
enum enum_pb_kernel_comunicationid
|
enum enum_pb_kernel_comunicationid
|
||||||
{
|
{
|
||||||
|
|
@ -188,7 +215,8 @@ enum enum_pb_kernel_comunicationid
|
||||||
|
|
||||||
START_PROCESS_CREATE,
|
START_PROCESS_CREATE,
|
||||||
SET_PROCESS_CREATE_BLOCK_RULE, //프로세스 차단 규칙 (프로세스명 + 파라미터)
|
SET_PROCESS_CREATE_BLOCK_RULE, //프로세스 차단 규칙 (프로세스명 + 파라미터)
|
||||||
CLEAR_PROCESS_CREATE_BLOCK_RULE
|
CLEAR_PROCESS_CREATE_BLOCK_RULE,
|
||||||
|
SET_USB_POLICY
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct _LOG_MSG_DATA
|
typedef struct _LOG_MSG_DATA
|
||||||
|
|
@ -352,8 +380,9 @@ typedef struct _BS1FLT_PROCESS_CREATE_BLOCK_RULE
|
||||||
#pragma pack(push, 1)
|
#pragma pack(push, 1)
|
||||||
typedef struct _DEVICE_POLICY
|
typedef struct _DEVICE_POLICY
|
||||||
{
|
{
|
||||||
enum enum_devicetype device_type;
|
enum_devicetype device_type;
|
||||||
enum enum_devicestate state;
|
enum_usb_device_type usb_device_type;
|
||||||
|
enum_devicestate state;
|
||||||
ULONG islog;
|
ULONG islog;
|
||||||
}DEVICE_POLICY, * PDEVICE_POLICY;
|
}DEVICE_POLICY, * PDEVICE_POLICY;
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
|
||||||
|
|
@ -394,6 +394,11 @@ Bs1FltMssageProc(
|
||||||
SetPolicy(msg->device_policy_.device_type, msg->device_policy_.state, msg->device_policy_.islog);
|
SetPolicy(msg->device_policy_.device_type, msg->device_policy_.state, msg->device_policy_.islog);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case SET_USB_POLICY:
|
||||||
|
{
|
||||||
|
KLogEx(DEBUG_TRACE_INFO, "SET_USB_POLICY, usbdevicetype(%d), state(%d)\n", msg->device_policy_.usb_device_type, msg->device_policy_.state);
|
||||||
|
SetUsbPolicy(msg->device_policy_.usb_device_type, msg->device_policy_.state);
|
||||||
|
}
|
||||||
case GET_LOG:
|
case GET_LOG:
|
||||||
{
|
{
|
||||||
ULONG req = 0;
|
ULONG req = 0;
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,12 @@
|
||||||
|
|
||||||
|
|
||||||
static DEVICE_POLICY s_policy[BDC_MAX_DEVICE_TYPE] = { 0, };
|
static DEVICE_POLICY s_policy[BDC_MAX_DEVICE_TYPE] = { 0, };
|
||||||
|
static ULONG s_usb_policy[BDC_USB_CLASS_VENDOR_SPECIFIC] = { 0, };
|
||||||
|
|
||||||
void Initpolicy()
|
void Initpolicy()
|
||||||
{
|
{
|
||||||
RtlZeroMemory(s_policy, sizeof(s_policy));
|
RtlZeroMemory(s_policy, sizeof(s_policy));
|
||||||
|
RtlZeroMemory(s_usb_policy, sizeof(s_usb_policy));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetPolicy(ULONG device_type, ULONG state, ULONG islog)
|
void SetPolicy(ULONG device_type, ULONG state, ULONG islog)
|
||||||
|
|
@ -36,6 +37,25 @@ ULONG IsPolicyLog(ULONG device_type)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void SetUsbPolicy(ULONG usb_classtype, ULONG state)
|
||||||
|
{
|
||||||
|
s_usb_policy[usb_classtype] = state;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOLEAN IsUsbPolicyDisable(ULONG usb_classtype)
|
||||||
|
{
|
||||||
|
if (usb_classtype >= BDC_USB_CLASS_VENDOR_SPECIFIC )
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (s_usb_policy[usb_classtype] == DISABLE)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//ULONG IsNetwork(PFLT_CALLBACK_DATA data, PCFLT_RELATED_OBJECTS fltobject)
|
//ULONG IsNetwork(PFLT_CALLBACK_DATA data, PCFLT_RELATED_OBJECTS fltobject)
|
||||||
//{
|
//{
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ ULONG GetPolicyState(ULONG device_type);
|
||||||
BOOLEAN IsPolicyDisable(ULONG device_type);
|
BOOLEAN IsPolicyDisable(ULONG device_type);
|
||||||
ULONG IsPolicyLog(ULONG device_type);
|
ULONG IsPolicyLog(ULONG device_type);
|
||||||
|
|
||||||
|
void SetUsbPolicy(ULONG usb_classtype, ULONG state);
|
||||||
|
BOOLEAN IsUsbPolicyDisable(ULONG usb_classtype);
|
||||||
|
|
||||||
|
|
||||||
ULONG GetDeviceType(PFLT_CALLBACK_DATA data, PCFLT_RELATED_OBJECTS fltobject);
|
ULONG GetDeviceType(PFLT_CALLBACK_DATA data, PCFLT_RELATED_OBJECTS fltobject);
|
||||||
|
|
|
||||||
|
|
@ -8,31 +8,7 @@
|
||||||
#pragma warning( disable : 4996 )
|
#pragma warning( disable : 4996 )
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
TUSB_CLASS_UNSPECIFIED = 0,
|
|
||||||
TUSB_CLASS_AUDIO = 1,
|
|
||||||
TUSB_CLASS_CDC = 2,
|
|
||||||
TUSB_CLASS_HID = 3,
|
|
||||||
TUSB_CLASS_RESERVED_4 = 4,
|
|
||||||
TUSB_CLASS_PHYSICAL = 5,
|
|
||||||
TUSB_CLASS_IMAGE = 6,
|
|
||||||
TUSB_CLASS_PRINTER = 7,
|
|
||||||
TUSB_CLASS_MSC = 8,
|
|
||||||
TUSB_CLASS_HUB = 9,
|
|
||||||
TUSB_CLASS_CDC_DATA = 10,
|
|
||||||
TUSB_CLASS_SMART_CARD = 11,
|
|
||||||
TUSB_CLASS_RESERVED_12 = 12,
|
|
||||||
TUSB_CLASS_CONTENT_SECURITY = 13,
|
|
||||||
TUSB_CLASS_VIDEO = 14,
|
|
||||||
TUSB_CLASS_PERSONAL_HEALTHCARE = 15,
|
|
||||||
TUSB_CLASS_AUDIO_VIDEO = 16,
|
|
||||||
|
|
||||||
TUSB_CLASS_DIAGNOSTIC = 0xDC,
|
|
||||||
TUSB_CLASS_WIRELESS_CONTROLLER = 0xE0,
|
|
||||||
TUSB_CLASS_MISC = 0xEF,
|
|
||||||
TUSB_CLASS_APPLICATION_SPECIFIC = 0xFE,
|
|
||||||
TUSB_CLASS_VENDOR_SPECIFIC = 0xFF
|
|
||||||
} usb_device_class_code;
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
|
@ -216,15 +192,16 @@ NTSTATUS UDF_CallUSBDI(IN PDEVICE_OBJECT pDevObj, IN PVOID UrbEtc)
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
BOOLEAN IsDefineDeviceClass(usb_device_class_code deviceclass)
|
BOOLEAN IsDefineDeviceClass(enum_usb_device_type deviceclass)
|
||||||
{
|
{
|
||||||
//BOOLEAN state = FALSE;
|
//BOOLEAN state = FALSE;
|
||||||
|
|
||||||
if (deviceclass == TUSB_CLASS_HID
|
if (
|
||||||
|| deviceclass == TUSB_CLASS_PRINTER
|
//deviceclass == TUSB_CLASS_HID
|
||||||
|| deviceclass == TUSB_CLASS_HUB
|
//|| deviceclass == TUSB_CLASS_PRINTER
|
||||||
|| deviceclass == TUSB_CLASS_AUDIO
|
deviceclass == BDC_USB_CLASS_HUB
|
||||||
|| deviceclass == TUSB_CLASS_VIDEO
|
//|| deviceclass == TUSB_CLASS_AUDIO
|
||||||
|
//|| deviceclass == TUSB_CLASS_VIDEO
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
@ -293,13 +270,7 @@ NTSTATUS USBPnpControl(PDRIVER_DISPATCH dispath, PDEVICE_OBJECT DeviceObject, PI
|
||||||
{
|
{
|
||||||
KLogEx(DEBUG_TRACE_INFO, " Serial: %S\n", pUsbInfo->SerialNumberStr);
|
KLogEx(DEBUG_TRACE_INFO, " Serial: %S\n", pUsbInfo->SerialNumberStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsUsbPortExceptionList(BDC_USB, pUsbInfo->DeviceDesc.idVendor, pUsbInfo->DeviceDesc.idProduct, pUsbInfo->DeviceDesc.bcdDevice, pUsbInfo->SerialNumberStr))
|
|
||||||
{
|
|
||||||
KLogEx(DEBUG_TRACE_INFO, "user usb policy exception\n");
|
|
||||||
goto $USBCleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pUsbInfo->ConfigDesc && pUsbInfo->ConfigDescSize > 0)
|
if (pUsbInfo->ConfigDesc && pUsbInfo->ConfigDescSize > 0)
|
||||||
{
|
{
|
||||||
PUSB_CONFIGURATION_DESCRIPTOR pConfigDesc = pUsbInfo->ConfigDesc;
|
PUSB_CONFIGURATION_DESCRIPTOR pConfigDesc = pUsbInfo->ConfigDesc;
|
||||||
|
|
@ -391,9 +362,23 @@ NTSTATUS USBPnpControl(PDRIVER_DISPATCH dispath, PDEVICE_OBJECT DeviceObject, PI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (policyLog)
|
if (state == DISABLE && pUsbInfo)
|
||||||
{
|
{
|
||||||
|
if(!IsUsbPolicyDisable(pUsbInfo->DeviceDesc.bDeviceClass))
|
||||||
|
{
|
||||||
|
KLogEx(DEBUG_TRACE_INFO, "usb policy disable\n");
|
||||||
|
state = ENABLE;
|
||||||
|
}
|
||||||
|
else if (IsUsbPortExceptionList(BDC_USB, pUsbInfo->DeviceDesc.idVendor, pUsbInfo->DeviceDesc.idProduct, pUsbInfo->DeviceDesc.bcdDevice, pUsbInfo->SerialNumberStr))
|
||||||
|
{
|
||||||
|
KLogEx(DEBUG_TRACE_INFO, "user usb policy exception\n");
|
||||||
|
state = ENABLE;
|
||||||
|
//goto $USBCleanup;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (policyLog)
|
||||||
|
{
|
||||||
WCHAR notice[MAX_PATH] = { 0, };
|
WCHAR notice[MAX_PATH] = { 0, };
|
||||||
WCHAR processName[50] = { 0, };
|
WCHAR processName[50] = { 0, };
|
||||||
ULONG DeviceClass = 0;
|
ULONG DeviceClass = 0;
|
||||||
|
|
|
||||||
|
|
@ -38,3 +38,4 @@ Bs1fltSetProcessCreateBlockRule @34 NONAME
|
||||||
Bs1fltClearProcessCreateBlockRule @35 NONAME
|
Bs1fltClearProcessCreateBlockRule @35 NONAME
|
||||||
Bs1fltClearUsbPortException @36 NONAME
|
Bs1fltClearUsbPortException @36 NONAME
|
||||||
Bs1fltOpen @37 NONAME
|
Bs1fltOpen @37 NONAME
|
||||||
|
Bs1fltSetUsbPolicy @38 NONAME
|
||||||
|
|
@ -54,4 +54,5 @@ BS1FLT_API DWORD WINAPI Bs1fltProcessCreate(DWORD enable);
|
||||||
BS1FLT_API DWORD WINAPI Bs1fltSetProcessCreateBlockRule(LPCWSTR name, LPCWSTR cmd, LPCWSTR parentName);
|
BS1FLT_API DWORD WINAPI Bs1fltSetProcessCreateBlockRule(LPCWSTR name, LPCWSTR cmd, LPCWSTR parentName);
|
||||||
BS1FLT_API DWORD WINAPI Bs1fltClearProcessCreateBlockRule();
|
BS1FLT_API DWORD WINAPI Bs1fltClearProcessCreateBlockRule();
|
||||||
BS1FLT_API DWORD WINAPI Bs1fltClearUsbPortException();
|
BS1FLT_API DWORD WINAPI Bs1fltClearUsbPortException();
|
||||||
BS1FLT_API DWORD WINAPI Bs1fltOpen();
|
BS1FLT_API DWORD WINAPI Bs1fltOpen();
|
||||||
|
BS1FLT_API DWORD WINAPI Bs1fltSetUsbPolicy(DWORD usb_device_type, DWORD state);
|
||||||
|
|
@ -459,7 +459,6 @@ BS1FLT_API DWORD WINAPI Bs1fltClearUsbException()
|
||||||
return interface_->SetUsbDiskException(STATE_CLEAR, NULL, NULL, NULL, NULL) ? BS1FLT_STATUS_SUCCESS : BS1FLT_STATUS_UNSUCCESSFUL;
|
return interface_->SetUsbDiskException(STATE_CLEAR, NULL, NULL, NULL, NULL) ? BS1FLT_STATUS_SUCCESS : BS1FLT_STATUS_UNSUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BS1FLT_API DWORD WINAPI Bs1fltSetPolicy(DWORD devcie_type, DWORD state, DWORD islog)
|
BS1FLT_API DWORD WINAPI Bs1fltSetPolicy(DWORD devcie_type, DWORD state, DWORD islog)
|
||||||
{
|
{
|
||||||
if (!interface_)
|
if (!interface_)
|
||||||
|
|
@ -598,4 +597,15 @@ BS1FLT_API DWORD WINAPI Bs1fltClearProcessCreateBlockRule()
|
||||||
return interface_->SetProcessCreateBlockRule(STATE_CLEAR, NULL, NULL, NULL) ? BS1FLT_STATUS_SUCCESS : BS1FLT_STATUS_UNSUCCESSFUL;
|
return interface_->SetProcessCreateBlockRule(STATE_CLEAR, NULL, NULL, NULL) ? BS1FLT_STATUS_SUCCESS : BS1FLT_STATUS_UNSUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BS1FLT_API DWORD WINAPI Bs1fltSetUsbPolicy(DWORD usb_device_type, DWORD state)
|
||||||
|
{
|
||||||
|
if (!interface_)
|
||||||
|
return BS1FLT_STATUS_UNSUCCESSFUL;
|
||||||
|
|
||||||
|
BSONE_DEBUG(_T("usb_device_type(%x), state(%x)\n"), usb_device_type, state);
|
||||||
|
return interface_->SetUsbPolicy((enum_usb_device_type)usb_device_type, (enum_devicestate)state) ? BS1FLT_STATUS_SUCCESS : BS1FLT_STATUS_UNSUCCESSFUL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
@ -919,6 +919,28 @@ BOOL CInterface::SetPolicy(enum_devicetype devcie_type, enum_devicestate state,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL CInterface::SetUsbPolicy(enum_usb_device_type usb_device_type, enum_devicestate state)
|
||||||
|
{
|
||||||
|
BS1FLT_MESSAGE msg = { 0, };
|
||||||
|
HRESULT result = 0;
|
||||||
|
DWORD dwRet = 0;
|
||||||
|
|
||||||
|
msg.id_ = (ULONGLONG)SET_USB_POLICY;
|
||||||
|
msg.device_policy_.usb_device_type = usb_device_type;
|
||||||
|
msg.device_policy_.state = state;
|
||||||
|
|
||||||
|
result = pFilterSendMessage(m_hPort, &msg, sizeof(msg), NULL, 0, &dwRet);
|
||||||
|
if (IS_ERROR(result))
|
||||||
|
{
|
||||||
|
BSONE_DEBUG(L"FilterSendMessage fail (%x)\n", result);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BOOL CInterface::SetProcessProtect(BOOL enable)
|
BOOL CInterface::SetProcessProtect(BOOL enable)
|
||||||
{
|
{
|
||||||
BS1FLT_MESSAGE msg = { 0, };
|
BS1FLT_MESSAGE msg = { 0, };
|
||||||
|
|
|
||||||
|
|
@ -145,7 +145,7 @@ public:
|
||||||
HRESULT GetLog(LPVOID outbuff, SIZE_T outbuffsize, DWORD* pdwReturnSize);
|
HRESULT GetLog(LPVOID outbuff, SIZE_T outbuffsize, DWORD* pdwReturnSize);
|
||||||
BOOL SetDeviceProtect(DWORD enable);
|
BOOL SetDeviceProtect(DWORD enable);
|
||||||
BOOL SetPolicy(enum_devicetype devcie_type, enum_devicestate state, BOOL islog);
|
BOOL SetPolicy(enum_devicetype devcie_type, enum_devicestate state, BOOL islog);
|
||||||
|
BOOL SetUsbPolicy(enum_usb_device_type usb_device_type, enum_devicestate state);
|
||||||
BOOL SetProcessProtect(BOOL enable);
|
BOOL SetProcessProtect(BOOL enable);
|
||||||
BOOL SetProcessProtectName(DWORD type, LPCWSTR name);
|
BOOL SetProcessProtectName(DWORD type, LPCWSTR name);
|
||||||
BOOL DelProcessProtectName(DWORD type, LPCWSTR name);
|
BOOL DelProcessProtectName(DWORD type, LPCWSTR name);
|
||||||
|
|
|
||||||
|
|
@ -3,5 +3,5 @@
|
||||||
#include "pch.h"
|
#include "pch.h"
|
||||||
|
|
||||||
// 미리 컴파일된 헤더를 사용하는 경우 컴파일이 성공하려면 이 소스 파일이 필요합니다.
|
// 미리 컴파일된 헤더를 사용하는 경우 컴파일이 성공하려면 이 소스 파일이 필요합니다.
|
||||||
Log4cppLogger log4_("bslflt");
|
Log4cppLogger log4_("bs1flt");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ DWORD Bs1fltControl::Init(LPCTSTR path, fpCallBack logcb)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVOID fuc[37] = { NULL, };
|
PVOID fuc[38] = { NULL, };
|
||||||
|
|
||||||
fuc[0] = Bs1FltCleanup = (fpCleanup)GetProcAddress(h_, (LPCSTR)MAKELONG(1, 0));
|
fuc[0] = Bs1FltCleanup = (fpCleanup)GetProcAddress(h_, (LPCSTR)MAKELONG(1, 0));
|
||||||
fuc[1] = Bs1FltInit = (fpInit)GetProcAddress(h_, (LPCSTR)MAKELONG(2, 0));
|
fuc[1] = Bs1FltInit = (fpInit)GetProcAddress(h_, (LPCSTR)MAKELONG(2, 0));
|
||||||
|
|
@ -72,6 +72,7 @@ DWORD Bs1fltControl::Init(LPCTSTR path, fpCallBack logcb)
|
||||||
fuc[34] = Bs1fltClearProcessCreateBlockRule = (fpBs1fltClearProcessCreateBlockRule)GetProcAddress(h_, (LPCSTR)MAKELONG(35, 0));
|
fuc[34] = Bs1fltClearProcessCreateBlockRule = (fpBs1fltClearProcessCreateBlockRule)GetProcAddress(h_, (LPCSTR)MAKELONG(35, 0));
|
||||||
fuc[35] = Bs1fltClearUsbPortException = (fpBs1fltClearUsbPortException)GetProcAddress(h_, (LPCSTR)MAKELONG(36, 0));
|
fuc[35] = Bs1fltClearUsbPortException = (fpBs1fltClearUsbPortException)GetProcAddress(h_, (LPCSTR)MAKELONG(36, 0));
|
||||||
fuc[36] = Bs1fltOpen = (fpBs1fltOpen)GetProcAddress(h_, (LPCSTR)MAKELONG(37, 0));
|
fuc[36] = Bs1fltOpen = (fpBs1fltOpen)GetProcAddress(h_, (LPCSTR)MAKELONG(37, 0));
|
||||||
|
fuc[37] = Bs1fltSetUsbPolicy = (fpBs1fltSetUsbPolicy)GetProcAddress(h_, (LPCSTR)MAKELONG(38, 0));
|
||||||
|
|
||||||
for (DWORD i = 0; i < ARRAYSIZE(fuc); ++i)
|
for (DWORD i = 0; i < ARRAYSIZE(fuc); ++i)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@ typedef DWORD(WINAPI* fpBs1fltSetProcessCreateBlockRule)(LPCWSTR name, LPCWSTR c
|
||||||
typedef DWORD(WINAPI* fpBs1fltClearProcessCreateBlockRule)();
|
typedef DWORD(WINAPI* fpBs1fltClearProcessCreateBlockRule)();
|
||||||
typedef DWORD(WINAPI* fpBs1fltClearUsbPortException)();
|
typedef DWORD(WINAPI* fpBs1fltClearUsbPortException)();
|
||||||
typedef DWORD(WINAPI* fpBs1fltOpen)();
|
typedef DWORD(WINAPI* fpBs1fltOpen)();
|
||||||
|
typedef DWORD(WINAPI* fpBs1fltSetUsbPolicy)(DWORD usb_device_type, DWORD state);
|
||||||
class Bs1fltControl {
|
class Bs1fltControl {
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
@ -102,5 +103,6 @@ public:
|
||||||
|
|
||||||
fpBs1fltClearUsbPortException Bs1fltClearUsbPortException;
|
fpBs1fltClearUsbPortException Bs1fltClearUsbPortException;
|
||||||
fpBs1fltOpen Bs1fltOpen;
|
fpBs1fltOpen Bs1fltOpen;
|
||||||
|
fpBs1fltSetUsbPolicy Bs1fltSetUsbPolicy;
|
||||||
HMODULE h_;
|
HMODULE h_;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
//#include "BSone_define.h"
|
//#include "BSone_define.h"
|
||||||
#include "../bs1flt/Bs1flt_common.h"
|
#include "../bs1flt/Bs1flt_common.h"
|
||||||
#include "bs1fltctrl_helper.h"
|
#include "bs1fltctrl_helper.h"
|
||||||
|
#include "devicesetup.h"
|
||||||
#include "CDialogUsbException.h"
|
#include "CDialogUsbException.h"
|
||||||
#include "CDialogProtectProcess.h"
|
#include "CDialogProtectProcess.h"
|
||||||
#include "CDlgProcessCreateRule.h"
|
#include "CDlgProcessCreateRule.h"
|
||||||
|
|
|
||||||
|
|
@ -205,6 +205,7 @@
|
||||||
<ClInclude Include="CDialogUsbException.h" />
|
<ClInclude Include="CDialogUsbException.h" />
|
||||||
<ClInclude Include="CDlgProcessCreateRule.h" />
|
<ClInclude Include="CDlgProcessCreateRule.h" />
|
||||||
<ClInclude Include="CFolderProtectDlg.h" />
|
<ClInclude Include="CFolderProtectDlg.h" />
|
||||||
|
<ClInclude Include="devicesetup.h" />
|
||||||
<ClInclude Include="framework.h" />
|
<ClInclude Include="framework.h" />
|
||||||
<ClInclude Include="pch.h" />
|
<ClInclude Include="pch.h" />
|
||||||
<ClInclude Include="Resource.h" />
|
<ClInclude Include="Resource.h" />
|
||||||
|
|
@ -219,6 +220,7 @@
|
||||||
<ClCompile Include="CDialogUsbException.cpp" />
|
<ClCompile Include="CDialogUsbException.cpp" />
|
||||||
<ClCompile Include="CDlgProcessCreateRule.cpp" />
|
<ClCompile Include="CDlgProcessCreateRule.cpp" />
|
||||||
<ClCompile Include="CFolderProtectDlg.cpp" />
|
<ClCompile Include="CFolderProtectDlg.cpp" />
|
||||||
|
<ClCompile Include="devicesetup.cpp" />
|
||||||
<ClCompile Include="pch.cpp">
|
<ClCompile Include="pch.cpp">
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,9 @@
|
||||||
<ClInclude Include="CFolderProtectDlg.h">
|
<ClInclude Include="CFolderProtectDlg.h">
|
||||||
<Filter>헤더 파일</Filter>
|
<Filter>헤더 파일</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="devicesetup.h">
|
||||||
|
<Filter>헤더 파일</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="tool.cpp">
|
<ClCompile Include="tool.cpp">
|
||||||
|
|
@ -83,6 +86,9 @@
|
||||||
<ClCompile Include="CFolderProtectDlg.cpp">
|
<ClCompile Include="CFolderProtectDlg.cpp">
|
||||||
<Filter>소스 파일</Filter>
|
<Filter>소스 파일</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="devicesetup.cpp">
|
||||||
|
<Filter>소스 파일</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="tool.rc">
|
<ResourceCompile Include="tool.rc">
|
||||||
|
|
|
||||||
|
|
@ -631,7 +631,26 @@ void CtoolDlg::OnBnClickedButtonSetPolicy()
|
||||||
|
|
||||||
debug.Format(L"SetPolicy : Device Type %d State %d Islog %d", policy[i].device_type, policy[i].state, policy[i].islog);
|
debug.Format(L"SetPolicy : Device Type %d State %d Islog %d", policy[i].device_type, policy[i].state, policy[i].islog);
|
||||||
listLog_.AddString(debug);
|
listLog_.AddString(debug);
|
||||||
|
|
||||||
|
|
||||||
bs1flt_.Bs1FltSetPolicy((DWORD)policy[i].device_type, policy[i].state, policy[i].islog);
|
bs1flt_.Bs1FltSetPolicy((DWORD)policy[i].device_type, policy[i].state, policy[i].islog);
|
||||||
|
|
||||||
|
if ((DWORD)policy[i].device_type == BDC_USB && policy[i].state == DISABLE)
|
||||||
|
{
|
||||||
|
bs1flt_.Bs1fltSetUsbPolicy((DWORD)BDC_USB_CLASS_UNSPECIFIED, DISABLE);
|
||||||
|
bs1flt_.Bs1fltSetUsbPolicy((DWORD)BDC_USB_CLASS_CDC, DISABLE);
|
||||||
|
bs1flt_.Bs1fltSetUsbPolicy((DWORD)BDC_USB_CLASS_HID, ENABLE);
|
||||||
|
bs1flt_.Bs1fltSetUsbPolicy((DWORD)BDC_USB_CLASS_AUDIO, DISABLE);
|
||||||
|
bs1flt_.Bs1fltSetUsbPolicy((DWORD)BDC_USB_CLASS_PHYSICAL, DISABLE);
|
||||||
|
bs1flt_.Bs1fltSetUsbPolicy((DWORD)BDC_USB_CLASS_IMAGE, DISABLE);
|
||||||
|
bs1flt_.Bs1fltSetUsbPolicy((DWORD)BDC_USB_CLASS_PRINTER, DISABLE);
|
||||||
|
bs1flt_.Bs1fltSetUsbPolicy((DWORD)BDC_USB_CLASS_MSC, DISABLE);
|
||||||
|
bs1flt_.Bs1fltSetUsbPolicy((DWORD)BDC_USB_CLASS_CDC_DATA, DISABLE);
|
||||||
|
bs1flt_.Bs1fltSetUsbPolicy((DWORD)BDC_USB_CLASS_SMART_CARD, DISABLE);
|
||||||
|
|
||||||
|
debug.Format(L"SetPolicy : ReStartUsb");
|
||||||
|
CloseHandle(CreateThread(NULL, 0, ReStartUsb, NULL, 0, NULL));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*debug.Format(L"SetPolicy : %d %d", state, islog);
|
/*debug.Format(L"SetPolicy : %d %d", state, islog);
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,22 +1,8 @@
|
||||||
C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(524,5): warning MSB8004: Output 디렉터리가 슬래시로 끝나지 않습니다. Output 디렉터리의 적절한 평가를 허용하는 데 필요하므로 이 빌드 인스턴스에서 슬래시를 추가합니다.
|
C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(524,5): warning MSB8004: Output 디렉터리가 슬래시로 끝나지 않습니다. Output 디렉터리의 적절한 평가를 허용하는 데 필요하므로 이 빌드 인스턴스에서 슬래시를 추가합니다.
|
||||||
pch.cpp
|
|
||||||
CDialogProtectProcess.cpp
|
|
||||||
CDialogRegProtect.cpp
|
|
||||||
CDialogUsbException.cpp
|
|
||||||
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\CDialogUsbException.cpp(80,3): warning C4129: 'D': 인식할 수 없는 문자 이스케이프 시퀀스입니다.
|
|
||||||
(소스 파일 '/CDialogUsbException.cpp'을(를) 컴파일하는 중)
|
|
||||||
|
|
||||||
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\CDialogUsbException.cpp(80,3): warning C4129: '8': 인식할 수 없는 문자 이스케이프 시퀀스입니다.
|
|
||||||
(소스 파일 '/CDialogUsbException.cpp'을(를) 컴파일하는 중)
|
|
||||||
|
|
||||||
CDlgProcessCreateRule.cpp
|
|
||||||
CFolderProtectDlg.cpp
|
|
||||||
bs1fltctrl_helper.cpp
|
|
||||||
tool.cpp
|
|
||||||
toolDlg.cpp
|
toolDlg.cpp
|
||||||
코드를 생성하고 있습니다.
|
코드를 생성하고 있습니다.
|
||||||
5 of 454 functions ( 1.1%) were compiled, the rest were copied from previous compilation.
|
1 of 459 functions ( 0.2%) were compiled, the rest were copied from previous compilation.
|
||||||
2 functions were new in current compilation
|
0 functions were new in current compilation
|
||||||
1 functions had inline decision re-evaluated but remain unchanged
|
1 functions had inline decision re-evaluated but remain unchanged
|
||||||
코드를 생성했습니다.
|
코드를 생성했습니다.
|
||||||
tool.vcxproj -> C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\bin\bs1fltputool.exe
|
tool.vcxproj -> C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\bin\bs1fltputool.exe
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -4,6 +4,7 @@ C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\CDialogRegProtect.cpp;C:\mgk
|
||||||
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\CDialogUsbException.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\CDialogUsbException.obj
|
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\CDialogUsbException.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\CDialogUsbException.obj
|
||||||
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\CDlgProcessCreateRule.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\CDlgProcessCreateRule.obj
|
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\CDlgProcessCreateRule.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\CDlgProcessCreateRule.obj
|
||||||
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\CFolderProtectDlg.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\CFolderProtectDlg.obj
|
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\CFolderProtectDlg.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\CFolderProtectDlg.obj
|
||||||
|
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\devicesetup.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\devicesetup.obj
|
||||||
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\pch.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\pch.obj
|
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\pch.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\pch.obj
|
||||||
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\tool.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\tool.obj
|
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\tool.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\tool.obj
|
||||||
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\toolDlg.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\toolDlg.obj
|
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\toolDlg.cpp;C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\toolDlg.obj
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,3 +1,3 @@
|
||||||
^C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\BS1FLTCTRL_HELPER.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\CDIALOGPROTECTPROCESS.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\CDIALOGREGPROTECT.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\CDIALOGUSBEXCEPTION.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\CDLGPROCESSCREATERULE.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\CFOLDERPROTECTDLG.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\PCH.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\TOOL.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\TOOL.RES|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\TOOLDLG.OBJ
|
^C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\BS1FLTCTRL_HELPER.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\CDIALOGPROTECTPROCESS.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\CDIALOGREGPROTECT.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\CDIALOGUSBEXCEPTION.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\CDLGPROCESSCREATERULE.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\CFOLDERPROTECTDLG.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\DEVICESETUP.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\PCH.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\TOOL.OBJ|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\TOOL.RES|C:\MGKIM\8.BSONE\BSONE.SFC\TOCSG.MODULE\BS1FLT\TOOL\X64\RELEASE\TOOLDLG.OBJ
|
||||||
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\bs1fltputool.IPDB
|
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\bs1fltputool.IPDB
|
||||||
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\bs1fltputool.iobj
|
C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\tool\x64\Release\bs1fltputool.iobj
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -3,8 +3,8 @@ object AuthForm: TAuthForm
|
||||||
Top = 0
|
Top = 0
|
||||||
BorderIcons = [biMinimize, biMaximize]
|
BorderIcons = [biMinimize, biMaximize]
|
||||||
Caption = 'BSOne Login'
|
Caption = 'BSOne Login'
|
||||||
ClientHeight = 171
|
ClientHeight = 199
|
||||||
ClientWidth = 146
|
ClientWidth = 228
|
||||||
Color = clBtnFace
|
Color = clBtnFace
|
||||||
Font.Charset = DEFAULT_CHARSET
|
Font.Charset = DEFAULT_CHARSET
|
||||||
Font.Color = clWindowText
|
Font.Color = clWindowText
|
||||||
|
|
@ -15,30 +15,42 @@ object AuthForm: TAuthForm
|
||||||
TextHeight = 15
|
TextHeight = 15
|
||||||
object Label1: TLabel
|
object Label1: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 8
|
Top = 16
|
||||||
Width = 11
|
Width = 33
|
||||||
Height = 15
|
Height = 17
|
||||||
Caption = 'ID'
|
Caption = 'ID'
|
||||||
|
Font.Charset = DEFAULT_CHARSET
|
||||||
|
Font.Color = clWindowText
|
||||||
|
Font.Height = -13
|
||||||
|
Font.Name = 'Segoe UI'
|
||||||
|
Font.Style = []
|
||||||
|
ParentFont = False
|
||||||
end
|
end
|
||||||
object Label2: TLabel
|
object Label2: TLabel
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 58
|
Top = 68
|
||||||
Width = 18
|
Width = 41
|
||||||
Height = 15
|
Height = 17
|
||||||
Caption = 'PW'
|
Caption = 'PW'
|
||||||
|
Font.Charset = DEFAULT_CHARSET
|
||||||
|
Font.Color = clWindowText
|
||||||
|
Font.Height = -13
|
||||||
|
Font.Name = 'Segoe UI'
|
||||||
|
Font.Style = []
|
||||||
|
ParentFont = False
|
||||||
end
|
end
|
||||||
object EditID: TEdit
|
object EditID: TEdit
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 29
|
Top = 39
|
||||||
Width = 129
|
Width = 212
|
||||||
Height = 23
|
Height = 23
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
TextHint = 'ID'#47484' '#51077#47141#54616#49464#50836
|
TextHint = 'ID'#47484' '#51077#47141#54616#49464#50836
|
||||||
end
|
end
|
||||||
object EditPW: TEdit
|
object EditPW: TEdit
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 79
|
Top = 91
|
||||||
Width = 129
|
Width = 212
|
||||||
Height = 23
|
Height = 23
|
||||||
PasswordChar = '*'
|
PasswordChar = '*'
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
|
|
@ -46,9 +58,9 @@ object AuthForm: TAuthForm
|
||||||
end
|
end
|
||||||
object ButtonLogin: TButton
|
object ButtonLogin: TButton
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 120
|
Top = 128
|
||||||
Width = 129
|
Width = 212
|
||||||
Height = 33
|
Height = 49
|
||||||
Caption = 'Login'
|
Caption = 'Login'
|
||||||
Default = True
|
Default = True
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,20 +1,20 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<BorlandProject>
|
<BorlandProject>
|
||||||
<Transactions>
|
<Transactions>
|
||||||
<Transaction>1899-12-30 00:00:00.000.796,C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\BsoneDebug.pas=</Transaction>
|
|
||||||
<Transaction>1899-12-30 00:00:00.000.471,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\BsoneDebug.pas</Transaction>
|
|
||||||
<Transaction>1899-12-30 00:00:00.000.033,=C:\mgkim\8.bsone\BSOne.SFC\eCrmHE\DLL_eCrmHeHelper\WindowFinderThread.pas</Transaction>
|
|
||||||
<Transaction>1899-12-30 00:00:00.000.246,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\BsoneDebug.pas</Transaction>
|
|
||||||
<Transaction>1899-12-30 00:00:00.000.318,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\FileHandleListUnit.pas</Transaction>
|
|
||||||
<Transaction>1899-12-30 00:00:00.000.894,C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\FileHandleListUnit.pas=</Transaction>
|
|
||||||
<Transaction>1899-12-30 00:00:00.000.546,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\FileHandleListUnit.pas</Transaction>
|
|
||||||
<Transaction>1899-12-30 00:00:00.000.934,C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\ObexParserUnit.pas=</Transaction>
|
|
||||||
<Transaction>1899-12-30 00:00:00.000.283,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\BsoneUtil.pas</Transaction>
|
|
||||||
<Transaction>1899-12-30 00:00:00.000.853,C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\BsoneUtil.pas=</Transaction>
|
|
||||||
<Transaction>1899-12-30 00:00:00.000.508,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\BsoneUtil.pas</Transaction>
|
|
||||||
<Transaction>1899-12-30 00:00:00.000.691,=C:\mgkim\8.bsone\BSOne.SFC\eCrmHE\DLL_eCrmHeHelper\Unit1.pas</Transaction>
|
|
||||||
<Transaction>1899-12-30 00:00:00.000.581,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\ObexParserUnit.pas</Transaction>
|
<Transaction>1899-12-30 00:00:00.000.581,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\ObexParserUnit.pas</Transaction>
|
||||||
|
<Transaction>1899-12-30 00:00:00.000.934,C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\ObexParserUnit.pas=</Transaction>
|
||||||
|
<Transaction>1899-12-30 00:00:00.000.033,=C:\mgkim\8.bsone\BSOne.SFC\eCrmHE\DLL_eCrmHeHelper\WindowFinderThread.pas</Transaction>
|
||||||
<Transaction>1899-12-30 00:00:00.000.361,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\ObexParserUnit.pas</Transaction>
|
<Transaction>1899-12-30 00:00:00.000.361,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\ObexParserUnit.pas</Transaction>
|
||||||
<Transaction>1899-12-30 00:00:00.000.713,C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\ApiHookContents.pas=C:\mgkim\8.bsone\BSOne.SFC\eCrmHE\DLL_eCrmHeHelper\Unit1.pas</Transaction>
|
<Transaction>1899-12-30 00:00:00.000.546,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\FileHandleListUnit.pas</Transaction>
|
||||||
|
<Transaction>1899-12-30 00:00:00.000.894,C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\FileHandleListUnit.pas=</Transaction>
|
||||||
|
<Transaction>1899-12-30 00:00:00.000.318,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\FileHandleListUnit.pas</Transaction>
|
||||||
|
<Transaction>1899-12-30 00:00:00.000.246,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\BsoneDebug.pas</Transaction>
|
||||||
|
<Transaction>1899-12-30 00:00:00.000.508,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\BsoneUtil.pas</Transaction>
|
||||||
|
<Transaction>1899-12-30 00:00:00.000.853,C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\BsoneUtil.pas=</Transaction>
|
||||||
|
<Transaction>1899-12-30 00:00:00.000.283,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\BsoneUtil.pas</Transaction>
|
||||||
|
<Transaction>1899-12-30 00:00:00.000.691,=C:\mgkim\8.bsone\BSOne.SFC\eCrmHE\DLL_eCrmHeHelper\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899-12-30 00:00:00.000.471,=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\BsoneDebug.pas</Transaction>
|
||||||
|
<Transaction>1899-12-30 00:00:00.000.796,C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\BsoneDebug.pas=</Transaction>
|
||||||
|
<Transaction>1899-12-30 00:00:00.000.713,C:\mgkim\8.bsone\BSOne.SFC\eCrmHE\DLL_eCrmHeHelper\Unit1.pas=C:\mgkim\8.bsone\BSOne.SFC\Tocsg.Module\Bs1Flt\MTPMon\MTPControl\ApiHookContents.pas</Transaction>
|
||||||
</Transactions>
|
</Transactions>
|
||||||
</BorlandProject>
|
</BorlandProject>
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -2185,6 +2185,27 @@ object DlgeCrmHeInstMain: TDlgeCrmHeInstMain
|
||||||
Caption = #51312#54924
|
Caption = #51312#54924
|
||||||
OnClick = btnInfoClick
|
OnClick = btnInfoClick
|
||||||
end
|
end
|
||||||
|
object Label20: TLabel
|
||||||
|
Left = 48
|
||||||
|
Top = 122
|
||||||
|
Width = 70
|
||||||
|
Height = 17
|
||||||
|
Alignment = taRightJustify
|
||||||
|
Caption = 'IP '#51221#48372' '#51077#47141
|
||||||
|
Font.Charset = DEFAULT_CHARSET
|
||||||
|
Font.Color = clWindowText
|
||||||
|
Font.Height = -13
|
||||||
|
Font.Name = 'Segoe UI'
|
||||||
|
Font.Style = []
|
||||||
|
ParentFont = False
|
||||||
|
end
|
||||||
|
object Label21: TLabel
|
||||||
|
Left = 321
|
||||||
|
Top = 124
|
||||||
|
Width = 33
|
||||||
|
Height = 15
|
||||||
|
Caption = #54252#53944' : '
|
||||||
|
end
|
||||||
object edEmpNo: TEdit
|
object edEmpNo: TEdit
|
||||||
Left = 150
|
Left = 150
|
||||||
Top = 164
|
Top = 164
|
||||||
|
|
@ -2215,6 +2236,31 @@ object DlgeCrmHeInstMain: TDlgeCrmHeInstMain
|
||||||
State = cbChecked
|
State = cbChecked
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
end
|
end
|
||||||
|
object edtIPAddress: TEdit
|
||||||
|
Left = 150
|
||||||
|
Top = 120
|
||||||
|
Width = 155
|
||||||
|
Height = 23
|
||||||
|
TabOrder = 3
|
||||||
|
Text = '192.168.15.197'
|
||||||
|
end
|
||||||
|
object edtPort: TEdit
|
||||||
|
Left = 360
|
||||||
|
Top = 120
|
||||||
|
Width = 63
|
||||||
|
Height = 23
|
||||||
|
TabOrder = 4
|
||||||
|
Text = '8443'
|
||||||
|
end
|
||||||
|
object chkIPCheck: TCheckBox
|
||||||
|
Left = 429
|
||||||
|
Top = 120
|
||||||
|
Width = 97
|
||||||
|
Height = 17
|
||||||
|
Caption = 'IP '#51217#49549' '#52404#53356
|
||||||
|
TabOrder = 5
|
||||||
|
OnClick = ClickiPCheck
|
||||||
|
end
|
||||||
end
|
end
|
||||||
object cdInstall: TCard
|
object cdInstall: TCard
|
||||||
Left = 0
|
Left = 0
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ uses
|
||||||
Vcl.Imaging.pngimage, PngImageList, System.ImageList, Vcl.ImgList,
|
Vcl.Imaging.pngimage, PngImageList, System.ImageList, Vcl.ImgList,
|
||||||
Vcl.WinXPanels, Vcl.ComCtrls, VirtualTrees, Vcl.Buttons,
|
Vcl.WinXPanels, Vcl.ComCtrls, VirtualTrees, Vcl.Buttons,
|
||||||
IdHTTP, IdSSLOpenSSL, IdIOHandler, System.Actions, Vcl.ActnList, AbArcTyp,
|
IdHTTP, IdSSLOpenSSL, IdIOHandler, System.Actions, Vcl.ActnList, AbArcTyp,
|
||||||
AbUtils, Tocsg.Obj, superobject;
|
AbUtils, Tocsg.Obj, superobject, System.Net.HttpClient, System.Net.URLClient;
|
||||||
|
|
||||||
//{$DEFINE _MOTRAS_}
|
//{$DEFINE _MOTRAS_}
|
||||||
//{$DEFINE _SILENT_}
|
//{$DEFINE _SILENT_}
|
||||||
|
|
@ -98,6 +98,11 @@ type
|
||||||
acPrev: TAction;
|
acPrev: TAction;
|
||||||
acComplete: TAction;
|
acComplete: TAction;
|
||||||
acReinstall: TAction;
|
acReinstall: TAction;
|
||||||
|
Label20: TLabel;
|
||||||
|
edtIPAddress: TEdit;
|
||||||
|
edtPort: TEdit;
|
||||||
|
Label21: TLabel;
|
||||||
|
chkIPCheck: TCheckBox;
|
||||||
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
|
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
|
||||||
Shift: TShiftState; X, Y: Integer);
|
Shift: TShiftState; X, Y: Integer);
|
||||||
procedure imgMinClick(Sender: TObject);
|
procedure imgMinClick(Sender: TObject);
|
||||||
|
|
@ -137,12 +142,18 @@ type
|
||||||
procedure acCompleteExecute(Sender: TObject);
|
procedure acCompleteExecute(Sender: TObject);
|
||||||
procedure acNextExecute(Sender: TObject);
|
procedure acNextExecute(Sender: TObject);
|
||||||
procedure acPrevExecute(Sender: TObject);
|
procedure acPrevExecute(Sender: TObject);
|
||||||
|
procedure clickIpCheck(Sender: TObject);
|
||||||
private
|
private
|
||||||
{ Private declarations }
|
{ Private declarations }
|
||||||
HTTP_: TIdHTTP;
|
HTTP_: TIdHTTP;
|
||||||
SSL_: TIdSSLIOHandlerSocketOpenSSL;
|
SSL_: TIdSSLIOHandlerSocketOpenSSL;
|
||||||
sEmpNoVerifyOK_: String;
|
sEmpNoVerifyOK_: String;
|
||||||
|
|
||||||
|
ip_: string;
|
||||||
|
port_: string;
|
||||||
|
serverInfo_: string;
|
||||||
procedure InitHttp;
|
procedure InitHttp;
|
||||||
|
function btnIpCheckClick: Boolean;
|
||||||
function CheckEmpNo: Boolean;
|
function CheckEmpNo: Boolean;
|
||||||
function LoadEmpNo: Boolean;
|
function LoadEmpNo: Boolean;
|
||||||
procedure SetImgBtn(aImgList: TPngImageList; imgBtn: TImage; nImgIdx: Integer);
|
procedure SetImgBtn(aImgList: TPngImageList; imgBtn: TImage; nImgIdx: Integer);
|
||||||
|
|
@ -172,6 +183,13 @@ type
|
||||||
procedure SaveFileInfo(sPath: String);
|
procedure SaveFileInfo(sPath: String);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
type
|
||||||
|
TCertValidator = class
|
||||||
|
public
|
||||||
|
procedure DoValidateServerCertificate(const Sender: TObject; const ARequest: TURLRequest;
|
||||||
|
const Certificate: TCertificate; var Accepted: Boolean);
|
||||||
|
end;
|
||||||
|
|
||||||
function ProcessInstall(aInstForm: TDlgeCrmHeInstMain; bStartSvc: Boolean = false): Boolean;
|
function ProcessInstall(aInstForm: TDlgeCrmHeInstMain; bStartSvc: Boolean = false): Boolean;
|
||||||
|
|
||||||
var
|
var
|
||||||
|
|
@ -259,20 +277,20 @@ begin
|
||||||
if FileExists(FileList_[i]) then
|
if FileExists(FileList_[i]) then
|
||||||
begin
|
begin
|
||||||
|
|
||||||
if Pos('si.dat', FileList_[i]) > 0 then
|
// if Pos('si.dat', FileList_[i]) > 0 then
|
||||||
begin
|
// begin
|
||||||
var sidat, encsidat: TStringStream;
|
// var sidat, encsidat: TStringStream;
|
||||||
var siO:ISuperObject;
|
// var siO:ISuperObject;
|
||||||
|
//
|
||||||
Guard(sidat, TStringStream.Create('', TEncoding.UTF8));
|
// Guard(sidat, TStringStream.Create('', TEncoding.UTF8));
|
||||||
sidat.LoadFromFile(FileList_[i]);
|
// sidat.LoadFromFile(FileList_[i]);
|
||||||
// siO := SO(sidat.DataString);
|
//// siO := SO(sidat.DataString);
|
||||||
OutputDebugString(PChar(Format('[MGKIM] Encrypt ok : DataString : %s',[sidat.DataString])));
|
// OutputDebugString(PChar(Format('[MGKIM] Encrypt ok : DataString : %s',[sidat.DataString])));
|
||||||
Guard(encsidat, TStringStream.Create(
|
// Guard(encsidat, TStringStream.Create(
|
||||||
EncStrToBinStr(ekAes256cbc, PASS_MODEL, sidat.DataString), TEncoding.UTF8));
|
// EncStrToBinStr(ekAes256cbc, PASS_MODEL, sidat.DataString), TEncoding.UTF8));
|
||||||
encsidat.SaveToFile(FileList_[i]);
|
// encsidat.SaveToFile(FileList_[i]);
|
||||||
OutputDebugString(PChar(Format('[MGKIM] Encrypt ok : %s',[PChar(FileList_[i])])));
|
// OutputDebugString(PChar(Format('[MGKIM] Encrypt ok : %s',[PChar(FileList_[i])])));
|
||||||
end;
|
// end;
|
||||||
|
|
||||||
sHash := GetFileToSha256(FileList_[i]);
|
sHash := GetFileToSha256(FileList_[i]);
|
||||||
if sHash <> '' then
|
if sHash <> '' then
|
||||||
|
|
@ -888,6 +906,18 @@ begin
|
||||||
|
|
||||||
if Result then
|
if Result then
|
||||||
begin
|
begin
|
||||||
|
var O: ISuperObject;
|
||||||
|
var ss: TStringStream;
|
||||||
|
|
||||||
|
O := SO;
|
||||||
|
O.S['SvrDest'] := DlgeCrmHeInstMain.serverInfo_;
|
||||||
|
Guard(ss, TStringStream.Create(
|
||||||
|
EncStrToBinStr(ekAes256cbc, PASS_MODEL, O.AsString), TEncoding.UTF8));
|
||||||
|
|
||||||
|
ss.SaveToFile(sInstDir + 'si.dat');
|
||||||
|
OutputDebugString(PChar(Format('[MGKIM] si dat ok : %s, %s',[PChar(sInstDir + 'si.dat'), DlgeCrmHeInstMain.serverInfo_])));
|
||||||
|
InstFileInfo.FileList_.Add(PChar(sInstDir + 'si.dat'));
|
||||||
|
|
||||||
InstFileInfo.SaveFileInfo(sBackDir + 'rst.00');
|
InstFileInfo.SaveFileInfo(sBackDir + 'rst.00');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
@ -1350,24 +1380,38 @@ begin
|
||||||
|
|
||||||
InitHttp;
|
InitHttp;
|
||||||
|
|
||||||
Guard(SvrList, TStringList.Create);
|
// Guard(SvrList, TStringList.Create);
|
||||||
GetDestServerList(SvrList);
|
// GetDestServerList(SvrList);
|
||||||
ASSERT(SvrList.Count > 0);
|
// ASSERT(SvrList.Count > 0);
|
||||||
|
|
||||||
for i := 0 to SvrList.Count - 1 do
|
var serverInfo: string;
|
||||||
|
serverInfo := 'https://' + edtIPAddress.Text + ':' + edtPort.Text + '/agentLogRequests.do';
|
||||||
|
|
||||||
|
sInfo := GetEmpNoInfo(serverInfo, HTTP_, edEmpNo.Text);
|
||||||
|
if sInfo <> '' then
|
||||||
begin
|
begin
|
||||||
sInfo := GetEmpNoInfo(SvrList[i], HTTP_, edEmpNo.Text);
|
try
|
||||||
if sInfo <> '' then
|
O := SO(sInfo);
|
||||||
begin
|
except
|
||||||
try
|
// ..
|
||||||
O := SO(sInfo);
|
|
||||||
break;
|
|
||||||
except
|
|
||||||
// ..
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
// for i := 0 to SvrList.Count - 1 do
|
||||||
|
// begin
|
||||||
|
// sInfo := GetEmpNoInfo(SvrList[i], HTTP_, edEmpNo.Text);
|
||||||
|
// if sInfo <> '' then
|
||||||
|
// begin
|
||||||
|
// try
|
||||||
|
// O := SO(sInfo);
|
||||||
|
// break;
|
||||||
|
// except
|
||||||
|
// // ..
|
||||||
|
// end;
|
||||||
|
// end;
|
||||||
|
// end;
|
||||||
|
|
||||||
if (O <> nil) and (O.S['result'] <> 'false') then
|
if (O <> nil) and (O.S['result'] <> 'false') then
|
||||||
begin
|
begin
|
||||||
sEmpNoVerifyOK_ := edEmpNo.Text;
|
sEmpNoVerifyOK_ := edEmpNo.Text;
|
||||||
|
|
@ -1390,6 +1434,115 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure TCertValidator.DoValidateServerCertificate(const Sender: TObject; const ARequest: TURLRequest;
|
||||||
|
const Certificate: TCertificate; var Accepted: Boolean);
|
||||||
|
begin
|
||||||
|
// 핵심: 인증서가 만료되었거나 IP 주소라서 안 맞거나, 사설 인증서라도 무조건 통과(True) 시킴!
|
||||||
|
Accepted := True;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function CheckServerConnection(const AUrl: string): Boolean;
|
||||||
|
var
|
||||||
|
Client: THTTPClient;
|
||||||
|
Response: IHTTPResponse;
|
||||||
|
Validator: TCertValidator; // 더미 클래스 변수 추가
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
Validator := TCertValidator.Create; // 이벤트 처리용 객체 생성
|
||||||
|
// HTTP 클라이언트 객체 생성
|
||||||
|
Client := THTTPClient.Create;
|
||||||
|
try
|
||||||
|
// [핵심] 연결 시도 중 UI가 영원히 멈추는 것을 방지하기 위한 타임아웃 설정 (밀리초)
|
||||||
|
Client.ConnectionTimeout := 3000; // 3초 내에 연결 안 되면 포기
|
||||||
|
Client.ResponseTimeout := 3000; // 연결 후 3초 내에 응답 없으면 포기
|
||||||
|
|
||||||
|
Client.OnValidateServerCertificate := Validator.DoValidateServerCertificate;
|
||||||
|
|
||||||
|
try
|
||||||
|
// GET 방식 요청
|
||||||
|
Response := Client.Get(AUrl);
|
||||||
|
|
||||||
|
// 서버가 정상적으로 응답했는지 상태 코드 확인 (200 = OK)
|
||||||
|
// *참고: 웹 서버가 켜져있다는 것 자체만 확인하려면 Response가 돌아온 것만으로도 True를 줄 수 있습니다.
|
||||||
|
if Response.StatusCode = 200 then
|
||||||
|
Result := True
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
// 404(Not Found)나 500(Server Error) 등이 발생했을 때의 처리
|
||||||
|
// _Trace(Format('서버 응답 오류: %d', [Response.StatusCode]));
|
||||||
|
OutputDebugString(PChar(Format('[MGKIM] 서버 응답 오류: %d', [Response.StatusCode])));
|
||||||
|
Result := False;
|
||||||
|
end;
|
||||||
|
except
|
||||||
|
on E: Exception do
|
||||||
|
begin
|
||||||
|
// 타임아웃, 네트워크 단절, 서버 다운 등의 경우 이곳으로 빠집니다.
|
||||||
|
// _Trace('접속 실패: ' + E.Message);
|
||||||
|
OutputDebugString(PChar('[MGKIM] 접속 실패: ' + E.Message));
|
||||||
|
Result := False;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
Client.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TDlgeCrmHeInstMain.btnIpCheckClick: Boolean;
|
||||||
|
var
|
||||||
|
ip: string;
|
||||||
|
port: string;
|
||||||
|
begin
|
||||||
|
|
||||||
|
Result:= False;
|
||||||
|
|
||||||
|
// if chkIPCheck.Enabled then
|
||||||
|
// exit;
|
||||||
|
|
||||||
|
ip:= edtIPAddress.Text;
|
||||||
|
if ip = '' then
|
||||||
|
begin
|
||||||
|
ShowMessage('IP 정보를 입력해주세요');
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
port:= edtPort.Text;
|
||||||
|
if port = '' then
|
||||||
|
begin
|
||||||
|
ShowMessage('포트 정보를 입력해주세요');
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var serverInfo: string;
|
||||||
|
serverInfo := 'https://' + edtIPAddress.Text + ':' + edtPort.Text;
|
||||||
|
|
||||||
|
OutputDebugString(PChar(Format('[MGKIM] btnIpCheckClick ok .. (%s)(%d)(%s)',[ip, port.ToInteger(), serverInfo])));
|
||||||
|
|
||||||
|
// 마우스 커서를 모래시계(로딩) 상태로 변경 (사용자 UX 향상)
|
||||||
|
Screen.Cursor := crHourGlass;
|
||||||
|
try
|
||||||
|
if CheckServerConnection(serverInfo) then
|
||||||
|
begin
|
||||||
|
ShowMessage('서버에 성공적으로 접속되었습니다.');
|
||||||
|
Result:= True;
|
||||||
|
// TODO: 접속 성공 시 다음 로직 수행
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
ShowMessage('서버 접속에 실패했습니다.' + sLineBreak +
|
||||||
|
'IP 주소와 포트 번호, 서버 상태를 확인해 주세요.');
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
// 검사가 끝나면 마우스 커서 원상복구
|
||||||
|
//Screen.Cursor := crDefault;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function TDlgeCrmHeInstMain.CheckEmpNo: Boolean;
|
function TDlgeCrmHeInstMain.CheckEmpNo: Boolean;
|
||||||
var
|
var
|
||||||
SvrList: TStringList;
|
SvrList: TStringList;
|
||||||
|
|
@ -1413,16 +1566,70 @@ begin
|
||||||
GetDestServerList(SvrList);
|
GetDestServerList(SvrList);
|
||||||
ASSERT(SvrList.Count > 0);
|
ASSERT(SvrList.Count > 0);
|
||||||
|
|
||||||
for i := 0 to SvrList.Count - 1 do
|
//https://localhost:8443/agentLogRequests.do
|
||||||
begin
|
var serverInfo: string;
|
||||||
if VerifyEmpNo(SvrList[i], HTTP_, edEmpNo.Text) then
|
serverInfo := 'https://' + edtIPAddress.Text + ':' + edtPort.Text + '/agentLogRequests.do';
|
||||||
begin
|
|
||||||
sEmpNoVerifyOK_ := edEmpNo.Text;
|
|
||||||
|
|
||||||
Result := true;
|
if VerifyEmpNo(serverInfo, HTTP_, edEmpNo.Text) then
|
||||||
exit;
|
begin
|
||||||
end;
|
sEmpNoVerifyOK_ := edEmpNo.Text;
|
||||||
|
|
||||||
|
Result := true;
|
||||||
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// for i := 0 to SvrList.Count - 1 do
|
||||||
|
// begin
|
||||||
|
// if VerifyEmpNo(SvrList[i], HTTP_, edEmpNo.Text) then
|
||||||
|
// begin
|
||||||
|
// sEmpNoVerifyOK_ := edEmpNo.Text;
|
||||||
|
//
|
||||||
|
// Result := true;
|
||||||
|
// exit;
|
||||||
|
// end;
|
||||||
|
// end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDlgeCrmHeInstMain.clickIpCheck(Sender: TObject);
|
||||||
|
var
|
||||||
|
state : Boolean;
|
||||||
|
|
||||||
|
begin
|
||||||
|
if not chkIPCheck.Checked then
|
||||||
|
begin
|
||||||
|
|
||||||
|
edtIPAddress.ReadOnly := False;
|
||||||
|
edtPort.ReadOnly := False;
|
||||||
|
edtIPAddress.Color := clWindow;
|
||||||
|
edtPort.Color := clWindow;
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
try
|
||||||
|
state := btnIpCheckClick;
|
||||||
|
if state then
|
||||||
|
begin
|
||||||
|
edtIPAddress.ReadOnly := True;
|
||||||
|
edtPort.ReadOnly := True;
|
||||||
|
|
||||||
|
edtIPAddress.Color := clBtnFace;
|
||||||
|
edtPort.Color := clBtnFace;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
chkIPCheck.Checked := False;
|
||||||
|
|
||||||
|
edtIPAddress.ReadOnly := False;
|
||||||
|
edtPort.ReadOnly := False;
|
||||||
|
edtIPAddress.Color := clWindow;
|
||||||
|
edtPort.Color := clWindow;
|
||||||
|
end;
|
||||||
|
|
||||||
|
finally
|
||||||
|
Screen.Cursor := crDefault;
|
||||||
|
chkIPCheck.Checked := state;
|
||||||
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TDlgeCrmHeInstMain.SetImgBtn(aImgList: TPngImageList; imgBtn: TImage; nImgIdx: Integer);
|
procedure TDlgeCrmHeInstMain.SetImgBtn(aImgList: TPngImageList; imgBtn: TImage; nImgIdx: Integer);
|
||||||
|
|
@ -1779,6 +1986,28 @@ begin
|
||||||
begin
|
begin
|
||||||
edEmpNo.Text := Trim(edEmpNo.Text);
|
edEmpNo.Text := Trim(edEmpNo.Text);
|
||||||
edVpnId.Text := Trim(edVpnId.Text);
|
edVpnId.Text := Trim(edVpnId.Text);
|
||||||
|
|
||||||
|
if not chkIPCheck.Checked then
|
||||||
|
begin
|
||||||
|
MessageBox(Handle, '서버 접속 확인을 해주세요.', PChar(Caption), MB_ICONWARNING or MB_OK);
|
||||||
|
end;
|
||||||
|
|
||||||
|
if edtIPAddress.Text = '' then
|
||||||
|
begin
|
||||||
|
MessageBox(Handle, 'IP 정보를 입력해주세요', PChar(Caption), MB_ICONWARNING or MB_OK);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
if edtPort.Text = '' then
|
||||||
|
begin
|
||||||
|
MessageBox(Handle, '포트 정보를 입력해주세요', PChar(Caption), MB_ICONWARNING or MB_OK);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
|
ip_:= edtIPAddress.Text;
|
||||||
|
port_:= edtPort.Text;
|
||||||
|
serverInfo_ := 'https://' + ip_ + ':' + port_ + '/agentLogRequests.do';
|
||||||
|
|
||||||
if edEmpNo.Text = '' then
|
if edEmpNo.Text = '' then
|
||||||
begin
|
begin
|
||||||
if IsCJ_Affiliates then
|
if IsCJ_Affiliates then
|
||||||
|
|
@ -1796,6 +2025,8 @@ begin
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// if edVpnId.Text = '' then
|
// if edVpnId.Text = '' then
|
||||||
// begin
|
// begin
|
||||||
// MessageBox(Handle, PChar('"VPN 계정"을 입력해 주십시오.'), PChar(Caption), MB_ICONWARNING or MB_OK);
|
// MessageBox(Handle, PChar('"VPN 계정"을 입력해 주십시오.'), PChar(Caption), MB_ICONWARNING or MB_OK);
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -3,7 +3,7 @@
|
||||||
interface
|
interface
|
||||||
|
|
||||||
const
|
const
|
||||||
BUILD_DT = '2026-03-18 20:12:14';
|
BUILD_DT = '2026-03-24 16:04:51';
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -301,7 +301,7 @@ type
|
||||||
DispLogos_,
|
DispLogos_,
|
||||||
DispLogosST_: TDlgDispLogoList;
|
DispLogosST_: TDlgDispLogoList;
|
||||||
KeyMonDll_: TKeyMonDLL;
|
KeyMonDll_: TKeyMonDLL;
|
||||||
RecoverSvc_: TRecoverService;
|
|
||||||
|
|
||||||
sSysDir_: String;
|
sSysDir_: String;
|
||||||
{$IFDEF OLD_CB_MON}
|
{$IFDEF OLD_CB_MON}
|
||||||
|
|
@ -1023,15 +1023,6 @@ begin
|
||||||
|
|
||||||
InitCtrls;
|
InitCtrls;
|
||||||
|
|
||||||
//mgkim 테스트를 위해 주석
|
|
||||||
// if bExeRecover then
|
|
||||||
// begin
|
|
||||||
// RecoverSvc_ := TRecoverService.Create;
|
|
||||||
// RecoverSvc_.StartService;
|
|
||||||
// TTgTrace.T('[MGKIM] RecoverSvc.. start', 2);
|
|
||||||
// end;
|
|
||||||
|
|
||||||
|
|
||||||
if IsLogSendToWindbg then
|
if IsLogSendToWindbg then
|
||||||
begin
|
begin
|
||||||
ProcW_ := TThdProcessWatch.Create;
|
ProcW_ := TThdProcessWatch.Create;
|
||||||
|
|
@ -1065,7 +1056,6 @@ begin
|
||||||
|
|
||||||
tMtx.Enabled := false;
|
tMtx.Enabled := false;
|
||||||
FreeAndNil(FileAbLogs_);
|
FreeAndNil(FileAbLogs_);
|
||||||
FreeAndNil(RecoverSvc_);
|
|
||||||
FreeAndNil(ThdWebOC_);
|
FreeAndNil(ThdWebOC_);
|
||||||
FreeAndNil(KeyMonDll_);
|
FreeAndNil(KeyMonDll_);
|
||||||
FreeAndNil(CbAbleAppList_);
|
FreeAndNil(CbAbleAppList_);
|
||||||
|
|
@ -2574,8 +2564,11 @@ begin
|
||||||
OutputDebugString(PChar('[MGKIM] tMtxTimer ..in '));
|
OutputDebugString(PChar('[MGKIM] tMtxTimer ..in '));
|
||||||
tMtx.Enabled := false;
|
tMtx.Enabled := false;
|
||||||
|
|
||||||
if RecoverSvc_ <> nil then
|
if gMgSvc <> nil then
|
||||||
RecoverSvc_.StopService;
|
begin
|
||||||
|
if gMgSvc.RecoverSvc_ <> nil then
|
||||||
|
gMgSvc.RecoverSvc_.StopService;
|
||||||
|
end;
|
||||||
|
|
||||||
OutputDebugString(PChar('[MGKIM] tMtxTimer ..RecoverSvc_.StopService in '));
|
OutputDebugString(PChar('[MGKIM] tMtxTimer ..RecoverSvc_.StopService in '));
|
||||||
|
|
||||||
|
|
@ -5563,14 +5556,15 @@ end;
|
||||||
|
|
||||||
procedure TDlgeCrmHeMain.miIntegrityAultLogClick(Sender: TObject);
|
procedure TDlgeCrmHeMain.miIntegrityAultLogClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if RecoverSvc_ <> nil then
|
|
||||||
|
if gMgSvc.RecoverSvc_ <> nil then
|
||||||
begin
|
begin
|
||||||
RecoverSvc_.PerformInitialAudit;
|
gMgSvc.RecoverSvc_.PerformInitialAudit;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
RecoverSvc_ := TRecoverService.Create;
|
gMgSvc.RecoverSvc_ := TRecoverService.Create;
|
||||||
FreeAndNil(RecoverSvc_);
|
FreeAndNil(gMgSvc.RecoverSvc_);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -810,10 +810,11 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
case PO.CdromBlockKind of
|
case PO.CdromBlockKind of
|
||||||
dbkNone : AddEnt(pNode, RS_CdCut, 'OFF');
|
ubkNone : AddEnt(pNode, RS_CdCut, 'OFF');
|
||||||
dbkBlock : AddEnt(pNode, RS_CdCut, 'ON');
|
ubkBlock : AddEnt(pNode, RS_CdCut, 'ON');
|
||||||
_dbkPopup : AddEnt(pNode, RS_CdCut, RS_PopupOnly);
|
ubkReadOnly : AddEnt(pNode, RS_CdCut, RS_ReadOnly);
|
||||||
dbkLog : AddEnt(pNode, RS_CdCut, RS_Log);
|
_ubkPopup : AddEnt(pNode, RS_CdCut, RS_PopupOnly);
|
||||||
|
ubkLog : AddEnt(pNode, RS_CdCut, RS_Log);
|
||||||
end;
|
end;
|
||||||
AddEnt(pNode, RS_MonHardDrive, BooleanToStr(PO.DetectFixedDisk, 'ON', 'OFF'));
|
AddEnt(pNode, RS_MonHardDrive, BooleanToStr(PO.DetectFixedDisk, 'ON', 'OFF'));
|
||||||
|
|
||||||
|
|
@ -936,6 +937,7 @@ begin
|
||||||
abkBlock : AddEnt(pNode, RS_CdromToothFIleNew, '차단');
|
abkBlock : AddEnt(pNode, RS_CdromToothFIleNew, '차단');
|
||||||
abkLog : AddEnt(pNode, RS_CdromToothFIleNew, '로그 수집');
|
abkLog : AddEnt(pNode, RS_CdromToothFIleNew, '로그 수집');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
case PO.IntMtpBlockNewFile.mode of
|
case PO.IntMtpBlockNewFile.mode of
|
||||||
abkNone : AddEnt(pNode, RS_MtpToothFIleNew, 'OFF');
|
abkNone : AddEnt(pNode, RS_MtpToothFIleNew, 'OFF');
|
||||||
abkBlock : AddEnt(pNode, RS_MtpToothFIleNew, '차단');
|
abkBlock : AddEnt(pNode, RS_MtpToothFIleNew, '차단');
|
||||||
|
|
|
||||||
|
|
@ -444,8 +444,8 @@ type
|
||||||
OutPo: TOutlookPolicy;
|
OutPo: TOutlookPolicy;
|
||||||
|
|
||||||
MtpBlockKind: TUsbBlockKind;
|
MtpBlockKind: TUsbBlockKind;
|
||||||
BlueBlockKind,
|
BlueBlockKind : TDevBlockKind;
|
||||||
CdromBlockKind: TDevBlockKind;
|
CdromBlockKind: TUsbBlockKind;
|
||||||
WebbMonKind: TWebbMonKind;
|
WebbMonKind: TWebbMonKind;
|
||||||
USBPopup,
|
USBPopup,
|
||||||
BTPopup,
|
BTPopup,
|
||||||
|
|
@ -1586,7 +1586,7 @@ begin
|
||||||
UsbBlockKind := ubkNone;
|
UsbBlockKind := ubkNone;
|
||||||
MtpBlockKind := ubkNone;
|
MtpBlockKind := ubkNone;
|
||||||
BlueBlockKind := dbkNone;
|
BlueBlockKind := dbkNone;
|
||||||
CdromBlockKind := dbkNone;
|
CdromBlockKind := ubkNone;
|
||||||
AppInstKind := aikNone;
|
AppInstKind := aikNone;
|
||||||
USBPopup := false;
|
USBPopup := false;
|
||||||
BTPopup := false;
|
BTPopup := false;
|
||||||
|
|
@ -2741,11 +2741,14 @@ begin
|
||||||
CdAllowPopup := BooleanStr(aO.S[MgPo_.GetPoKey('int_cdAllowNotice', CP)]);
|
CdAllowPopup := BooleanStr(aO.S[MgPo_.GetPoKey('int_cdAllowNotice', CP)]);
|
||||||
sTemp := aO.S[MgPo_.GetPoKey('INT_CDBLOCKENABLE', CP)].ToLower;
|
sTemp := aO.S[MgPo_.GetPoKey('INT_CDBLOCKENABLE', CP)].ToLower;
|
||||||
if sTemp = 'true' then
|
if sTemp = 'true' then
|
||||||
CdromBlockKind := dbkBlock
|
CdromBlockKind := ubkBlock
|
||||||
|
else if sTemp = 'readonly' then
|
||||||
|
CdromBlockKind := ubkReadOnly
|
||||||
else if (sTemp = 'logonly') or (sTemp = 'log') then
|
else if (sTemp = 'logonly') or (sTemp = 'log') then
|
||||||
CdromBlockKind := dbkLog
|
CdromBlockKind := ubkLog
|
||||||
else
|
else
|
||||||
CdromBlockKind := dbkNone;
|
CdromBlockKind := ubkNone;
|
||||||
|
|
||||||
CdromExcept := StrListToCommaStr(aO.S[MgPo_.GetPoKey('INT_CDBLOCKEXCEPT', CP)], ';');
|
CdromExcept := StrListToCommaStr(aO.S[MgPo_.GetPoKey('INT_CDBLOCKEXCEPT', CP)], ';');
|
||||||
AbleCdExceptReq := BooleanStr(aO.S[MgPo_.GetPoKey('INT_CDAPPROVE', CP)]); // CD/DVD 차단, 차단 시 예외 신청 허용
|
AbleCdExceptReq := BooleanStr(aO.S[MgPo_.GetPoKey('INT_CDAPPROVE', CP)]); // CD/DVD 차단, 차단 시 예외 신청 허용
|
||||||
|
|
||||||
|
|
@ -3723,13 +3726,13 @@ begin
|
||||||
BlueBlockKind := dbkNone;
|
BlueBlockKind := dbkNone;
|
||||||
sTemp := Trim(S['KEY_CDROMBLOCK']).ToLower;
|
sTemp := Trim(S['KEY_CDROMBLOCK']).ToLower;
|
||||||
if sTemp = 'true' then
|
if sTemp = 'true' then
|
||||||
CdromBlockKind := dbkBlock
|
CdromBlockKind := ubkBlock
|
||||||
else if sTemp = 'popup' then
|
else if sTemp = 'popup' then
|
||||||
CdromBlockKind := _dbkPopup
|
CdromBlockKind := _ubkPopup
|
||||||
else if sTemp = 'logonly' then
|
else if sTemp = 'logonly' then
|
||||||
CdromBlockKind := dbkLog
|
CdromBlockKind := ubkLog
|
||||||
else
|
else
|
||||||
CdromBlockKind := dbkNone;
|
CdromBlockKind := ubkNone;
|
||||||
|
|
||||||
AutoRunBlock := Trim(S['KEY_AUTORUNBLOCK']).ToLower = 'true';
|
AutoRunBlock := Trim(S['KEY_AUTORUNBLOCK']).ToLower = 'true';
|
||||||
HostEnable := Trim(S['mwOKey_OPTIONC']).ToLower = 'true';
|
HostEnable := Trim(S['mwOKey_OPTIONC']).ToLower = 'true';
|
||||||
|
|
@ -5009,7 +5012,7 @@ begin
|
||||||
OutPo := TTgJson.GetDataAsType<TOutlookPolicy>(O['OutPo']);
|
OutPo := TTgJson.GetDataAsType<TOutlookPolicy>(O['OutPo']);
|
||||||
MtpBlockKind := TUsbBlockKind(I['MtpBlockKind']);
|
MtpBlockKind := TUsbBlockKind(I['MtpBlockKind']);
|
||||||
BlueBlockKind := TDevBlockKind(I['BlueBlockKind']);
|
BlueBlockKind := TDevBlockKind(I['BlueBlockKind']);
|
||||||
CdromBlockKind := TDevBlockKind(I['CdromBlockKind']);
|
CdromBlockKind := TUsbBlockKind(I['CdromBlockKind']);
|
||||||
USBPopup := B['USBPopup'];
|
USBPopup := B['USBPopup'];
|
||||||
BTPopup := B['BTPopup'];
|
BTPopup := B['BTPopup'];
|
||||||
CDPopup := B['CDPopup'];
|
CDPopup := B['CDPopup'];
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ uses
|
||||||
ThdUsbMon, ManagerHook, ThdSendFiles, ThdWinUpdateScan, ThdRouteMon,
|
ThdUsbMon, ManagerHook, ThdSendFiles, ThdWinUpdateScan, ThdRouteMon,
|
||||||
Tocsg.Process, HandleSecurity, AppCtrlDefine, Tocsg.WndUtil,
|
Tocsg.Process, HandleSecurity, AppCtrlDefine, Tocsg.WndUtil,
|
||||||
ManagerCampaign, ManagerRule, superobject, Define, ThdReaction,
|
ManagerCampaign, ManagerRule, superobject, Define, ThdReaction,
|
||||||
Vcl.Graphics, DSchPiNoti, Tocsg.Win32, Tocsg.Fasoo, UserAuthentification,
|
Vcl.Graphics, DSchPiNoti, Tocsg.Win32, Tocsg.Fasoo, UserAuthentification, RecoverService,
|
||||||
ThdPrintWork, xPrintLogService, ManagerPrint, ThdScreenRecord, ProcessRecentDoc, Bs1FltCtrl, DeviceGuard.Logic;
|
ThdPrintWork, xPrintLogService, ManagerPrint, ThdScreenRecord, ProcessRecentDoc, Bs1FltCtrl, DeviceGuard.Logic;
|
||||||
|
|
||||||
{$I Define.inc}
|
{$I Define.inc}
|
||||||
|
|
@ -440,6 +440,8 @@ type
|
||||||
|
|
||||||
bIsManualSecurityMode_: Boolean; // 로그인 성공시 보안모드 진입 플
|
bIsManualSecurityMode_: Boolean; // 로그인 성공시 보안모드 진입 플
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
procedure Lock;
|
procedure Lock;
|
||||||
procedure Unlock;
|
procedure Unlock;
|
||||||
procedure DevLock;
|
procedure DevLock;
|
||||||
|
|
@ -507,7 +509,9 @@ type
|
||||||
procedure SetModeKind(aKind: TBS1ModeKind);
|
procedure SetModeKind(aKind: TBS1ModeKind);
|
||||||
procedure SetModeName(sModeName: String);
|
procedure SetModeName(sModeName: String);
|
||||||
function GetModeName: String;
|
function GetModeName: String;
|
||||||
|
procedure SendStartAgentAuditLog;
|
||||||
public
|
public
|
||||||
|
RecoverSvc_: TRecoverService;
|
||||||
AgentInfo: TCheckAgentInfo;
|
AgentInfo: TCheckAgentInfo;
|
||||||
|
|
||||||
UpdateTick: DWORD;
|
UpdateTick: DWORD;
|
||||||
|
|
@ -591,7 +595,7 @@ type
|
||||||
function SendHwInfo: Boolean;
|
function SendHwInfo: Boolean;
|
||||||
procedure SendScreenRecord(sReason, sMp4Path: String; nMilSec: Integer);
|
procedure SendScreenRecord(sReason, sMp4Path: String; nMilSec: Integer);
|
||||||
//mgkim
|
//mgkim
|
||||||
procedure SendAuditLog(const JsonReport: string);
|
procedure SendIntegrityAuditLog(const JsonReport: string);
|
||||||
|
|
||||||
function SendApproval(nType: Integer; pData: Pointer; bUpFileCnt: Integer = 0): String;
|
function SendApproval(nType: Integer; pData: Pointer; bUpFileCnt: Integer = 0): String;
|
||||||
procedure SendAgreeInfo;
|
procedure SendAgreeInfo;
|
||||||
|
|
@ -817,7 +821,7 @@ uses
|
||||||
var
|
var
|
||||||
// _bmpWaterP: TBitmap = nil;
|
// _bmpWaterP: TBitmap = nil;
|
||||||
_bmpST: TBitmap = nil;
|
_bmpST: TBitmap = nil;
|
||||||
|
backupCdromBlockKind: TUsbBlockKind;
|
||||||
|
|
||||||
//const
|
//const
|
||||||
// JSON_CONNCHECK = '{"Request : ConnectionCheck"}';
|
// JSON_CONNCHECK = '{"Request : ConnectionCheck"}';
|
||||||
|
|
@ -1708,8 +1712,10 @@ begin
|
||||||
DcFltCtrlEnt_ := TDictionary<String,String>.Create;
|
DcFltCtrlEnt_ := TDictionary<String,String>.Create;
|
||||||
|
|
||||||
// IgnoreDriverLoad
|
// IgnoreDriverLoad
|
||||||
_Trace('에이전트 시작 시간: %s',[agentStatTime_], 1);
|
|
||||||
agentStatTime_:= FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"+09:00"', Now);
|
agentStatTime_:= FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"+09:00"', Now);
|
||||||
|
_Trace('에이전트 시작 시간: %s',[agentStatTime_], 1);
|
||||||
|
SendStartAgentAuditLog;
|
||||||
|
|
||||||
if UseFltCtrl then
|
if UseFltCtrl then
|
||||||
begin
|
begin
|
||||||
var state : DWORD;
|
var state : DWORD;
|
||||||
|
|
@ -1745,6 +1751,8 @@ begin
|
||||||
FltCtrl_.SetProcessPath(PG_PID_ALLOW, Pchar('tstxtract.exe'));
|
FltCtrl_.SetProcessPath(PG_PID_ALLOW, Pchar('tstxtract.exe'));
|
||||||
FltCtrl_.SetProcessPath(PG_PID_ALLOW, Pchar('FilterTestDotNet.exe'));
|
FltCtrl_.SetProcessPath(PG_PID_ALLOW, Pchar('FilterTestDotNet.exe'));
|
||||||
|
|
||||||
|
FltCtrl_.SetFileName(PG_PID_ALLOW, Pchar('eCrmHomeEdition.exe'));
|
||||||
|
FltCtrl_.SetFileName(PG_PID_ALLOW, Pchar('eCrmHomeEdition.ini'));
|
||||||
FltCtrl_.SetFileName(PG_FILE_ALLOW, Pchar('Bs1ovi.dll'));
|
FltCtrl_.SetFileName(PG_FILE_ALLOW, Pchar('Bs1ovi.dll'));
|
||||||
FltCtrl_.SetFileName(PG_FILE_ALLOW, Pchar('Bs1ovm.dll'));
|
FltCtrl_.SetFileName(PG_FILE_ALLOW, Pchar('Bs1ovm.dll'));
|
||||||
FltCtrl_.SetFileName(PG_FILE_ALLOW, Pchar('eCrmHeHelper.dll'));
|
FltCtrl_.SetFileName(PG_FILE_ALLOW, Pchar('eCrmHeHelper.dll'));
|
||||||
|
|
@ -1910,6 +1918,23 @@ begin
|
||||||
if NotUseUAC then
|
if NotUseUAC then
|
||||||
InstallOutlookPlugIn_forHD(hRcvHwnd_);
|
InstallOutlookPlugIn_forHD(hRcvHwnd_);
|
||||||
|
|
||||||
|
var ini: TIniFile;
|
||||||
|
var bExeRecover: Boolean;
|
||||||
|
var sPath := GetProgramFilesDir + DIR_TG + INI_FORCEHE;
|
||||||
|
if FileExists(sPath) then
|
||||||
|
begin
|
||||||
|
Guard(ini, TIniFile.Create(sPath));
|
||||||
|
bExeRecover := ini.ReadBool('Force', 'RecoverFile', true);
|
||||||
|
|
||||||
|
if bExeRecover then
|
||||||
|
begin
|
||||||
|
RecoverSvc_ := TRecoverService.Create;
|
||||||
|
RecoverSvc_.StartService;
|
||||||
|
TTgTrace.T('[MGKIM] RecoverSvc.. start', 2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
@ -2002,6 +2027,7 @@ begin
|
||||||
FreeAndNil(MgCampn_);
|
FreeAndNil(MgCampn_);
|
||||||
FreeAndNil(CSDev_);
|
FreeAndNil(CSDev_);
|
||||||
FreeAndNil(CS_);
|
FreeAndNil(CS_);
|
||||||
|
FreeAndNil(RecoverSvc_);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TManagerService.Lock;
|
procedure TManagerService.Lock;
|
||||||
|
|
@ -2380,7 +2406,8 @@ var
|
||||||
LogInfo: TLogInfo;
|
LogInfo: TLogInfo;
|
||||||
begin
|
begin
|
||||||
try
|
try
|
||||||
if ModePolicy.CdromBlockKind = dbkBlock then
|
|
||||||
|
if ModePolicy.CdromBlockKind = ubkBlock then
|
||||||
begin
|
begin
|
||||||
Guard(IgrList, TStringList.Create);
|
Guard(IgrList, TStringList.Create);
|
||||||
IgrList.CaseSensitive := false;
|
IgrList.CaseSensitive := false;
|
||||||
|
|
@ -2392,8 +2419,6 @@ begin
|
||||||
end;
|
end;
|
||||||
SplitString(sCdException_, ';', IgrList);
|
SplitString(sCdException_, ';', IgrList);
|
||||||
|
|
||||||
FltCtrl_.SetPolicy(DWORD(BDC_CDROM), DWORD(dsDisable), 0);
|
|
||||||
|
|
||||||
dwLogicalDrv := GetLogicalDrives;
|
dwLogicalDrv := GetLogicalDrives;
|
||||||
for i := 0 to 31 do
|
for i := 0 to 31 do
|
||||||
begin
|
begin
|
||||||
|
|
@ -2537,11 +2562,11 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
FltCtrl_.SetPolicy(DWORD(BDC_CDROM), DWORD(dsEnable), 0);
|
|
||||||
end;
|
end;
|
||||||
|
// else
|
||||||
|
// begin
|
||||||
|
// FltCtrl_.SetPolicy(DWORD(BDC_CDROM), DWORD(dsEnable), 0);
|
||||||
|
// end;
|
||||||
except
|
except
|
||||||
on E: Exception do
|
on E: Exception do
|
||||||
ETgException.TraceException(Self, E, 'Fail .. DoEjectCDROM()');
|
ETgException.TraceException(Self, E, 'Fail .. DoEjectCDROM()');
|
||||||
|
|
@ -5430,11 +5455,11 @@ begin
|
||||||
|
|
||||||
_Trace('[MGKIM] Usb Disable!!!! .. (%s) <> (%s)',[sExceptUsbDevKn_, PO.IgrUsbSerialsKn]);
|
_Trace('[MGKIM] Usb Disable!!!! .. (%s) <> (%s)',[sExceptUsbDevKn_, PO.IgrUsbSerialsKn]);
|
||||||
|
|
||||||
// FltCtrl_.SetPolicy(DWORD(BDC_USB_DISK), DWORD(dsDisable), 1);
|
FltCtrl_.SetPolicy(DWORD(BDC_USB_DISK), DWORD(dsDisable), 1);
|
||||||
// FltCtrl_.SetPolicy(DWORD(BDC_EXTERNALHDD), DWORD(dsDisable), 1);
|
FltCtrl_.SetPolicy(DWORD(BDC_EXTERNALHDD), DWORD(dsDisable), 1);
|
||||||
FltCtrl_.SetPolicy(DWORD(BDC_USB), DWORD(dsDisable), DWORD(1));
|
// FltCtrl_.SetPolicy(DWORD(BDC_USB), DWORD(dsDisable), DWORD(1));
|
||||||
//UsbRestart;
|
//UsbRestart;
|
||||||
DeviceGuard_.UsbReStart;
|
// DeviceGuard_.UsbReStart;
|
||||||
// DeviceGuard_.UsbPortApplyPolicy(dsDisable);
|
// DeviceGuard_.UsbPortApplyPolicy(dsDisable);
|
||||||
FltCtrlPolicy_ := DWORD(dsDisable);
|
FltCtrlPolicy_ := DWORD(dsDisable);
|
||||||
|
|
||||||
|
|
@ -5473,10 +5498,10 @@ begin
|
||||||
begin
|
begin
|
||||||
sExceptUsbDevKn_ := '';
|
sExceptUsbDevKn_ := '';
|
||||||
FltCtrl_.ClearUsbException;
|
FltCtrl_.ClearUsbException;
|
||||||
// FltCtrl_.SetPolicy(DWORD(BDC_USB_DISK), DWORD(dsEnable), 0);
|
FltCtrl_.SetPolicy(DWORD(BDC_USB_DISK), DWORD(dsEnable), 0);
|
||||||
// FltCtrl_.SetPolicy(DWORD(BDC_EXTERNALHDD), DWORD(dsEnable), 0);
|
FltCtrl_.SetPolicy(DWORD(BDC_EXTERNALHDD), DWORD(dsEnable), 0);
|
||||||
_Trace('Usb Enable!!!!');
|
// _Trace('Usb Enable!!!!');
|
||||||
FltCtrl_.SetPolicy(DWORD(BDC_USB), DWORD(dsEnable), DWORD(1));
|
// FltCtrl_.SetPolicy(DWORD(BDC_USB), DWORD(dsEnable), DWORD(1));
|
||||||
// DeviceGuard_.UsbPortApplyPolicy(dsEnable);
|
// DeviceGuard_.UsbPortApplyPolicy(dsEnable);
|
||||||
FltCtrlPolicy_ := DWORD(dsEnable);
|
FltCtrlPolicy_ := DWORD(dsEnable);
|
||||||
end;
|
end;
|
||||||
|
|
@ -6404,6 +6429,9 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
procedure TManagerService.UpdatePolicyActive(aPrefModel: TPrefModel);
|
procedure TManagerService.UpdatePolicyActive(aPrefModel: TPrefModel);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
|
@ -7110,8 +7138,24 @@ begin
|
||||||
// end;
|
// end;
|
||||||
|
|
||||||
// CD/DVD 차단
|
// CD/DVD 차단
|
||||||
if CdromBlockKind = dbkBlock then
|
|
||||||
|
// _Trace('[MGKIM] CdromBlockKind : %d', [DWORD(CdromBlockKind)]);
|
||||||
|
if CdromBlockKind = ubkBlock then
|
||||||
|
begin
|
||||||
DoEjectCDROM;
|
DoEjectCDROM;
|
||||||
|
FltCtrl_.SetPolicy(DWORD(BDC_CDROM), DWORD(dsDisable), 0);
|
||||||
|
end
|
||||||
|
else if (CdromBlockKind = ubkReadOnly) and (backupCdromBlockKind <> ubkReadOnly) then
|
||||||
|
begin
|
||||||
|
|
||||||
|
FltCtrl_.SetPolicy(DWORD(BDC_CDROM), DWORD(dsReadOnly), 0);
|
||||||
|
if GetModePolicy.CDPopup then
|
||||||
|
PopupMessage(TYPE_MSG_PREVENT_CDROM, 'ReadOnly');
|
||||||
|
|
||||||
|
backupCdromBlockKind := CdromBlockKind;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
FltCtrl_.SetPolicy(DWORD(BDC_CDROM), DWORD(dsEnable), 0);
|
||||||
|
|
||||||
// 라우팅테이블 변경 차단
|
// 라우팅테이블 변경 차단
|
||||||
if RouteEnable then
|
if RouteEnable then
|
||||||
|
|
@ -7557,7 +7601,7 @@ var
|
||||||
sMsg: String;
|
sMsg: String;
|
||||||
llSize: LONGLONG;
|
llSize: LONGLONG;
|
||||||
UsbBlockKind: TUsbBlockKind;
|
UsbBlockKind: TUsbBlockKind;
|
||||||
DevBlockKind: TDevBlockKind;
|
DevBlockKind: TUsbBlockKind;
|
||||||
bCdrom: Boolean;
|
bCdrom: Boolean;
|
||||||
DriveInfo: TDriveInfo;
|
DriveInfo: TDriveInfo;
|
||||||
Label
|
Label
|
||||||
|
|
@ -7674,8 +7718,8 @@ begin
|
||||||
LB_ProcCDROM :
|
LB_ProcCDROM :
|
||||||
DevBlockKind := ModePolicy.CdromBlockKind;
|
DevBlockKind := ModePolicy.CdromBlockKind;
|
||||||
case DevBlockKind of
|
case DevBlockKind of
|
||||||
_dbkPopup,
|
_ubkPopup,
|
||||||
dbkLog :
|
ubkLog :
|
||||||
begin
|
begin
|
||||||
var sDriveInfo: String := sDrive; // Format('%s (%s)', [sDrive, ByteSizeToStr(llSize)]);
|
var sDriveInfo: String := sDrive; // Format('%s (%s)', [sDrive, ByteSizeToStr(llSize)]);
|
||||||
var sType: String := GetDriveTypeToStr(nType);
|
var sType: String := GetDriveTypeToStr(nType);
|
||||||
|
|
@ -7685,7 +7729,7 @@ begin
|
||||||
if ModePolicy.CdAllowPopup then
|
if ModePolicy.CdAllowPopup then
|
||||||
PopupMessage(TYPE_MSG_MONITOR_CDROM, sDriveInfo);
|
PopupMessage(TYPE_MSG_MONITOR_CDROM, sDriveInfo);
|
||||||
end else begin
|
end else begin
|
||||||
if DevBlockKind = _dbkPopup then
|
if DevBlockKind = _ubkPopup then
|
||||||
PopupMessage(TYPE_MSG_MONITOR_CDROM, sDriveInfo);
|
PopupMessage(TYPE_MSG_MONITOR_CDROM, sDriveInfo);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
@ -10648,20 +10692,18 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TManagerService.SendAuditLog(const JsonReport: string);
|
procedure TManagerService.SendIntegrityAuditLog(const JsonReport: string);
|
||||||
var
|
var
|
||||||
KeyPath, ExpectedHash, ActualHash, Reason: string;
|
KeyPath, ExpectedHash, ActualHash, Reason: string;
|
||||||
Root, FileObj, SuccessArray, FailArray: ISuperObject;
|
Root, FileObj, SuccessArray, FailArray: ISuperObject;
|
||||||
JsonLog, sHostName, sEmpId: string;
|
JsonLog, sHostName, sEmpId: string;
|
||||||
IsSuccess: Boolean;
|
IsSuccess: Boolean;
|
||||||
begin
|
begin
|
||||||
_Trace('[MGKIM] SendAuditLog.. 서버 전송: %s', [JsonReport]);
|
|
||||||
try
|
try
|
||||||
|
|
||||||
Root := SO(JsonReport);
|
Root := SO(JsonReport);
|
||||||
if Root = nil then
|
if Root = nil then
|
||||||
begin
|
begin
|
||||||
_Trace('[MGKIM] 파싱 오류: 전달받은 JsonReport가 올바른 포맷이 아닙니다.');
|
|
||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
@ -10681,10 +10723,47 @@ begin
|
||||||
ThdEvent_.Push(Root.AsString);
|
ThdEvent_.Push(Root.AsString);
|
||||||
except
|
except
|
||||||
on E: Exception do
|
on E: Exception do
|
||||||
ETgException.TraceException(Self, E, 'Fail .. SendAuditLog()');
|
ETgException.TraceException(Self, E, 'Fail .. SendIntegrityAuditLog()');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TManagerService.SendStartAgentAuditLog;
|
||||||
|
var
|
||||||
|
sHostName, sEmpId: string;
|
||||||
|
O: ISuperObject;
|
||||||
|
begin
|
||||||
|
|
||||||
|
try
|
||||||
|
|
||||||
|
O := SO;
|
||||||
|
|
||||||
|
{
|
||||||
|
"startedAt": "2026-02-27T21:33:46Z",
|
||||||
|
"type": "startedAgent",
|
||||||
|
"empId": "test1234",
|
||||||
|
"hostname": "DESKTOP-R14E1EI\tocsg",
|
||||||
|
"loggedAt": "2026-02-27T21:35:46Z"
|
||||||
|
}
|
||||||
|
|
||||||
|
sEmpId := gMgSvc.AgentModel.EmpNo;
|
||||||
|
|
||||||
|
if IsUseHostNameOnly then
|
||||||
|
sHostName := gMgSvc.ComName
|
||||||
|
else
|
||||||
|
sHostName := gMgSvc.UserName;
|
||||||
|
|
||||||
|
O.S['type'] := 'startedAgent';
|
||||||
|
O.S['hostname'] := sHostName;
|
||||||
|
O.S['empId'] := sEmpId;
|
||||||
|
O.S['loggedAt'] := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"+09:00"', Now);
|
||||||
|
O.S['startedAt'] := agentStatTime_;
|
||||||
|
_Trace('[MGKIM] SendStartAgentAuditLog.. %s',[O.AsString], 1);
|
||||||
|
ThdEvent_.Push(O.AsString);
|
||||||
|
except
|
||||||
|
on E: Exception do
|
||||||
|
ETgException.TraceException(Self, E, 'Fail .. SendStartAgentAuditLog()');
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ const
|
||||||
CONF_FILES = 'eCrmHeHelper.dll|eCrmHeHelper.exe|eCrmHeHelper32.dll|eCrmInterCaller.exe|' +
|
CONF_FILES = 'eCrmHeHelper.dll|eCrmHeHelper.exe|eCrmHeHelper32.dll|eCrmInterCaller.exe|' +
|
||||||
'BSWmcr.exe|Bs1out.dll|Bs1out64.dll|Bs1shl.dll|Bs1uef.dat|Bs1tri.dat';
|
'BSWmcr.exe|Bs1out.dll|Bs1out64.dll|Bs1shl.dll|Bs1uef.dat|Bs1tri.dat';
|
||||||
HEBIN_FILES = 'eCrmHomeEdition.exe|ielib64.dll|KvCttSch.exe|KvCttSchw.exe|libeay32.dll|' +
|
HEBIN_FILES = 'eCrmHomeEdition.exe|ielib64.dll|KvCttSch.exe|KvCttSchw.exe|libeay32.dll|' +
|
||||||
'libkm64.dll|ptnsch.dat|ssleay32.dll|bs1flt_x64.sys|bs1fltctrl.dll|bsonex32.sys|bsonex64.sys';
|
'libkm64.dll|ptnsch.dat|ssleay32.dll|bs1flt_x64.sys|bs1fltctrl.dll|bsonex32.sys|bsonex64.sys|colib64.dll';
|
||||||
LANG_FILES = 'eCrmHomeEdition.409.dat|eCrmHomeEdition.412.dat|eCrmHomeEdition.411.dat|' +
|
LANG_FILES = 'eCrmHomeEdition.409.dat|eCrmHomeEdition.412.dat|eCrmHomeEdition.411.dat|' +
|
||||||
'eCrmHomeEdition.804.dat|eCrmHomeEdition.404.dat';
|
'eCrmHomeEdition.804.dat|eCrmHomeEdition.404.dat';
|
||||||
SLCORE_FILES = 'slcore.exe';
|
SLCORE_FILES = 'slcore.exe';
|
||||||
|
|
@ -355,7 +355,9 @@ begin
|
||||||
(sFNameLower = '7z.dll') or (sFNameLower = 'bs1flt_x64.sys') or
|
(sFNameLower = '7z.dll') or (sFNameLower = 'bs1flt_x64.sys') or
|
||||||
(sFNameLower = 'bs1fltctrl.dll') or (sFNameLower = 'bs1ugcp.dll') or
|
(sFNameLower = 'bs1fltctrl.dll') or (sFNameLower = 'bs1ugcp.dll') or
|
||||||
(sFNameLower = 'bsonex32.sys') or (sFNameLower = 'bsonex64.sys') or
|
(sFNameLower = 'bsonex32.sys') or (sFNameLower = 'bsonex64.sys') or
|
||||||
(sFNameLower = 'ecrmhomeedition') or
|
(sFNameLower = 'ecrmhomeedition.exe') or (sFNameLower = 'colib64.dll') or
|
||||||
|
(sFNameLower = 'pdfium.dll') or (sFNameLower = 'ptnsch.dat') or
|
||||||
|
(sFNameLower = 'si.dat') or
|
||||||
(sFNameLower = 'ielib64.dll') or (sFNameLower = 'ecrmheserviced.dll') then
|
(sFNameLower = 'ielib64.dll') or (sFNameLower = 'ecrmheserviced.dll') then
|
||||||
sResFile := 'rst.01'
|
sResFile := 'rst.01'
|
||||||
else if (sFNameLower = 'ecrmintercaller.exe') or (sFNameLower = 'ecrmhehelper.dll') or // root
|
else if (sFNameLower = 'ecrmintercaller.exe') or (sFNameLower = 'ecrmhehelper.dll') or // root
|
||||||
|
|
@ -363,8 +365,10 @@ begin
|
||||||
(sFNameLower = 'ecrmhehelper32f.dll') or (sFNameLower = 'ecrmhehelper.exe') or
|
(sFNameLower = 'ecrmhehelper32f.dll') or (sFNameLower = 'ecrmhehelper.exe') or
|
||||||
(sFNameLower = 'bswmcr.exe') or (sFNameLower = 'bs1out.dll') or
|
(sFNameLower = 'bswmcr.exe') or (sFNameLower = 'bs1out.dll') or
|
||||||
(sFNameLower = 'bs1tri.exe') or (sFNameLower = 'bs1shl.dll') or
|
(sFNameLower = 'bs1tri.exe') or (sFNameLower = 'bs1shl.dll') or
|
||||||
(sFNameLower = 'Bs1ovi.dll') or (sFNameLower = 'Bs1ovm.dll') or
|
(sFNameLower = 'bs1ovi.dll') or (sFNameLower = 'bs1ovm.dll') or
|
||||||
(sFNameLower = 'Bs1out.dll') or (sFNameLower = 'bs1out64.dll') then
|
(sFNameLower = 'bs1aip.dat') or (sFNameLower = 'bs1drm.dat') or
|
||||||
|
(sFNameLower = 'bs1uef.dat') or
|
||||||
|
(sFNameLower = 'bs1out.dll') or (sFNameLower = 'bs1out64.dll') then
|
||||||
sResFile := 'rst.03'
|
sResFile := 'rst.03'
|
||||||
else if (Pos('ecrmhomeedition.4', sFNameLower) > 0) or (sFNameLower = 'eCrmHomeEdition.804.dat') then // 언어팩 dat 파일들
|
else if (Pos('ecrmhomeedition.4', sFNameLower) > 0) or (sFNameLower = 'eCrmHomeEdition.804.dat') then // 언어팩 dat 파일들
|
||||||
sResFile := 'rst.04'
|
sResFile := 'rst.04'
|
||||||
|
|
@ -385,10 +389,8 @@ begin
|
||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
// 파일 복구 실행 (기존 CheckAndRecover + prfwork 로직)
|
|
||||||
try
|
try
|
||||||
// 원본 코드와 동일하게 prfwork.dat 에 파일 복사 시도
|
|
||||||
CopyFile(PChar(sResDir + sResFile), PChar(sResPath), False);
|
CopyFile(PChar(sResDir + sResFile), PChar(sResPath), False);
|
||||||
|
|
||||||
_Trace('[MGKIM] 파일 변경/삭제 복구 시도됨', 2);
|
_Trace('[MGKIM] 파일 변경/삭제 복구 시도됨', 2);
|
||||||
|
|
@ -498,10 +500,13 @@ begin
|
||||||
|
|
||||||
_Trace('[MGKIM] 생성된 JSON: %s', [JsonLog]);
|
_Trace('[MGKIM] 생성된 JSON: %s', [JsonLog]);
|
||||||
|
|
||||||
gMgSvc.SendAuditLog(JsonLog);
|
if( gMgSvc <> nil ) then
|
||||||
|
gMgSvc.SendIntegrityAuditLog(JsonLog)
|
||||||
|
else
|
||||||
|
_Trace('[MGKIM] PerformInitialAudit gMgSvc.. not create ok!!');
|
||||||
except
|
except
|
||||||
on E: Exception do
|
on E: Exception do
|
||||||
ETgException.TraceException(Self, E, 'Fail .. SendAuditLog()');
|
ETgException.TraceException(Self, E, 'Fail .. PerformInitialAudit()');
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
@ -512,6 +517,7 @@ procedure TRecoverService.CheckAndRecover(sResPath, sPath: String);
|
||||||
sDir,
|
sDir,
|
||||||
sFName: String;
|
sFName: String;
|
||||||
begin
|
begin
|
||||||
|
// exit;
|
||||||
try
|
try
|
||||||
sFName := ExtractFileName(sPath);
|
sFName := ExtractFileName(sPath);
|
||||||
Guard(zip, TAbUnzipper.Create(nil));
|
Guard(zip, TAbUnzipper.Create(nil));
|
||||||
|
|
@ -807,10 +813,10 @@ begin
|
||||||
sExt := GetFileExt(sFName);
|
sExt := GetFileExt(sFName);
|
||||||
|
|
||||||
case pInfo.dwAction of
|
case pInfo.dwAction of
|
||||||
1 : ; // Add
|
// 1 , // Add
|
||||||
2 : ;// Delete
|
2 ,// Delete
|
||||||
3 : ;
|
3 ,
|
||||||
4 : ;
|
4 ,
|
||||||
5 :
|
5 :
|
||||||
begin
|
begin
|
||||||
if (KvBinFiles_.IndexOf(sFName) <> -1) or
|
if (KvBinFiles_.IndexOf(sFName) <> -1) or
|
||||||
|
|
|
||||||
|
|
@ -504,7 +504,15 @@ begin
|
||||||
var sRequsetUrl : string;
|
var sRequsetUrl : string;
|
||||||
sRequsetUrl:= sSvrIport + Format('aapi/system-logs/agents/%s', [gMgSvc.AgentId]);
|
sRequsetUrl:= sSvrIport + Format('aapi/system-logs/agents/%s', [gMgSvc.AgentId]);
|
||||||
bResult := HttpPostJson(sRequsetUrl, sData) <> '';
|
bResult := HttpPostJson(sRequsetUrl, sData) <> '';
|
||||||
_Trace('[MGKIM] Post .. system-logs/agents : %s, req=1 - * .. %s, sData : %s', [sRequsetUrl, BooleanToStr(bResult, 'Success', 'Fail'), sData], 3);
|
_Trace('[MGKIM] Post .. integrity, system-logs/agents : %s, req=1 - * .. %s', [sRequsetUrl, BooleanToStr(bResult, 'Success', 'Fail')], 3);
|
||||||
|
bResult := True;
|
||||||
|
end
|
||||||
|
else if sData.Contains('startedAgent') then
|
||||||
|
begin
|
||||||
|
var sRequsetUrl : string;
|
||||||
|
sRequsetUrl:= sSvrIport + Format('aapi/system-logs/agents/%s', [gMgSvc.AgentId]);
|
||||||
|
bResult := HttpPostJson(sRequsetUrl, sData) <> '';
|
||||||
|
_Trace('[MGKIM] Post .. startedAgent, system-logs/agents : %s, req=1 - * .. %s', [sRequsetUrl, BooleanToStr(bResult, 'Success', 'Fail')], 3);
|
||||||
bResult := True;
|
bResult := True;
|
||||||
end
|
end
|
||||||
else if sData.Contains('@(!)_SF') then
|
else if sData.Contains('@(!)_SF') then
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue