⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crypt.h

📁 一个外国的木马哦,功能挺多的
💻 H
字号:
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
//																					 //		
//									RECUB											 //
//								  By Hirosh											 //	
//								www.hirosh.net										 //				
//								www.eos-india.net									 //	
//																					 //		
//Thanks for starch at http://mir-os.sourceforge.net For the idea,I started this by  //	
//porting his version in linux to win32,after some time i stoped porting bc i prefer //
//a small EXE heheh..,and thanks to NC source too..									 //		
//																					 //	
//				No CopyRights		- Feel Free to Cut & Paste	  				     // 	
//																					 //
//																					 //						
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////

#include "StdAfx.h"
#include "stdio.h"
#include "stdlib.h"


#define  _WIN32_WINNT 0x0510
#include <wincrypt.h>
void EncryptRC4(char *key,char *data,int sizedata)
{					
	HCRYPTPROV hProv = NULL;
	HCRYPTKEY hKey = NULL;
	HCRYPTKEY hXchgKey = NULL;
	HCRYPTHASH hHash = NULL;
	DWORD dwLength;
	BOOL bSuccess = CryptAcquireContext(&hProv, NULL,  MS_DEF_PROV, PROV_RSA_FULL, 0);
	if (!bSuccess)
	{
		bSuccess = CryptAcquireContext(&hProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_NEWKEYSET);
	}

	if (!bSuccess)
	{
		bSuccess = CryptAcquireContext(&hProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_NEWKEYSET|CRYPT_MACHINE_KEYSET);
	}

	if (bSuccess)
	{

	
		if (CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash))
		{
	
			dwLength = strlen(key);
			if (CryptHashData(hHash, (BYTE *)key, dwLength, 0))
			{
	 
				if (CryptDeriveKey(hProv, CALG_RC4, hHash,CRYPT_EXPORTABLE, &hKey))
				{			
					
					//dwLength=strlen(data);					
					dwLength=sizedata;
					CryptEncrypt(hKey, 0, TRUE, 0,(BYTE *)data, &dwLength, dwLength); 						
					data[dwLength]=0;
					CryptDestroyKey(hKey); 
				}				
			}			
			CryptDestroyHash(hHash); 
		}		
		CryptReleaseContext(hProv, 0);
	}
	else {
		char tt[100];
		wsprintf(tt,"%d",GetLastError());
		MessageBox(0,"Fauiled",tt,MB_OK);
	}
return ;
}
void DecryptRC4(char *key,char* data,int sizedata) 
{
	
		HCRYPTPROV hProv = NULL;
		HCRYPTKEY hKey = NULL;
		HCRYPTKEY hXchgKey = NULL;
		HCRYPTHASH hHash = NULL;
		DWORD dwLength;		
		
	BOOL bSuccess = CryptAcquireContext(&hProv, NULL,  MS_DEF_PROV, PROV_RSA_FULL, 0);
	if (!bSuccess)
	{
		bSuccess = CryptAcquireContext(&hProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_NEWKEYSET);
	}

	if (!bSuccess)
	{
		bSuccess = CryptAcquireContext(&hProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_NEWKEYSET|CRYPT_MACHINE_KEYSET);
	}

	if (bSuccess)
	{

		
			if (CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash))
			{
			
				dwLength =strlen(key);
				if (CryptHashData(hHash, (BYTE *)key, dwLength, 0))
				{
			//CRYPT_EXPORTABLE
					if (CryptDeriveKey(hProv, CALG_RC4, hHash, CRYPT_EXPORTABLE, &hKey))
					{						
						//dwLength =strlen(data);
						dwLength =sizedata;
						CryptDecrypt(hKey, 0, TRUE, 0, (BYTE *)data, &dwLength);													
						CryptDestroyKey(hKey);
					}
					
				}				
				CryptDestroyHash(hHash);
			}
			
			CryptReleaseContext(hProv, 0);
		}
		
return;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -