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

📄 qqcrypt.h

📁 一个QQ-TEA加密解密算法的应用程序, 可以直接对数据进行加密和解密, 对于分析QQ登录协议很有帮助
💻 H
字号:
// QQCrypt.h: interface for the CQQCrypt class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_QQCRYPT_H__B6BFB18D_33A6_4FD2_AF2F_7885B04A8749__INCLUDED_)
#define AFX_QQCRYPT_H__B6BFB18D_33A6_4FD2_AF2F_7885B04A8749__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CQQCrypt  
{
public:
	int QQ_Decrypt(BYTE arrayIn[], int in_len, BYTE arrayKey[], int key_len, BYTE *&ArrayOut);
	int QQ_Decrypt(BYTE arrayIn[], int in_len, BYTE arrayKey[], int key_len, DWORD offset, BYTE *&ArrayOut);
	int QQ_Encrypt(BYTE arrayIn[], int in_len, BYTE arrayKey[], int key_len, BYTE * &ArrayOut);
	int QQ_Encrypt(BYTE arrayIn[], int in_len, BYTE arrayKey[], int key_len, DWORD offset, BYTE * &ArrayOut);
	BOOL Decrypt8Bytes(BYTE arrayIn[], int in_len);
	BOOL Decrypt8Bytes(BYTE arrayIn[], int in_len, DWORD offset);
	void Encrypt8Bytes();
	void Encipher(BYTE arrayIn[], int in_len, BYTE arrayKey[], int key_len, BYTE arrayOut[8]);
	void Encipher(BYTE arrayIn[], int in_len, BYTE arrayKey[], int key_len, DWORD offset, BYTE arrayOut[8]);
	void Decipher(BYTE arrayIn[], int in_len, BYTE arrayKey[], int key_len, BYTE arrayOut[8]);
	void Decipher(BYTE arrayIn[], int in_len, BYTE arrayKey[], int key_len, DWORD offset, BYTE arrayOut[8]);
	DWORD Rand();
	DWORD getUnsignedInt(BYTE arrayIn[], int offset,int len);
	DWORD CopyArray(DWORD Out, BYTE arr[], int arr_len, int arr_index);
	void CopyArray(BYTE arr[], int arr_len, int arr_index, DWORD input);
	CQQCrypt();
	virtual ~CQQCrypt();
private:
	BYTE Plain[8];
	BYTE prePlain[8];
	BYTE *Out;                                     //输出的密文或者明文 
	DWORD Crypt;
	DWORD preCrypt;                           //当前加密的密文位置和上一次加密的密文块位置,他们相差8 
	int Pos;                                       //当前处理的加密解密块的位置 
	DWORD padding;                                   //填充数 
	BYTE Key[16];									//密钥 
	BOOL Header;                                    //用于加密时,表示当前是否是第一个8字节块,因为加密算法 
                                                                 //是反馈的,但是最开始的8个字节没有反馈可用,所有需要标 
                                                                 //明这种情况 
	int contextStart;  
};

#endif // !defined(AFX_QQCRYPT_H__B6BFB18D_33A6_4FD2_AF2F_7885B04A8749__INCLUDED_)

⌨️ 快捷键说明

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