Fix: Viewing registry causing master program crash

This commit is contained in:
yuanyuanxiang
2025-11-22 18:23:23 +08:00
parent a7d44439bf
commit e602a8a235
2 changed files with 27 additions and 26 deletions

View File

@@ -261,40 +261,41 @@ void CRegisterDlg::AddKey(char* szBuffer)
szTemp+=sizeof(BYTE);
char* szValueName=szTemp; //ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
szTemp+=msg.size;
BYTE* szValueDate=(BYTE*)szTemp; //ȡ<><C8A1>ֵ
BYTE* szValueData=(BYTE*)szTemp; //ȡ<><C8A1>ֵ
szTemp+=msg.valsize;
if(Type==MREG_SZ) {
int iItem=m_ControlList.InsertItem(0,szValueName,0);
m_ControlList.SetItemText(iItem,1,"REG_SZ");
m_ControlList.SetItemText(iItem,2,(char*)szValueDate);
m_ControlList.SetItemText(iItem,2,(char*)szValueData);
}
if(Type==MREG_DWORD) {
// <20><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD> REG_DWORD <20><><EFBFBD>͵Ĵ<CDB5><C4B4><EFBFBD>
char ValueDate[256] = {0};
INT_PTR d=(INT_PTR)szValueDate;
memcpy((void*)&d,szValueDate,sizeof(INT_PTR));
char ValueData[256] = {0};
INT_PTR d=(INT_PTR)szValueData;
memcpy((void*)&d,szValueData,sizeof(INT_PTR));
CString strValue;
strValue.Format("0x%x",d);
sprintf(ValueDate," (%d)",d);
sprintf(ValueData," (%d)",d);
strValue+=" ";
strValue+=ValueDate;
strValue+=ValueData;
int iItem=m_ControlList.InsertItem(0,szValueName,1);
m_ControlList.SetItemText(iItem,1,"REG_DWORD");
m_ControlList.SetItemText(iItem,2,strValue);
}
if(Type==MREG_BINARY) {
// <20><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD> REG_BINARY <20><><EFBFBD>͵Ĵ<CDB5><C4B4><EFBFBD>
char ValueDate[256] = {0};
sprintf(ValueDate,"%s",szValueDate);
char *ValueData = new char[msg.valsize+1];
sprintf(ValueData,"%s",szValueData);
int iItem=m_ControlList.InsertItem(0,szValueName,1);
m_ControlList.SetItemText(iItem,1,"REG_BINARY");
m_ControlList.SetItemText(iItem,2,ValueDate);
m_ControlList.SetItemText(iItem,2,ValueData);
SAFE_DELETE_AR(ValueData);
}
if(Type==MREG_EXPAND_SZ) {
int iItem=m_ControlList.InsertItem(0,szValueName,0);
m_ControlList.SetItemText(iItem,1,"REG_EXPAND_SZ");
m_ControlList.SetItemText(iItem,2,(char*)szValueDate);
m_ControlList.SetItemText(iItem,2,(char*)szValueData);
}
}
}