/****************************************************************
代碼功能:對其它函數以及自身函數中的軟斷點(OD)進行檢測
編寫作者:Coderui
編寫日期:2008年06月16日
編寫語言:C/C++
編譯環境:VC++ 6.0
聯系郵箱:coderui@163.com
作者博客:http://hi.baidu.com/coderui
****************************************************************/
void Software();??? //聲明
void Software_End();??? //聲明
//--------------------------檢測其它函數---------------------------------
typedef void (*PTRProtected_Code_Start)();
typedef void (*PTRProtected_Code_End)();
PTRProtected_Code_Start pStart;
PTRProtected_Code_End pEnd;
//--------------------------檢測其它函數---------------------------------
//--------------------------檢測自己函數---------------------------------
typedef void (*PTRSoftware)();
typedef void (*PTRSoftware_End)();
PTRSoftware pSoftware;
PTRSoftware_End pSoftware_End;
//--------------------------檢測自己函數---------------------------------
//--------------------------檢測其它函數---------------------------------
void Protected_Code_Start()
{
CString one = L"第一個函數";
AfxMessageBox(one);
_asm
{
//?? int 3;
//?? mov eax,0xcc;
}
}
void Protected_Code_End()
{
CString two = L"第二個函數";
AfxMessageBox(two);
_asm
{
//?? int 3;
}
}
//--------------------------檢測其它函數---------------------------------
//--------------------------檢測自己函數---------------------------------
void Software()
{
//編寫作者:Coderui
//----------檢測其它函數----------
pStart = Protected_Code_Start;
pEnd = Protected_Code_End;
DWORD i;
DWORD nSize = (DWORD)pEnd - (DWORD)pStart;
BYTE *p = (BYTE*)Protected_Code_Start;
for(i = 0; i < nSize; i++)
{
?? if(*p++ == 0xcc)
?? {
??? exit(0);
?? }
}
//----------檢測其它函數----------
//編寫作者:Coderui
//----------檢測自己函數----------
pSoftware = Software;
pSoftware_End = Software_End;
DWORD j;
DWORD nLen = (DWORD)pSoftware_End - (DWORD)pSoftware;
BYTE *q = (BYTE*)pSoftware;
for(j = 0; j < nLen; j++)
{
?? if((*q++ ^ 0x55) == 0x99)//0x99 == 0xCC XOR 0x55
?? {
??? exit(0);
?? }
}
//----------檢測自己函數----------
}
void Software_End()
{
CString three = L"第三個函數";
AfxMessageBox(three);
_asm
{
//?? int 3;
}
}
//--------------------------檢測自己函數---------------------------------