資源簡介
一款可以自已定制病毒特征庫的殺毒軟件,可以用此軟件變種為任意的病毒專殺工具。界面及病毒特征庫均可自行定制編輯,支持最大100個線程掃描文件,殺毒方式可自行設定,支持對每一種病毒特征碼設置一種殺毒方式。采用文件二進制比對的方式查殺電腦上的文件,可以對電腦文件中含有病毒特征碼的文件執行刪除文件、清除文件病毒碼字節、用空格替換文件病毒碼字節、用0x00替換文件病毒碼字節,用指定字符替換文件病毒碼字節等等殺毒方式。病毒特征碼可以資源共享。
目前版本的實質為:多線程文件內容比對查找及修改替換工具。程序未加入主動防御、惡意行為攔截等功能,程序特別適合作為病毒專殺工具,可以對程序作小的改動即可實現變種。
本程序規模不大,易讀懂,程序全為業余書寫,幾乎沒有經過什么測試,可能存在許多錯誤。
注意,必須在VC6下打開編繹才不出錯誤,在VC.NET下打開編繹會出錯誤。

代碼片段和文件信息
//?AutoRichEditCtrl.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“MyKillVirus.h“
#include?“AutoRichEditCtrl.h“
#include?
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//?CAutoRichEditCtrl
CAutoRichEditCtrl::CAutoRichEditCtrl()
{
m_pFile?=?NULL;
m_lFileSize?=?0L;
}
CAutoRichEditCtrl::~CAutoRichEditCtrl()
{
if?(m_pFile?!=?NULL)
{
// m_pFile->Close();
delete?m_pFile;
m_pFile?=?NULL;
}
}
BEGIN_MESSAGE_MAP(CAutoRichEditCtrl?CRichEditCtrl)
//{{AFX_MSG_MAP(CAutoRichEditCtrl)
//?NOTE?-?the?ClassWizard?will?add?and?remove?mapping?macros?here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?CAutoRichEditCtrl?message?handlers
CString?CAutoRichEditCtrl::GetRTF()
{
//?Return?the?RTF?string?of?the?text?in?the?control.
//?Stream?out?here.
EDITSTREAM?es;
es.dwError?=?0;
es.pfnCallback?=?CBStreamOut; //?Set?the?callback
CString?sRTF?=?““;
es.dwCookie?=?(DWORD)?&sRTF; //?so?sRTF?receives?the?string
StreamOut(SF_RTF?es); //?Call?CRichEditCtrl::StreamOut?to?get?the?string.
///
return?sRTF;
}
void?CAutoRichEditCtrl::SetRTF(CString?sRTF)
{
//?Put?the?RTF?string?sRTF?into?the?rich?edit?control.
//?Read?the?text?in
EDITSTREAM?es;
es.dwError?=?0;
es.pfnCallback?=?CBStreamIn;
es.dwCookie?=?(DWORD)?&sRTF;
StreamIn(SF_RTF?es); //?Do?it.
}
/*
Callback?function?to?stream?an?RTF?string?into?the?rich?edit?control.
*/
DWORD?CALLBACK?CAutoRichEditCtrl::CBStreamIn(DWORD?dwCookie?LPBYTE?pbBuff?LONG?cb?LONG?*pcb)
{
//?We?insert?the?rich?text?here.
/*
This?function?taken?from?CodeGuru.com
http://www.codeguru.com/richedit/rtf_string_streamin.shtml
Zafir?Anjum
*/
CString?*pstr?=?(CString?*)?dwCookie;
if?(pstr->GetLength()? {
*pcb?=?pstr->GetLength();
memcpy(pbBuff?(LPCSTR)?*pstr?*pcb);
pstr->Empty();
}
else
{
*pcb?=?cb;
memcpy(pbBuff?(LPCSTR)?*pstr?*pcb);
*pstr?=?pstr->Right(pstr->GetLength()?-?cb);
}
///
return?0;
}
/*
Callback?function?to?stream?the?RTF?string?out?of?the?rich?edit?control.
*/
DWORD?CALLBACK?CAutoRichEditCtrl::CBStreamOut(DWORD?dwCookie?LPBYTE?pbBuff?LONG?cb?LONG?*pcb)
{
//?Address?of?our?string?var?is?in?psEntry
CString?*psEntry?=?(CString*)?dwCookie;
CString?tmpEntry?=?““;
tmpEntry?=?(CString)?pbBuff;
//?And?write?it!!!
*psEntry?+=?tmpEntry.Left(cb);
return?0;
}
bool?CAutoRichEditCtrl::SelectionIsBold()
{
CHARFORMAT?cf?=?GetCharFormat();
if?(cf.dwEffects?&?CFM_BOLD)
return?true;
else
return?false;
}
bool?CAutoRichEditCtrl::SelectionIsItalic()
{
CHARFORMAT?cf?=?GetCharFormat();
if?(cf.dwEffects?&?CFM_ITALIC)
return?true;
else
return?false;
}
bool?CAutoRichEditCtrl::Se
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2788??2005-10-14?12:32??AutoRichEditCtrl.h
?????文件??????87797??2009-11-02?20:53??BCMenu.cpp
?????文件??????17239??2003-04-07?12:57??BCMenu.h
?????文件??????11583??2009-12-23?19:26??Bin_OwnStruct.h
?????文件??????55870??2009-12-15?20:39??BinaryFile.cpp
?????文件???????7418??2009-12-03?23:29??BinaryFile.h
?????文件???????6874??2009-12-01?21:17??BitmapDialog.cpp
?????文件???????3164??2003-04-09?16:22??BitmapDialog.h
?????文件??????74931??2009-11-02?21:18??ButtonST.cpp
?????文件??????10050??2003-04-07?14:03??ButtonST.h
?????文件????????948??2009-11-02?18:54??ColorButton.cpp
?????文件???????1240??2003-03-12?19:47??ColorButton.h
?????文件???????2226??2009-12-23?19:29??ColorStatic.cpp
?????文件???????1430??2002-11-17?00:23??ColorStatic.h
?????文件??????31293??2009-12-16?21:04??CompVirus.cpp
?????文件???????3458??2009-12-16?20:31??CompVirus.h
?????文件??????20329??2009-11-03?12:33??CShellFileOp.cpp
?????文件???????2936??1998-10-11?13:36??CShellFileOp.h
?????文件??????22866??2009-12-01?21:17??DIBitmap.cpp
?????文件???????2638??2003-03-29?20:23??DIBitmap.h
?????文件???????1822??2009-12-01?21:18??dibpal.cpp
?????文件????????649??2003-03-12?19:55??dibpal.h
?????文件???????7351??2009-12-01?19:20??ffsco.cpp
?????文件???????2908??2009-11-08?21:28??ffsco.h
?????文件??????17710??2009-12-23?19:31??FinderThread.cpp
?????文件???????4519??2009-12-16?13:25??FinderThread.h
?????文件??????31908??2009-12-15?18:57??hexeditctrl.cpp
?????文件???????3563??2009-12-15?13:01??hexeditctrl.h
?????文件???????8566??2009-12-05?19:06??HYPERli
?????文件???????2838??2009-12-09?18:52??HYPERli
............此處省略146個文件信息
- 上一篇:數值計算 c代碼及簡單的MFC界面
- 下一篇:MFC實現打開外部程序
評論
共有 條評論