導航:首頁 > 文檔加密 > ctea加密

ctea加密

發布時間:2022-01-21 16:40:30

1. 求塞班手機QQ記錄文件的加密方式。很多人說是tea加交織填充演算法,希望來個准確的描述和介紹~

建議你去塞班論壇問問,那裡高手好多,不過得先注冊

2. TEA加密演算法的內容

代碼如下:
void qq_encipher(unsigned long *const plain, const unsigned long *const key, unsigned long *const crypt)
//參數為8位元組的明文輸入和16位元組的密鑰,輸出8位元組密文
{
unsigned long left = plain[0],right = plain[1],
a = key[0], b = key[1],
c = key[2], d = key[3],
n = 32, sum = 0,
delta = 0x9E3779B9;
// 明文輸入被分為左右兩部分,密鑰分為四部分存入寄存器,n表示加密輪數推薦32。Delta為一常數。
while (n-- > 0) {
sum += delta;
left += ((right << 4) + a) ^ (right + sum) ^ ((right >> 5) + b);
right += ((left << 4) + c) ^ (left + sum) ^ ((left >> 5) + d);
}
crypt[0] = left ;
crypt[1] = right ;
}
void decrypt(unsigned long *v, unsigned long *k) {
unsigned long y=v[0], z=v[1], sum=0xC6EF3720, i; /* set up */
unsigned long delta=0x9e3779b9; /* a key schele constant */
unsigned long a=k[0], b=k[1], c=k[2], d=k[3]; /* cache key */
for(i=0; i<32; i++){ /* basic cycle start */
z -= ((y<<4) + c) ^ (y + sum) ^ ((y>>5) + d);
y -= ((z<<4) + a) ^ (z + sum) ^ ((z>>5) + b);
sum -= delta; /* end cycle */}v[0]=y;v[1]=z;}
雖然TEA演算法比 DES(Data Encryption Standard) 要簡單得多, 但有很強的抗差分分析能力,加密速度也比 DES 快得多,而且對 64 位數據加密的密鑰長達 128 位,安全性相當好。其可靠性是通過加密輪數而不是演算法的復雜度來保證的。從中可以看到TEA 演算法主要運用了移位和異或運算。密鑰在加密過程中始終不變。

3. 如何載入 VMware Workstation v8.0.1 加密過的虛擬磁碟文件

首先介紹一下VMware Workstation v8.0 的加密功能(修改、移除密碼也是在這里操作),操作很簡單:

新建一個任意虛擬機,然後「編輯虛擬機設置」→「選項」,可以看到一個「加密」,說明寫的是:「該虛擬機未加密。你可以使用密碼保護該虛擬機的數據和配置。」

旁邊有個「加密按鈕」,點擊,會要求你輸入密碼,然後開始加密,他會把虛擬機配置文件和整個虛擬磁碟統統重新編碼進行加密,而且是不可逆的高強度加密,如果你沒有密匙,是無法還原的。

我們再看看它的配置文件發生了什麼變化。

主要文件有:

Windows XP Professional.vmdk //虛擬磁碟文件
Windows XP Professional.vmsd //儲存密匙的文件
Windows XP Professional.vmx //虛擬機的整體配置文件
Windows XP Professional.vmxf //某種配置文件
加密前:

Windows XP Professional.vmdk //正常
Windows XP Professional.vmsd //空白
Windows XP Professional.vmx //明文的配置內容
Windows XP Professional.vmxf //明文的配置內容
Windows XP Professional.vmx 內容大概是這個樣子的:

.encoding = "GBK"
config.version = "8"
virtualHW.version = "8"
scsi0.present = "TRUE"
memsize = "512"
ide1:0.present = "TRUE"
ide1:0.autodetect = "TRUE"
ide1:0.deviceType = "cdrom-raw"
ide1:1.present = "TRUE"
ide1:1.fileName = "E:\b\1\Windows XP Professional.vmdk"
floppy0.startConnected = "FALSE"
floppy0.fileName = ""
floppy0.autodetect = "TRUE"
usb.present = "TRUE"
ehci.present = "TRUE"
sound.present = "TRUE"
sound.fileName = "-1"
sound.autodetect = "TRUE"
mks.enable3d = "TRUE"
serial0.present = "TRUE"
serial0.fileType = "thinprint"
pciBridge0.present = "TRUE"
pciBridge4.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge5.present = "TRUE"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge6.present = "TRUE"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge7.present = "TRUE"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
vmci0.present = "TRUE"
hpet0.present = "TRUE"
usb.vbluetooth.startConnected = "TRUE"
displayName = "Windows XP Professional"
guestOS = "winxppro"
nvram = "Windows XP Professional.nvram"
virtualHW.proctCompatibility = "hosted"
powerType.powerOff = "hard"
powerType.powerOn = "hard"
powerType.suspend = "hard"
powerType.reset = "hard"
extendedConfigFile = "Windows XP Professional.vmxf"
可以看到第一行是指定了編碼,底下是虛擬機的參數。

加密後:

Windows XP Professional.vmdk //文件數據完全改變
Windows XP Professional.vmsd //有內容了
Windows XP Professional.vmx //加密的配置內容
Windows XP Professional.vmxf //沒變
Windows XP Professional.vmsd 內容為:

.encoding = "GBK"
encryption.keySafe = "vmware:key/list/(pair/(null/%3cVMWARE%2dEMPTYSTRING%3e,HMAC%2dSHA%2d1,tvdbb%%2b7seyEXsITq%2frJfM%2bpRhuxn6hLdUf0sV2M7KK%%2bvDIIk%%3d))"
encryption.data = "jzMK85KB33C+ZvVvCDKF9cTMLXd7hUEWEZCY2p3/fVZERl1trvql+gD65kYqSk4WS+NKrQ=="
第一行指定編碼格式,第二行是安全密匙(Url 編碼的密匙信息+ Base64 編碼的密匙),第三行是Base64 編碼的加密數據。

Windows XP Professional.vmx 內容為:

.encoding = "GBK"
displayName = "Windows XP Professional"
encryption.keySafe = "vmware:key/list/(pair/(phrase/Q8qRfGi6V0M%3d/pass2key%3dPBKDF2%2dHMAC%2dSHA%2d1%3acipher%3dAES%2d256%3arounds%3d1000%3asalt%3dOiu7KvvIxTv%2b5a0RBmb4VA%253d%253d,HMAC%2dSHA%2d1,mwIz3U9k2vDV8kW5zgVcUkmP8SWBB%%2fcTA7RN9EoAb4A%2fD3fBYXctJDdDSKprDCk%%3d))"
encryption.data = "+D5d8Y8NV2Ua8+++mv/++/yi1Q/EpN5dIOHjFr9H0Vb3GLlu++eqvqWpFBNZUgKU+vH3ROfLNhGM6qnbaWrpn//+//3b+SOu3PJfEpr9pQ/aa/ezEAKrVE+2gb6L6ZIFsz/E6EqrQklJKHO+/WJ6m4CyAFt03RX/+7aqXY+o++9X0DxUGn8Y2W76agCZPVN3wO+//+k7RFa///DomPZ/vyxzIeaj/zafelc+9XM57DDTD6+D/dZbonatgXkQKnEEwSF4RCYBV+qm7MNlg+jz8pUHSK6QyGaOzj+WlU6O3XwELTB1zzl6JthHY/HHMgR/C4T3Tj2LPwK/nLq8+/2GDR/+/+uQhB7BrFzLnzmh7+BP9Tm3WG5J3vG0nb2MblKfRPk3u+/5mVCiAtMVWPHjQ+"
格式和上邊的差不多,實際上「encryption.data」為加密過的明文配置信息。

對兩段encryption.keySafe www.2cto.com 分別進行Url解碼後,發現:

vmware:key/list/(pair/(phrase/Q8qRfGi6V0M=/pass2key=PBKDF2-HMAC-SHA-1:cipher=AES-256:rounds=1000:salt=Oiu7KvvIxTv+5a0RBmb4VA==,HMAC-SHA-1,mwIz3U9k2vDV8kW5zgVcUkmP8SWBB+/cTA7RN9EoAb4A/D3fBYXctJDdDSKprDCk/=))
vmware:key/list/(pair/(null/<VMWARE-EMPTYSTRING>,HMAC-SHA-1,tvdbb++7seyEXsITq/rJfM+pRhuxn6hLdUf0sV2M7KK/+vDIIk/=))
其中簡要地說明了密匙信息,加密演算法有:HMAC-SHA-1、PBKDF2-HMAC-SHA-1,密匙長度:AES-256,還加鹽!

通過之前的觀察,我們發現有變化的文件有:

Windows XP Professional.vmdk //虛擬磁碟文件
Windows XP Professional.vmsd //儲存密匙的文件
Windows XP Professional.vmx //虛擬機的整體配置文件
這三個文件是關鍵,那麼如果你新建了一個虛擬機,想載入之前加密過的虛擬磁碟文件,該如何做呢?

首先,新建一個和之前系統一樣的虛擬機,配置隨意,然後找到保存配置的目錄,復制.vmsd、.vmx 過去覆蓋(或者替換其中的密匙信息),然後打開該虛擬機(不是啟動!),刪掉之前的磁碟,載入加密過的磁碟,直接就可以用了。

4. 急求一道c語言編程的答案!!時間急迫!!快快!!

問問題的該不會是。。。。xgd的吧。。。
你夠可以的~~~不想自己做還搜難度系數最大的。。。

自己做個數學型的就行了唄。。那些里有特簡單的。

5. 魅族5.15內置的com.redteamobile.virtual.softsim有什麼用

剛好今天刷機到5.1.5.0Y,凍結應用的時候發現了這個未知的應用,通過關鍵詞搜索得知,redteamobile 中文名 紅茶移動,是專門給境外漫遊用的,讓你不換SIM卡就可以享受境外的網路和服務。同時5.1.5Y比1.4還多了一個roamingpay.apk的東西,網路沒查到,不過翻譯過來是漫遊支付,估計跟紅茶是配套的,目前這倆我都凍結了,還沒發生不穩定的情況,正常使用。

6. F2:D7:5E:F5:CC:C1的密碼是多少

協議分析:獲取各類登錄會話密鑰

我們知道QQ的一些會話密鑰是在登錄過程中生成的,尤其是Session Key,有了它便可以解密出聊天文本內容。本文主要是了解一下QQ的加密機制,首先是用嗅探工具Wireshark 捕獲本地發至8000埠的UDP數據包,然後使用 QQCrypter 工具對各類文本進行加解密分析。

帳號資料

QQ號碼(HEX):739317986 2C 11 18 E2

QQ密碼 MD5 一次密文:D1 C2 DC FC BF D4 1C E1 10 3A 25 47 5B 64 F7 A5

QQ密碼 MD5 二次密文:17 05 FB D8 1D 0D B4 37 79 7E 55 75 6C B8 E8 D2

IP地址(HEX):192.168.1.101 C0 A8 01 65

數據包分析

密鑰A:

02 // 命令類別

1C 27 // QQ2010 Beta3版本號

00 91

46 60

2C 11 18 E2 // QQ號碼

02 00 00 00 01 01 01 00 00 64 00

3E 12 2D 44 39 61 C5 34 80 7E D1 26 AD 30 50 29 //密鑰A

6B 1C 4B 2C 30 0B 4C 56 90 14 32 56 F3 AF 69 20 // 以下藍色內容為密文

62 C0 80 80 DE 26 CE EA E6 E6 8C BE F5 8A E7 45

87 F1 BD AC 59 0E 87 47 1D FE 4E 46 02 51 5D 00

03

用TEA解密如下:

00 01 00 00 08 04 01 E0 00 00 03 20 00 00 00 01

00 00 0B 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

密鑰B:

02

1C 27

00 DD

16 B2

2C 11 18 E2

02 00 00 00 01 01 01 00 00 64 00

33 BA 7C E2 A1 C2 B4 8E DC 8D 19 49 2E 54 D6 23 //密鑰B

// 以下藍色內容為密文

93 29 E2 EA 3E 02 DE D2 2D 7C 6D 70 DB 25 F5 74

57 4B 03 8A B9 DF EF 0D A3 EF 49 3C A8 F6 7D FE FD 1D 22 82 27 F2 39 03 91 95 02 C9 C2 FB 8E 5D EA 8F 0C 54 F8 74 D0 84 53 A3 62 58 71 D8 12 AA 06 DA C4 9F FF AD 1D 57 23 09 0C AF 6D A9 2E 44 9E 7C CD E6 85 E3 73 27 76 98 29 32 1E 8F 50 66 F6 3C D7 F4 BD A6 C4 07 DF DE 7E A4 68 B5 2A ED 7E 81 27 C2 1D 11 7A 14 28 1D 38 FF 89 9B 74 FF 96 62 96 E9 E1 B1 B3 85 95 F4 16 32 14 31 96 91 49 E5 E8 14 27 2C 52 96 16 0C 63 4C 0B B0 E6 18 43 A6 0B 3B 87 8C 98 C2 A8 7F 2E EC A7 9E 94 B2 00 43 AC D4 B1 68 55 A4 55 9B 62 35 75 93 AE 5F A7 32 67 6C 43 66 0E 4A 06 B6 87 72 1E 0A B7 B3 04 D8 AB 80 0E 5F AA A1 3A 24 1E B5 58 F1 70 EF 41 58 2F 77 50 85 97 9E B2 0A DF C9 16 AC 64 50 5F F7 B7 66 67 CE 83 74 0B 68 69 A8 37 51 37 F5 79 C2 9B E4 E6 CA 77 AC 02 BE 34 9B 8C B4 93 EE DE BC 4F 46 21 BA 72 5A 6B 23 7C 2C 11 E0 6A 02 D2 5E E7 BC FD 0E FB 52 16 93 B6 B0 C2 52 B2 42 58 93 27 BF 19 93 C1 F4 7D BB 48 48 37 91 81 00 AE 51 D4 15 22 4C 26 28 4E 50 50 F2 5E A3 B2 04 1A 17 FA 91 BE 3D 7D 82 70 71 43 4B 5C 44 AB D4 BF 65 D1 DC AB 5D E0 68 36 35 1D 93 88 6E C5 85 02 57 68 87 71 0F 2A 6F 4B 48 0D E1 AE 95 99 A6 57 49 A6 D5 86 04 42 87 F3 C6 23 9A 42 A3 52 23 9D B9 67 92 A7 1B 1A 7C 56 98 9B B3 A9 A3 25 5E 2B 74 A8 78 DC C5 11 40 A3 13 2D ED 88 4F 11 2B 59 D6 EC 13 61 BA 57 EB 6F 4C 67 95 DA EA BA 0C FA 3E 2B 86 3A D8 84 05 7F 3B 27 A6 94 49 CA F4 23 6D C0 AD 97 08 E2 C7 15 27 0B 8E 10 CD 02 1A 63 13 15 BF 4A B3 66 87 AC 2A 42 09 D5 4A DD F8 1C 0C B0 0A DD 09 F5 7F 28 60 61 55 E7 25 73 A4 BC FB 9C 5E 87 C7 CD 8A A9 46 9A 14 FD B1 03 F5 AA 2F 9C 84 32 52 A6 70 D5 FC 62 DA DA 74 B3 67 3F 84 C9 67 25 A8 8B 7E 93 72 41 8F 0C C4 34 5C 10 9F 5D 9D C2 F4 93 A0 D9 61 45 C1 B7 54 A3 76 F7 31 D8 A1 CE 8E 94 1D C7 B4 C4 49 EA BD 7C 78 77 1E CF 5D CE 5E 81 4F EC 64 AA 6A B5 E2 41 BA 4E 00 D6 D7 7F B9 96 8F

03

用密鑰B (33 BA 7C E2 A1 C2 B4 8E DC 8D 19 49 2E 54 D6 23)經TEA演算法解密,內容如下:

00 DE 00 01 00 00 08 04 01 E0

00 00 03 20 00 00 00 01 00 00 0B 17

00 38

53 5E 98 F6 D7 43 46 75 8F 78 8A 60 FB 8E D7 4A

5C 4A 4C 42 A2 A2 C1 37 8D 21 55 CC B6 26 5F 02

AE 1C 87 79 23 9B FD CE 96 28 82 E0 AB 08 28 FA

C3 9C B0 7C 76 5C F5 F5

00 78 //0x78表示十進制數值 120

D5 FE 11 59 59 04 90 82 BA 36 50 54 4D 49 44 B8 //120個位元組的開始塊

22 72 00 BA 2D F3 5C 4C 3F B6 45 B1 D3 16 1C A9 4D 12 33 B0 79 11 BB 68 79 6E 2E 1B 1C E1 C9 F8 19 4B F1 35 AA EB 62 F2 D7 77 48 70 1D B4 40 CB 85 F8 74 15 5E 6C 32 9F 07 E4 B0 2A 61 35 4B 54 CC 85 F4 EA 6C 5A 42 F8 DB 18 A3 8F 9B 42 AD 5E 9A 5E FE 89 4C 18 71 2A 33 6A E9 D1 9F CE 0F DA 99 ED 65 F8 F6 E2 0D 66 //120個位元組的結束塊

00 14 82 FE 87 6D 6D 10 52 50 50 CD 61 98 54 F7 2F 82 EE 6A EB D5 01 77 2E 01 7F 5D 41 8F 00 10 8D CD 83 D5 BB B4 1F 4C CA 15 5C 38 D4 69 F1 30 02 66 45 A3 96 00 10 49 1F 22 31 08 12 D4 98 70 1F A3 63 9F 4B 56 AB 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

密鑰C和D:

我們用QQ密碼 MD5 二次密文(17 05 FB D8 1D 0D B4 37 79 7E 55 75 6C B8 E8 D2)作為密鑰,對上面的120個位元組 數據塊作解密處理,可以得到密文:

52 40 0C 93 00 01 2C 11 18 E2 00 00 03 20 00 00

00 01 00 00 0B 17 00 00 00

D1 C2 DC FC BF D4 1C E1 10 3A 25 47 5B 64 F7 A5 //這個16位的數據正好是QQ密碼

//經過MD5一次加密的密文

4C 75 25 59 00 00 00 00 00 00 00 00 00 00 00 00

00 3A FF 40 28 00 00 00 00 00 00 00 00 00 10

08 97 8A 39 E8 96 72 49 AC 26 E6 8B 63 E4 D7 44 //這個16位的數據是密鑰 C

27 1E 92 DE F4 F4 9A 68 B2 E4 8D 84 BC EC 42 41 //這個16位的數據是密鑰 D

密鑰E和F:

7. 什麼是TEA演算法

TEA演算法被廣泛地應用於計算機數據加密領域,OICQ的數據安全採用了TEA演算法。本文討論了TEA的演算法的原理及實現,並揭示了QQ中該演算法的應用,本文是靈鑰科技公司(www.panakes.com)在即時通信密碼研究公開的第一篇論文,今後我們將陸續發表相關的論文及相應的產品。

TEA演算法簡介
TEA演算法是由劍橋大學計算機實驗室的DavidWheeler和RogerNeedham於1994年發明.TEA是TinyEncryptionAlgorithm的縮寫。特點是加密速度極快,高速高效,但是抗差分攻擊能力差。

TEA加密演算法是一種分組密碼演算法,其明文密文塊64比特(8位元組),密鑰長度128比特(16位元組)。TEA加密演算法的迭代次數可以改變,建議的迭代次數為32輪,盡管演算法的發明人強調加密16輪就很充分了。兩個TEAFeistel周期算為一輪。圖1示例了TEA一輪的加密流程。

以下示例了TEA的C語言加密演算法,TEA的解密演算法與加密演算法類似。

#defineTEA_ROUNDS0x20
#defineTEA_DELTA0x9E3779B9
#defineTEA_SUM0xE3779B90

voidtiny_encrypt(unsignedlong*constv,unsignedlong*constw,
constunsignedlong*constk)
{
registerunsignedlong
y=v[0],
z=v[1],
a=k[0],
b=k[1],
c=k[2],
d=k[3],
n=TEA_ROUNDS,
sum=0,
delta=TEA_DELTA;

while(n-->0){
sum+=delta;
y+=(z<<4)+a^z+sum^(z>>5)+b;
z+=(y<<4)+c^y+sum^(y>>5)+d;
}
w[0]=y;
w[1]=z;
}

TEA演算法利用的不斷增加的(即源程序中的delta)值作為變化,,就是黃金分割率。它的作用是使得每輪的加密是不同。的准確值可能不太重要。但是在這里,它被初始化為

=0x9e3779b

QQ是如何利用TEA進行加密的?
TEA演算法被廣泛應用於QQ的數據加密中,QQ採用16輪的TEA演算法加密,在這時採取16輪加密時而不採取標準的32輪加密時為了減少驗證伺服器的壓力。QQ在數據加密前採用了密碼學中的常用的填充及交織技術,減少加密數據的相關性,增加破譯者的破解難度。

下表列出了QQ應用TEA演算法幾個方面

序號
應用
相關文件

1
通訊報文的加密/解密

2
消息記錄的加密/解密
MsgEx.db

3
本地消息密碼、首次登錄時間、提示內容驗證密碼
Matrix.db

4
消息備份文件
*.bak

QQ的TEA演算法源程序分析
QQ在進行TEA加密前採用ntohl函數對原文數據和加密密鑰進行了變換,從網路位元組順序轉換位主機位元組順序進行加密後,再通過htonl函數將數據轉換為網路位元組順序的數據。

為什麼要這樣做呢?因為不同的計算機使用不同的位元組順序存儲數據。因此任何從Winsock函數對IP地址和埠號的引用和傳給Winsock函數的IP地址和埠號均時按照網路順序組織的。

為防止分析者分析出QQ是採用TEA加密演算法的,程序的設計者採用了subeax,61C88647h指令,而不採用Addeax9e3779b9h指令。因為分析者只需要判斷9e3779b9h(即是我們前面提的黃金分割率的值)就知道採用了TEA加密演算法。

sub_409A43procnear;CODEXREF:sub_409B8C+AEp
;sub_409B8C+109p...

var_10=dwordptr-10h
var_C=dwordptr-0Ch
var_8=dwordptr-8
var_4=dwordptr-4
arg_0=dwordptr8
arg_4=dwordptr0Ch
arg_8=dwordptr10h

pushebp
movebp,esp
subesp,10h
pushebx
pushesi
movesi,[ebp+arg_0]
pushedi
pushdwordptr[esi];netlong
callntohl
pushdwordptr[esi+4];netlong
movedi,eax;y
callntohl
movebx,eax;z
moveax,[ebp+arg_4]
leaecx,[ebp+var_10]
leaesi,[ebp+var_10]
subeax,ecx
mov[ebp+arg_0],4
mov[ebp+arg_4],eax
jmpshortloc_409A7C
;哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
.text:00409A79
loc_409A79:;CODEXREF:sub_409A43+49j
moveax,[ebp+arg_4]

loc_409A7C:;CODEXREF:sub_409A43+34j
pushdwordptr[eax+esi];netlong
callntohl;對k[0],k[1],k[2],k[3]進行ntohl變化,
mov[esi],eax
addesi,4
dec[ebp+arg_0]
jnzshortloc_409A79

push10h;做十六輪TEA運算
xoreax,eax
popecx

loc_409A93:;CODEXREF:sub_409A43+88j
movedx,ebx
movesi,ebx
shredx,5;z>>5
addedx,[ebp+var_C];z>>5+k[1]
subeax,61C88647h;sum=sum+deltadelta:0x9e3779b9
shlesi,4;z<<4
addesi,[ebp+var_10];z<<4+k[0]
xoredx,esi;(z>>5+k[1])^(z<<4+k[0])
leaesi,[eax+ebx];sum+z
xoredx,esi;(z<<4+k[0])^(sum+z)^(z>>5+k[1])
addedi,edx;y+=(z<<4+k[0])^(sum+z)^(z>>5+k[1])

movedx,edi
movesi,edi
shredx,5;y>>5
addedx,[ebp+var_4];y>>5+k[3]
shlesi,4;y<<4
addesi,[ebp+var_8];y<<4+k[2]
xoredx,esi;(y>>5+k[3])^(y<<4+k[2])
leaesi,[eax+edi];(sum+y)
xoredx,esi;(y<<4+k[2])^(sum+y)^(y>>5+k[3])
addebx,edx;z+=(y<<4+k[2])^(sum+y)^(y>>5+k[3])
dececx
jnzshortloc_409A93

pushedi;hostlong
callhtonl
movesi,[ebp+arg_8]
pushebx;hostlong
mov[esi],eax;加密結果
callhtonl
mov[esi+4],eax;加密結果
popedi
popesi
popebx
leave
retn
sub_409A43endp

結論
作為一種分組加密演算法,TEA加密演算法在其發展的過程中,目前出現了幾種針對TEA演算法設計的缺陷攻擊方法,使得原有的TEA加密演算法變得不安全,在過去的十幾年中,TEA演算法進行了若干次的改進,歷經XTEA,BlockTEA,XXTEA幾個版本。目前最新的演算法是XXTEA。

QQ採用了最初的TEA演算法做其核心的加密演算法,QQ在採用TEA演算法時採用了16輪的加密,其加密復雜度比32輪減了許多。利用TEA演算法的設計缺陷,使得快速破解QQ密碼成為可能。

值得一提的QQ在利用TEA演算法做加密時,採用了交織及隨機填充隨機數的技術,增加了密碼分析者分析難度,從一定程度上保護了信息的安全。

更多信息請訪問www.panakes.com

TEA(Tiny Encryption Algorithm) 是一種優秀的數據加密演算法,雖然它比 DES(Data Encryption Standard) 要簡單得多, 但有很強的抗差分分析能力,加密速度也比 DES 快得多,而且對 64 位數據加密的密鑰長達 128 位,安全性相當好。 下面的程序來自盧開澄《計算機密碼學》(清華大學出版社)。

補充:為了使這段程序更加實用,我將其整理為幾個單元, 分別用於 Delphi 和 C++Builder 。包括對數據流 TMemoryStream 和字元串的加密/解密功能, 對字元串的加密/解密還通過 Base64 編碼/解碼,保持加密後的字元串仍為字元串。

// v[2] : 64bit data, k[4] : 128bit key

void encipher( unsigned long * const v, const unsigned long * const k )
{
register unsigned long y = v[0], z = v[1], sum = 0, delta = 0x9E3779B9,
a = k[0], b = k[1], c = k[2], d = k[3], n = 32;

while ( n-- > 0 )
{
sum += delta;
y += ( z << 4 ) + a ^ z + sum ^ ( z >> 5 ) + b;
z += ( y << 4 ) + c ^ y + sum ^ ( y >> 5 ) + d;
}
v[0] = y;
v[1] = z;
}

void decipher( unsigned long * const v, const unsigned long * const k )
{
register unsigned long y = v[0], z = v[1], sum = 0xC6EF3720, delta = 0x9E3779B9,
a = k[0], b = k[1], c = k[2], d = k[3], n = 32;

// sum = delta << 5, in general sum = delta * n
while ( n-- > 0 )
{
z -= ( y << 4 ) + c ^ y + sum ^ ( y >> 5 ) + d;
y -= ( z << 4 ) + a ^ z + sum ^ ( z >> 5 ) + b;
sum -= delta;
}
v[0] = y;
v[1] = z;
}

8. 如何實現php的TEA演算法

演算法簡單,而且效率高,每次可以操作8個位元組的數據,加密解密的KEY為16位元組,即包含4個int數據的int型數組,加密輪數應為8的倍數,一般比較常用的輪數為64,32,16,QQ原來就是用TEA16來還原密碼的.


TEA演算法

核心為:

#include<stdint.h>

voidencrypt(uint32_t*v,uint32_t*k){
uint32_tv0=v[0],v1=v[1],sum=0,i;/*setup*/
uint32_tdelta=0x9e3779b9;/*akeyscheleconstant*/
uint32_tk0=k[0],k1=k[1],k2=k[2],k3=k[3];/*cachekey*/
for(i=0;i<32;i++){/*basiccyclestart*/
sum+=delta;
v0+=((v1<<4)+k0)^(v1+sum)^((v1>>5)+k1);
v1+=((v0<<4)+k2)^(v0+sum)^((v0>>5)+k3);
}/*endcycle*/
v[0]=v0;v[1]=v1;
}

voiddecrypt(uint32_t*v,uint32_t*k){
uint32_tv0=v[0],v1=v[1],sum=0xC6EF3720,i;/*setup*/
uint32_tdelta=0x9e3779b9;/*akeyscheleconstant*/
uint32_tk0=k[0],k1=k[1],k2=k[2],k3=k[3];/*cachekey*/
for(i=0;i<32;i++){/*basiccyclestart*/
v1-=((v0<<4)+k2)^(v0+sum)^((v0>>5)+k3);
v0-=((v1<<4)+k0)^(v1+sum)^((v1>>5)+k1);
sum-=delta;
}/*endcycle*/
v[0]=v0;v[1]=v1;
}


PHP部分代碼非我原創,大家可以了解一下這方面的知識

<?php
$date='8345354023476-3434';
$key='12345';
$t=newtea();
$tea=$t->encrypt($date,$key);
$eetea=$t->decrypt($tea,$key);
var_mp($tea);
var_mp($eetea);
classtea{
private$a,$b,$c,$d;
private$n_iter;
publicfunction__construct(){
$this->setIter(32);
}
privatefunctionsetIter($n_iter){
$this->n_iter=$n_iter;
}
privatefunctiongetIter(){
return$this->n_iter;
}
publicfunctionencrypt($data,$key){
//resizedatato32bits(4bytes)
$n=$this->_resize($data,4);

//convertdatatolong
$data_long[0]=$n;
$n_data_long=$this->_str2long(1,$data,$data_long);

//resizedata_longto64bits(2longsof32bits)
$n=count($data_long);
if(($n&1)==1){
$data_long[$n]=chr(0);
$n_data_long++;
}

//resizekeytoamultipleof128bits(16bytes)
$this->_resize($key,16,true);
if(''==$key)
$key='0000000000000000';

//convertkeytolong
$n_key_long=$this->_str2long(0,$key,$key_long);

//encryptthelongdatawiththekey
$enc_data='';
$w=array(0,0);
$j=0;
$k=array(0,0,0,0);
for($i=0;$i<$n_data_long;++$i){
//getnextkeypartof128bits
if($j+4<=$n_key_long){
$k[0]=$key_long[$j];
$k[1]=$key_long[$j+1];
$k[2]=$key_long[$j+2];
$k[3]=$key_long[$j+3];
}else{
$k[0]=$key_long[$j%$n_key_long];
$k[1]=$key_long[($j+1)%$n_key_long];
$k[2]=$key_long[($j+2)%$n_key_long];
$k[3]=$key_long[($j+3)%$n_key_long];
}
$j=($j+4)%$n_key_long;

$this->_encipherLong($data_long[$i],$data_long[++$i],$w,$k);

//
$enc_data.=$this->_long2str($w[0]);
$enc_data.=$this->_long2str($w[1]);
}

return$enc_data;
}
publicfunctiondecrypt($enc_data,$key){
//convertdatatolong
$n_enc_data_long=$this->_str2long(0,$enc_data,$enc_data_long);

//resizekeytoamultipleof128bits(16bytes)
$this->_resize($key,16,true);
if(''==$key)
$key='0000000000000000';

//convertkeytolong
$n_key_long=$this->_str2long(0,$key,$key_long);

//decryptthelongdatawiththekey
$data='';
$w=array(0,0);
$j=0;
$len=0;
$k=array(0,0,0,0);
$pos=0;

for($i=0;$i<$n_enc_data_long;$i+=2){
//getnextkeypartof128bits
if($j+4<=$n_key_long){
$k[0]=$key_long[$j];
$k[1]=$key_long[$j+1];
$k[2]=$key_long[$j+2];
$k[3]=$key_long[$j+3];
}else{
$k[0]=$key_long[$j%$n_key_long];
$k[1]=$key_long[($j+1)%$n_key_long];
$k[2]=$key_long[($j+2)%$n_key_long];
$k[3]=$key_long[($j+3)%$n_key_long];
}
$j=($j+4)%$n_key_long;

$this->_decipherLong($enc_data_long[$i],$enc_data_long[$i+1],$w,$k);

//(removepadding)
if(0==$i){
$len=$w[0];
if(4<=$len){
$data.=$this->_long2str($w[1]);
}else{
$data.=substr($this->_long2str($w[1]),0,$len%4);
}
}else{
$pos=($i-1)*4;
if($pos+4<=$len){
$data.=$this->_long2str($w[0]);

if($pos+8<=$len){
$data.=$this->_long2str($w[1]);
}elseif($pos+4<$len){
$data.=substr($this->_long2str($w[1]),0,$len%4);
}
}else{
$data.=substr($this->_long2str($w[0]),0,$len%4);
}
}
}
return$data;
}
privatefunction_encipherLong($y,$z,&$w,&$k){
$sum=(integer)0;
$delta=0x9E3779B9;
$n=(integer)$this->n_iter;

while($n-->0){
//Cv0+=((v1<<4)+k0)^(v1+sum)^((v1>>5)+k1);
//Cv1+=((v0<<4)+k2)^(v0+sum)^((v0>>5)+k3);
$sum=$this->_add($sum,$delta);
$y=$this->_add($y,$this->_add(($z<<4),$this->a)^$this->_add($z,$sum)^$this->_add($this->_rshift($z,5),$this->b));
$z=$this->_add($z,$this->_add(($y<<4),$this->a)^$this->_add($y,$sum)^$this->_add($this->_rshift($y,5),$this->b));
}

$w[0]=$y;
$w[1]=$z;
}
privatefunction_decipherLong($y,$z,&$w,&$k){
//sum=delta<<5,ingeneralsum=delta*n
$sum=0xC6EF3720;
$delta=0x9E3779B9;
$n=(integer)$this->n_iter;

while($n-->0){
//Cv1-=((v0<<4)+k2)^(v0+sum)^((v0>>5)+k3);
//Cv0-=((v1<<4)+k0)^(v1+sum)^((v1>>5)+k1);
$z=$this->_add($z,-($this->_add(($y<<4),$this->a)^$this->_add($y,$sum)^$this->_add($this->_rshift($y,5),$this->b)));
$y=$this->_add($y,-($this->_add(($z<<4),$this->a)^$this->_add($z,$sum)^$this->_add($this->_rshift($z,5),$this->b)));
$sum=$this->_add($sum,-$delta);
}

$w[0]=$y;
$w[1]=$z;
}
privatefunction_resize(&$data,$size,$nonull=false){
$n=strlen($data);
$nmod=$n%$size;
if(0==$nmod)
$nmod=$size;

if($nmod>0){
if($nonull){
for($i=$n;$i<$n-$nmod+$size;++$i){
$data[$i]=$data[$i%$n];
}
}else{
for($i=$n;$i<$n-$nmod+$size;++$i){
$data[$i]=chr(0);
}
}
}
return$n;
}
privatefunction_hex2bin($str){
$len=strlen($str);
returnpack('H'.$len,$str);
}
privatefunction_str2long($start,&$data,&$data_long){
$n=strlen($data);

$tmp=unpack('N*',$data);
$j=$start;

foreach($tmpas$value)
$data_long[$j++]=$value;

return$j;
}
privatefunction_long2str($l){
returnpack('N',$l);
}


privatefunction_rshift($integer,$n){
//convertto32bits
if(0xffffffff<$integer||-0xffffffff>$integer){
$integer=fmod($integer,0xffffffff+1);
}

//converttounsignedinteger
if(0x7fffffff<$integer){
$integer-=0xffffffff+1.0;
}elseif(-0x80000000>$integer){
$integer+=0xffffffff+1.0;
}

//dorightshift
if(0>$integer){
$integer&=0x7fffffff;//removesignbitbeforeshift
$integer>>=$n;//rightshift
$integer|=1<<(31-$n);//setshiftedsignbit
}else{
$integer>>=$n;//usenormalrightshift
}

return$integer;
}
privatefunction_add($i1,$i2){
$result=0.0;

foreach(func_get_args()as$value){
//removesignifnecessary
if(0.0>$value){
$value-=1.0+0xffffffff;
}

$result+=$value;
}

//convertto32bits
if(0xffffffff<$result||-0xffffffff>$result){
$result=fmod($result,0xffffffff+1);
}

//converttosignedinteger
if(0x7fffffff<$result){
$result-=0xffffffff+1.0;
}elseif(-0x80000000>$result){
$result+=0xffffffff+1.0;
}

return$result;
}

//}}}
}
?>

上面的是TEA的演算法,XTEA的演算法為:


#include <stdint.h>


void encipher(unsigned int num_rounds, uint32_t v[2], uint32_t const k[4]) {

unsigned int i;

uint32_t v0=v[0], v1=v[1], sum=0, delta=0x9E3779B9;

for (i=0; i < num_rounds; i++) {

v0 += (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);

sum += delta;

v1 += (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);

}

v[0]=v0; v[1]=v1;

}


void decipher(unsigned int num_rounds, uint32_t v[2], uint32_t const k[4]) {

unsigned int i;

uint32_t v0=v[0], v1=v[1], delta=0x9E3779B9, sum=delta*num_rounds;

for (i=0; i < num_rounds; i++) {

v1 &#8722;= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);

sum &#8722;= delta;

v0 &#8722;= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);

}

v[0]=v0; v[1]=v1;

}


那PHP中只需要把運算的位置改下就OK


private function _teaencipherLong($y, $z, &$w, &$k) {

$sum = ( integer ) 0;

$delta = 0x9E3779B9;

$n = ( integer ) $this->n_iter;

while ( $n -- > 0 ) {

$y = $this->_add ( $y, $this->_add ( $z << 4 ^ $this->_rshift ( $z, 5 ), $z ) ^ $this->_add ( $sum, $k [$sum & 3] ) );

$sum = $this->_add ( $sum, $delta );

$z = $this->_add ( $z, $this->_add ( $y << 4 ^ $this->_rshift ( $y, 5 ), $y ) ^ $this->_add ( $sum, $k [$this->_rshift ( $sum, 11 ) & 3] ) );

}

$w [0] = $y;

$w [1] = $z;

}

private function _decipherLong($y, $z, &$w, &$k) {

// sum = delta<<5, in general sum = delta * n

$sum = 0xC6EF3720;

$delta = 0x9E3779B9;

$n = ( integer ) $this->n_iter;

while ( $n -- > 0 ) {

$z = $this->_add ( $z, - ($this->_add ( $y << 4 ^ $this->_rshift ( $y, 5 ), $y ) ^ $this->_add ( $sum, $k [$this->_rshift ( $sum, 11 ) & 3] )) );

$sum = $this->_add ( $sum, - $delta );

$y = $this->_add ( $y, - ($this->_add ( $z << 4 ^ $this->_rshift ( $z, 5 ), $z ) ^ $this->_add ( $sum, $k [$sum & 3] )) );

}

$w [0] = $y;

$w [1] = $z;

9. 我QQ號丟了申訴了但都7個小時了怎麼還沒結果啊

要24小時才有回復的,你慢慢耐心的等吧。。

一、怎樣知道QQ被盜

1、正在上QQ,突然收到提示:「您的QQ已在別處上線」。說明有人正在盜你的QQ。

2、登錄時提示密碼不正確,重試N次也不行。說明你的QQ已經被盜。

二、有密碼保護該怎麼辦

讓他偷吧,去騰訊客服重設密碼就可以了。詳細方法>>

三、 沒有密碼保護或忘了密碼保護的設置該怎麼辦

1、2秒鍾內重新上線,搶在盜號者前面修改密碼,並重新登錄。

2、盡快去騰訊客服網站(可以點這里去)填寫號碼申訴表,讓騰訊把QQ還給你。證明QQ是你的方法>>

有密碼保護的朋友不一定就能順利地找回密碼,如果您如果當初注冊的安全郵箱已失效(重新設定的密碼會以郵件的方式發給你),或暫時無法接收並打開重設密碼的確認郵件(比如網路不通),那你可以臨時修改安全郵箱。詳細方法>>

如果去填寫了號碼申請表,不管有沒有通過騰訊的審核,它都會通過客戶端消息或郵件的方式通知您申訴處理結果。您也可以自己去查詢審核的結果。具體介紹>>

丟了QQ密碼再來找很麻煩,不如採取措施來盡量避免QQ被盜帶來的麻煩。

建議一:

立即申請QQ密碼保護功能。這樣就能一萬個放心,不怕QQ被偷。申請QQ密碼保護功能的方法>>

建議二:

了解老網友給大家介紹的《QQ密碼竊取伎倆剖析與防盜策略》在平時的使用過程中引起充分注意。點擊查看>>

建議三:

最新版的QQ2005增加了安全中心功能,可以有效防止您的QQ被盜。點這里了解QQ2005、下載QQ2005>>

建議四:

不要再掛機了。騰訊早就修改了升級方法,掛機已經沒有多大意義,成為歷史了。通過掛機把密碼丟了倒是很容易。
建議五:

不要相信所謂充Q幣、送Q幣的廣告,天下沒有白吃的午餐。貪便宜就可能會失去你心愛的QQ號。看看騙子們有哪些花招>>

建議您做以下一些事情:

1、用些軟體查殺一下你機器里的病毒木馬。木馬剋星、木馬殺客都可以。要到安全模式下去殺才穩妥喲。

2、仔細回想去過哪些網站掛機,趕快去取消,掛機早就沒有意義了。

3、修改密碼,整個復雜點兒的。

4、改用官方的QQ,不發用些不知名的雜牌QQ,不要去不知名的網站下載QQ。

還有 在論壇

少於500分的人的連接,不要輕易點~~

刷業務 刷Q B 會員的 勿信!!!

下載的東西先殺毒在用~

QQ被盜了可以這樣找回來

很多人號碼申訴時都如實的填寫了自己相關真實的證明資料,卻老是申訴被拒絕,其中很大的原因是填寫資料時提供的證明資料沒有足夠說服力(特別是號碼申訴的「其他證明資料」,我想這個問題一定困擾很多人,怎樣填寫一些只有你本人知道而別人無法得知的資料,這樣的資料才更有說服力。),現我把我的一些申訴的具體方法和大家交流一下:

一、被盜號碼QQ資料、歷史密碼、歷史好友、用戶個人身份資料、原有密碼保護資料,這些資料只要填寫半年前就可以了。若原有密碼保護或證件號碼忘了,就直接在申訴表裡註明「忘記了」

二、其他證明資料的填寫(16個別人無法知道或很難知道的證明資料):

1、該號碼何處申請(如:聲訊台、網站、QQ客戶端或手機申請等。如果是會員或QQ行用戶順便寫上支付方式。)

2、該號碼是否用手機綁定過(有的話就填上曾經綁定過的手機號碼)

3、QQ游戲(如:你是否用過QQ游戲裡面的雙倍積分卡等游戲道具)

4、如果忘了原始密碼,就填寫個申請舊密碼保護時的密碼,並註明是申請舊密碼保護時的密碼(當然,這個要在你記得的前提下,如果不記的可以不填)

5、是否贈送過別人QQ秀或某些騰訊的業務,有的話填上並註明獲贈人的QQ號碼(當然,這里最好能填3個月前的,因為盜號者可以用你密碼在QQ帳戶里查到你最近3個月Q幣消費記錄,填早的更有說服力)

6、你的網路硬碟密碼、通訊錄密碼、QQ帳戶密碼。(這些密碼也很有說服力,我想若不是號碼的主人,就不大可能知道這些了吧。除非你把那些密碼設的和你QQ密碼一樣)

7、如果你是會員,你還可以填寫你QQ的客服電話的VIP服務密碼。

8、該號碼是否做過會員,有的話填上大體的時間。在會員服務期間是否克隆過好友,從哪個號碼克隆的好友(如果有,這個也是個很好的證明)

9、是否向哪個群或QQ游戲家族捐獻過Q幣(有的話,還要填寫群號碼或家族名稱)

10、是否獲得別人贈送的QQ秀或騰訊的一些服務。

11、提供你QQ曾用過的昵稱(要是號碼是你的,以前的昵稱總知道吧,要是不完全記的完整的昵稱,至少也要提供以前昵稱部分「文字」)

12、有QQ寵物的可以填寫自己寵物領取的方式(如:七夕情侶寵物蛋活動、銀行卡支付、好友贈送的或曾經贈送給哪些好友寵物等)

13、是否用QQ夢想地帶的積分換過獎品或某些增值服務(有的話寫清兌換的獎品送於何人或是自己使用)

14、是否申請過藍鑽、紅鑽、黃鑽等業務,並寫上這些服務的獲得方式和時間(如 QQ帳戶支付、手機支付、積分兌換或好友贈送的以及服務開通的大致時間)

15、是否上傳過聊天記錄(這些騰訊公司就有存檔的,是十足的證明資料)

16、如果你是會員的話,是否參加過會員活動。

還有一點重要的------就是大家能申請盡量多申請些業務(大家可能說那需要很多QB,其實免費的也很多)這樣申訴的時候就有更多的資料可寫。

以上只是我的個人的一些見解,大家要是有更好的方法可以拿出來和大家分享。

希望密碼丟失的人都能拿回密碼,如果你覺的這些對你有幫助,幫忙頂一下,好讓更多的人看到,幫助更多的人,謝謝!!!!

建議務必填寫原始密碼、原始資料,也就是剛申請QQ時讓填寫的密碼及昵稱;然後就是對前面所填資料的一個補充描述,如 QQ大約是什麼時間申請的,最早加的幾個好友是誰,歷史密碼大概的設置更改的時間,密碼丟失的情況的一些描述,以及其他一些有效證據的提供。

以上所提供描述的,是我自己當初申訴時所填寫的一寫資料,並不代表按我所填就一定能申訴成功,只是給大家一個借鑒。

最後希望大家都能妥善的保管好自己的QQ,填寫申訴表的時候一定要冷靜、詳細、准確,這樣才能提高申訴成功的機會。

二、盜QQ一法:
一.行動:

2.1.准備工具:
2.1.1.掃空密碼的工具:
這里可以列出很多,如:流光,x-scan,scanipc等
這里特別推薦用scanipc啦,這個工具不錯,可能同步種植你要放進肉雞的木馬。
http://www.20cn.net/cgi-bin/download/down.cgi
這里可以得到!測試版好象比正式版還好。感覺罷了。

2.1.2.偷qq的軟體:
也有很多的,我這里選擇QQ殺手6.8.
http://xinxinyi.yeah.net
這里可以得到。

2.1.3.申請一個免費的郵箱。
你不是想就用自己的用著的吧!隨你啦,不怕死就用啦
我還是建議新申請一個來接收肉雞上發回來的qq和密碼。

2.2.得到一個ip段:
方法還是很多:

2.2.1.你可以裝個能看ip的qq。
得到一個qq上的人的ip,比如你得到qq上的人的ip是211.98.106.3 好,記下先,呆會有用。

2.2.2.也可以查找自己的ip,開始--運行--cmd--ipconfig。

2.2.3.用搜索 ip 。還會沒有嗎?

2.3.掃描同步植入:

2.3.1.添寫ip段:
打開scanipc添上一個從上面或者那裡都行得到的ip,比如是211.98.106.3。
那麼你可以在ip那裡 。
開始行添:211.98.106.1 結束行添:211.98.106.255 這是一個c類,你想多點,就自己添加啦!

2.3.2.添寫同步種植:
2.3.2.1配置qq殺手:
先看看他的說明。
打開資料設置文件--Qqset.exe,不會設置,看看設置範例。
好了配置好了就確定,之後生成一個Msread.dt.
在運行專用捆綁工具--QQbin.exe 來捆綁哪個新生成Msread.dt文件。
捆綁成功後生成SHOWGOOD文件。這個是用於遠程種植的.

2.3.2.2.回到scanipc在木馬那裡:
瀏覽,找到剛才配置後得到的SHOWGOOD文件,同時勾上同步植入

好了,都做好了,現在可以掃描了!多掃幾個網段的.得到空密碼的並自動種植木馬。
累了,玩其他的拉,不過你得到了空密碼也可以玩其他的東西。這么不說啦!

2.4查看郵箱
一段時間後,查看郵箱啦!是不是有不少收獲,別玩太多,積積德。你都玩啊?告訴你我沒玩過,這個是思路那是又寫出來?我前言說了,想讓你明白自己的qq也可以這樣輕易就被別人偷了。

三、安全措施

3.1.空密碼:
此中最大給人利用的地方是administrator沒密碼,或者其他用戶是空密碼。

3.2.弱密碼
有弱密碼,弱密碼就是很容易給人猜到的密碼,有什麼比123 /456/0/1 等密碼簡單呢!

3.3.好的密碼
數字+字母+特殊符號
例如:n1,。
這個密碼隨短,如果你想暴力破解。ok,你慢慢跑吧

3.4.安裝放火牆吧!
這個最簡單,下載個天網,默認設置都可以讓你安全的啦!

破解QQ密碼完全剖析

一. 傳統破解QQ密碼的方法

總是有人以各種各樣的理由找我破解別人的Q密碼,其實我也沒有什麼肯定可以破解的辦法.總結現在破解QQ密碼的手段,第一種是本地盜用,一般是利用木馬或者偽裝程序之類的東西從QQ使用者的機器上獲取用民用工業輸入的密碼.這種方法的缺點是首先要獲取對方主機的許可權,以漏洞或者欺騙的方式進行破解.第二種是遠程破解,掌握了QQ的通信方式就可以用程序模擬QQ到伺服器上進行登錄驗證.然後用字典或者暴力方式來進行破解.由於網路速度等限制原因.這種方法的效率真一般比較低.對於較為復雜的密碼很難破解出來.還有一種方法是通過其他間接的方式,例如破解對方郵箱等,或者騰訊的伺服器有某些漏洞可以導緻密碼泄漏,這我就不得而知了.

其實除了以上這幾種常見的攻擊手段,還有一種以前使用得比較少的方法,那就是通過sniffer來捕獲QQ通信信息.由於QQ所使用的通信協議的特殊性,可以利用捕獲到的信息來窮舉出登錄密碼.由於這種破解是在本地進行的.所以速度要比遠程破解快一些.這種方法比較適合在網吧等地方盜取別人的QQ.

二. QQ通信協議介紹

要通過抓取數據包來破爭QQ密碼.首先要對QQ的通信協議有一定的了解.只是通過抓包來分析的話,工作量是相當巨大的.幸好現在網上有一些開源的QQ項目.例如lumaqq.perl-oicq等.這要關我們就可以輕易了解QQ基本的通信協議了.QQ的通信協議是一套基於二進制數據的自己開發的應用層網路協議.其中使用一些公司的加密演算法.QQ基本通信協議支持udp和tcp兩種基本協議方式.兩種方式的基本數據結構是一樣的.只是tcp包多了一個描述長度的頭部.那麼我們就來看看QQ的登錄過程是怎麼樣.
首先QQ客戶端向伺服器發送一個請求登錄令牌的數據包.伺服器返回登錄令牌.這個令牌是在伺服器端生成的.和客戶端的IP地址,版本信息等數據相關.以後會用到這個令牌去進行其他作.

在QQ客戶端得到登錄令牌之後.就會向伺服器發送一個包含登錄信息的登錄請求.要求登錄.服務順會首先看看客戶端的號碼.I守址和版本是否可以在本伺服器上進行登錄.如果可以的話,就驗證客戶端的登錄信息是否與伺服器上保存的登錄信息進行比較.匹配的就向客戶端返回一個登錄成功的數據包.不匹配返回登錄失敗.因為QQ的伺服器有很多台.可能要分管不同的QQ版本.IP等.所以如果客戶端的號碼.IP地址和版本無法在本伺服器進行登錄.伺服器就返蜀犬吠日一個重定向包.讓客戶端去另外一台伺服器登錄.其實整個QQ登錄過程就是這么簡單的兩個步驟.

了解了QQ登錄的過程後.我們還需要知道具人本的數據包格式.以便解析出我們需要的數據內容.QQ登錄過程的數據包分為頭部.內容和尾部三個部分.其中頭的格式固定為:0x02客戶端版本 命令 序列號 QQ號碼. 其中0x02是1個位元組的標志;客戶端版本2個位元組.用於表示QQ客戶端的版本;命令2個位元組.表示要發送的命令類型.例如請求登錄令牌登錄請求等;序列號是一個2位元組的隨機數,在一次QQ會話中通過它來確認回應包是否對應請求包.QQ客戶端默認每次加1;QQ號碼就是4位元組的QQ號.對於伺服器來說是每個欄位是無所謂的.QQ登錄過程數據包的尾部固定為0x03.

1. 請求登錄令牌包

包內容就是對一次命令的具體信息,對於第一次發送的請求登錄令牌包來說,包命令是0x0062,整個請求包如下所示;

而伺服器返回包則相對復雜一些,如下所示
其中0x18表示登錄令牌的長度,現在QQ默認的登錄令牌長度是0x18.這個令牌是在伺服器端生成的.具體的生成演算法我們當然還無從得知,應該是參考了QQ客戶端的I守址.埠和其他一些信息生成這個令版的,因為你把在A機器上得到的令牌用到B機器上,你就會登錄不了.如果你把A機器上的IP給改了.你照樣也登錄不了.
2. 登錄包.
對於我們嗅探QQ密碼來說,最重要的就是這個登錄包.在這里包含了和QQ密碼相關的信息.登錄包的具體結構如下;

其中初始密鑰是一個16位元組的隨機數,用於本身的加密.這里最重要的就是密碼密鑰加密的一個空字元串.
所謂密碼密鑰就是用QQ口呤進行兩次MD5加密後得到的密文,然後以這個密文作為密鑰去加密一個空字元串,這次加密使用了反饋的TEA演算法,加密結果放在QQ登錄包里,讓伺服器去驗證,由於QQ的加密演算法使用特殊的填充機制使用QQ伺服器可以驗證出用戶密碼是否正確,這個會在後面進行詳細的解釋.QQ登錄包裡面還有一些諸如登錄狀態,登錄令版和很多未知的內容.但是這些對於我們破解QQ密碼來說都沒有什麼太大的作用.
需要特別提到的是,前面的請求登錄令牌包是不加密的,而這個登錄包除了初始密鑰本身以外的部分都要用初始密鑰進行加密,加密演算法同樣是反饋的TEA.
QQ伺服器在收到這個登錄包之後,首先要用初始密鑰解密登錄包後面的部分,如果解密成功,就會用保存在伺服器上的密信息去解密密碼密鑰加密的那個空字元串密文,我現在還不確定QQ伺服器上保存的是密碼明文還是密碼密鑰.猜測是密碼密鑰.這樣伺服器就用密碼密鑰去解密那段16位密文,如果用戶提交的密碼是正確的.才可以解密成功.否則解密函數會返回空,認證就失敗了.當驗證QQ客戶端密碼准確無誤後.就返回一個登錄成功包.格式如下:

三. QQ的加密演算法
了解了上面的QQ登錄的通信協議之後還不足以破解QQ密碼,我們還需要掌握QQ的加密演算法.前面提到了,密碼密鑰是用戶密碼進行兩次MD5加密之後得到的結果.然後再用空個結果作為密鑰使用TEA演算法進行加密.TEA是Tiny Encrypt Arithmetic的縮寫.顧名思義就是一種比較簡單的小型加密演算法.它用一個16位元組的密鑰去加密一個8位元組的明文.得到一個8位元組的密文.也可以反向從密文解密出明文.具體的演算法可以到網上搜索查閱.這里就不在贅述了.
但是QQ使用的TEA雖然是標準的TEA.但是QQ卻使用了一種自己特殊的填充反饋機制,QQ消息被分為多個加密單元.每一個加密單元都是8位元組.使用TEA進行加密.加密結果再作為下一個單元的密鑰.如果明文本身的長度不是8的倍數.那麼還要進行填充.使其成為8的倍數.填充的時候會用一個32位隨機數存放於明文的開始位置.再在明文的最後用0填充為整個長度是8的倍數.由於會向後反饋這樣即使對於相同的明文,因為使用了不同的隨機數.也會產生完全不同的密文.

使用這種特殊的填充反饋演算法所導致的結果就是,一段密文只能用加密它的密鑰進行解密.如果使用不正確的密鑰.就無法得到正確的填充結果.最常見的就是解密後得到的填充數值不是0,這樣就判斷解密失敗.
伺服器正式根據這種機制來確定客戶埠的密碼是否正確的.這也是我們破解QQ密的原理所在.

四. 窮舉破解QQ密碼

有了以上的思路.只要寫出程序就可以實現QQ密碼的破解了.首先是抓包.我使用了winpcap來抓包.這樣在HUB環境下可以抓到所有的QQ包.在交換環境中.我們可以使用一些ARP欺騙工具.同樣可以抓到特定IP所發出的包.還有QQ的加密演算法的實現.參考網上的perl-oicq和lumaqq等代碼也可以輕易實現.然後用字典或者暴力破解的方法對密文進行解密即可.解密的過程用偽代碼表示如下:結果=decrypt(密文,MD5(MD5(密碼))),如果結果不為空的時候就是正確的密碼.

五. 實際破解過程

我寫了一個程序來未例整個破解的過程.由於僅僅是用於示意.程序寫得較為粗糙.加密演算法都沒有進行優化,這樣在破解速度上並不是很快.如果用匯編去實現的話速度還能提高很多.具體的用法是這樣的.

要使用這個程序必需首先安裝winpcap3.0,這樣你才能抓包.安裝完winpcap後,直接運行qqscrak.exe.會出現如圖2所示的界面.

圖3
這樣就開始sciff網路上所有的QQ包了.當有QQ進行登錄的時候,程序會抓到QQ登錄包.下面的密破解按鈕就變為黑色.點擊這個按鈕,進行密碼破解界面,如圖4

[img][/img]
圖4
可以看到QQ號碼和對應的密碼密鑰加密的16位元組密文,我們選擇字典破解.打開相應的字典文件.點擊開始破解,如果你的字典裡麵包含了對方密碼的話就會彈出成功破角對方密碼的對話框.如果試了很多字典都不行.也可以選擇暴力破解.實際上就是窮舉所有8位的字每和數字組合的密碼.但是這種方法比較浪費時間.可能跑幾年也跑池同來對方密碼哦……

QQ網路騙術大曝光

最新案例: 發送虛假郵件騙取QQ資料

實際案例:尊敬的QQ用戶您好:
首先,感謝您對我們的支持與關愛。在過去的6年裡,騰訊和廣大的朋友們一起一步步成長,一起成熟,一起努力,也一直堅持,才有了今天 的成績!2005年我們會提供給大家更方便實用的服務和更貼心的溝通體驗!
由於QQ密碼保護服務在功能上的不完善,加之部分用戶遺忘了早期注冊的密碼保護資料,致使密碼丟失後不能及時取回。為了解決日益嚴重 的號碼被盜問題,最大限度避免木馬病毒等給QQ用戶帶來的傷害。我們將在部分號碼段試行新的實名密碼保護系統(SNPS)。新系統的推出將極大增強您使 用號碼的安全性。會在現有密碼保護基礎上增加以下功能和特性:
1.發現QQ號碼被盜後,使用新的實名安全識別碼在第一時間可以把QQ號碼鎖定。防止盜號者刪除您的好友,更改號碼資料。及時保障您QQ 個人賬戶內Q幣和游戲幣不被轉移和竊取盜用。
2.新系統採用最新的動態特徵碼技術,由於演算法的不可逆加密,徹底杜絕暴力破解等其它因素導致的QQ號碼密碼被盜。即使您遺忘了密碼保 護的回答,找回密碼郵箱已停用仍可以輕松的取回密碼。
3.簡化了密碼被盜後的取迴流程。只一個步驟便可以把密碼輕松重設,同時還可以對密碼進行許可權管理,作簡單快捷,讓您更放心。
新系統最後調試期將在部分號碼段試行。如您收到此封郵件,我們會在確認您是號碼的真正主人後,由系統回執給您號碼唯一對應的實名安全 識別碼。
請確認以下填寫的內容准確性和詳細性,這將是我們判斷該號碼屬於您的重要依據。
※QQ號碼:
※真實姓名:
※身份證號碼:
※聯系電話:
※詳細地址:
※手機號碼:
※QQ原始密碼(申請該QQ號時的第一個密碼):
※QQ歷史密碼(有多少提供多少,請用/隔開):
※證件類型(身份證/軍官證/護照/其它證件/電話號碼):
※證件號碼:
※提示問題:
※問題答案:
※安全信箱:
注意:
1.待填寫完畢(必要時復製表格)發送到我們專門設立的回執實名安全識別碼的加密電郵: [email protected] ,資料確認後系統將及時對您進行回 執。
2.填寫此表格並成功遞交,即表示您保證以上所填內容完全准確,並同意任意一項內容失效均有可能導致喪失權利。請再次確認並務必保證以 上資料的准確性。如果您的資料不正確,我們將不做任何回執也不再另行通知。

閱讀全文

與ctea加密相關的資料

熱點內容
工作三年的大專程序員 瀏覽:728
java畢業設計文獻 瀏覽:143
籌碼集中度指標源碼 瀏覽:482
listsortjava 瀏覽:186
plc閃光電路編程實例 瀏覽:299
socket編程試題 瀏覽:206
華為的伺服器怎麼設置從光碟機啟動 瀏覽:871
程序員真的累嗎 瀏覽:328
學信網app為什麼刷臉不了 瀏覽:874
天蠍vs程序員 瀏覽:996
單片機下載口叫什麼 瀏覽:190
程序員的道 瀏覽:926
雲伺服器不實名違法嗎 瀏覽:558
怎樣查看文件夾圖片是否重復 瀏覽:995
文件怎麼導成pdf文件 瀏覽:808
打開sql表的命令 瀏覽:103
安卓手機如何面部支付 瀏覽:38
天元數學app為什麼登錄不上去 瀏覽:825
明日之後為什麼有些伺服器是四個字 瀏覽:104
安卓系統l1是什麼意思 瀏覽:26