msg2.0.db破解步驟
還在爲怎麼破解的朋友注意,本篇分享有詳細說明。
操作方法
(01) 破解步驟(研究學習用途)-Alex 分類: 計算機 2009-12-23 09:52步驟簡短,看不懂的,本人不提供支援。本人原創。純研究,用於黑客或商業用途,請別聯繫我。,這個東西真麻煩,不象之前的msgex那麼容易破解。下面簡短陳述。看的懂得拿走,看不懂的自己想。如果你連是什麼都不知道,那就別往下看了。你肯定看不懂。更浪費時間。1.需要:7-zip,DBcompresser或者Paradox (Paradox用起來麻煩需要library,推薦DBC)2 用7—zip釋放你需要破解得。 得到buddy,discuss,group,mobile,system這5個檔案夾。以及 , , 這3個加密的dat檔案。3 需要你自己的msg2.0 並且釋放。得到buddy,discuss,group,mobile,system這5個檔案夾。以及 , , 這3個加密的dat檔案。注:buddy是重點,其餘的檔案夾缺失,沒有關係。4 開啟需破解的buddy檔案夾,裏面就是很多QQ號碼組成的檔案夾。再任意開啟其中一個看到,, 三個dat檔案。 將自己的 複製到需破解buddy檔案夾下。根據號碼複製自己需要的。當然,你也可以全部複製。5 把7-zip 釋放的3個你自己的dat檔案,既 , , 覆蓋到需破解的msq2.0檔案夾中。(卻一不可)6 用DBcompresse組合檔案,重命名爲,默認儲存路徑爲C:gainover 。放入userXXXX裏面。(DOS可以直接combine,這個我沒研究,看到有人研究過)7 用複製合成的msg2.0 登陸自己的號碼,就能直接看到其中記錄。目標人一般在你的黑名單或已刪除聯繫人中。8 破解完畢。享受吧。該哭的哭,該笑的笑。如果你懂java.可以直接破解dat,算法已有。還有,別以爲這些buddy裏面的dat很容易破解。Passware Kit 沒有破出來,想破殼的人...繞道吧...感謝朋友DiLi,提供 qq2009 VB結構。以下是 分析圖。如果需要檢視內容的話,用IStorage::OpenStream函數就可以開啟,這裏不多說。// : Defines the entry point for the console application.//#include "stdafx.h"#include "objidl.h"#include "comdef.h"void PrintDB(IEnumSTATSTG *pEnum,IStorage *pStore,int Depth){STATSTG statstg;while(NOERROR == pEnum->Next(1,&statstg,NULL)){for(int i=0;i<Depth;i++)printf("t|");wprintf(_T("---%sn"),Name);if( == STGTY_STORAGE){IStorage *pStore1=NULL;HRESULT hr;hr=pStore->OpenStorage(Name,NULL,STGM_READ|STGM_DIRECT|STGM_SHARE_EXCLUSIVE,NULL,0,&pStore1);if(hr != S_OK || pStore1==NULL){wprintf(_T("open %s errorn"),Name);continue;}IEnumSTATSTG *pEnum1=NULL;pStore1->EnumElements(0,NULL,0,&pEnum1);PrintDB(pEnum1,pStore1,Depth+1);pEnum1->Release();pStore1->Release();}}}int _tmain(int argc, _TCHAR* argv[]){wchar_t szFileName[]=_T("E:下載儲存XXXX"//換成你的QQ);::CoInitialize(NULL);IStorage *pStore=NULL;IStream *pStream=NULL;HRESULT hr=E_FAIL;hr=::StgOpenStorage(_bstr_t(szFileName),NULL,STGM_READ|STGM_DIRECT|STGM_SHARE_EXCLUSIVE,NULL,0,&pStore);if(hr != S_OK || pStore==NULL){printf("open failedn");return 0;}IEnumSTATSTG *pEnum=NULL;hr = pStore->EnumElements(0,NULL,0,&pEnum );if(hr != S_OK || pStore==NULL){printf("enumerate failedn");return 0;}PrintDB(pEnum,pStore,0);pEnum-> Release();pStore->Release();return 0;}輸出結果---buddy|---8362xx| || || ||---169329xx| || || |---group|---2048838xx| || || ||---2049667xx| || || |---mobile---system|---1| || ||---3| || ||---4| || |以下是JAVA。package com;import ;import InputStream;import NotFoundException;import OutputStream;import ception;/*** Decry * @author rmb* 2008-08-07*/public class LoginUinListDecry {FileOutputStream fw = null;FileInputStream fr = null;boolean isFileEnd = false;int[] ascii = ;/*** init Decry,Encry file handle* @return*/public int initFile(){int result = -1;try {fw = new FileOutputStream((new File("LoginUinList_")));fr = new FileInputStream((new File("")));result = 1;} catch (FileNotFoundException e) {result = -1;tStackTrace();}return result;}/*** Judge file effectiveness* @return*/public int isEffectHead(){int result = -1;try{if(fr!=null){byte[] byte_head = new byte[13];(byte_head);if(byte_head[0] == 0x51 && byte_head[1] == 0x41 ){ //&& byte_head[4] == 0x0Eresult = 1;}if(result>0){(new byte[6]);}}}catch(Exception e){result = -1;tStackTrace();}return result;}/*** decry LoginUinList data* @param key* @param orig_Data* @return*/public byte[] decryData(byte key,byte[] encry_Data)/* mov dl, byte ptr [ecx+esi]* not dl* xor dl, al* mov byte ptr [ecx+esi], dl*/byte single_Data;for(int i=0;i<encry_th;i++){single_Data = encry_Data[i];single_Data = (byte)(~single_Data);single_Data = (byte)(single_Data^key);encry_Data[i] = single_Data;return encry_Data;}public byte[] getEncryData(byte encryDataLength){byte[] encryData = new byte[encryDataLength];int read_num = 0;try {read_num = (encryData);if(read_num!=th){isFileEnd = true;}return encryData;} catch (IOException e) {tStackTrace();}return null;}public byte[] getKeyField(int length){int read_num = 0;if(fr!=null){byte[] keyField = new byte[length];try {read_num = (keyField);if(read_num!=th){isFileEnd = true;}return keyField;} catch (IOException e) {tStackTrace();return null;}}return null;}public byte getKey(byte[] KeyField){byte key;key = KeyField[1];return key;}public byte getKeyDataValue(byte[] KeyField){byte key;key = KeyField[0];return key;}public boolean isNeedDecry(byte key){int int_key = (int)key;if(int_key<5){return false;}return true;}public boolean isNeedJump(byte[] KeyField){if(KeyField[0]==0x09){return true;}return false;}public byte[] trunAround(byte[] DateValue){byte[] temp = new byte[th];for(int i=0;i<th;i++){temp[i] = DateValue[th-i-1];}return temp;}public int writeData(byte[] decryData){try{e(decryData);return 1;}catch(Exception e){tStackTrace();}return -1;}public int writeDataString(byte[] decryData){try{int height = 0;int down = 0;for(int i=0;i<th;i++){height = ((decryData[i]&240)>>4);if(height<0){height = 0;}down = (decryData[i]&15);if(down<0){down = 0;}e(ascii[height]);e(ascii[down]);}return 1;}catch(Exception e){tStackTrace();}return -1;}public void fileFlush(){try {h();} catch (IOException e) {tStackTrace();}}public void jump(){try {(new byte[8]);} catch (IOException e) {tStackTrace();}}public int run(){int result = -1;byte[] keyField;byte key;byte[] decryData;byte[] encryData;if(initFile()>0){if(isEffectHead()>0){while(!isFileEnd){result=-1;keyField = getKeyField(3);if(keyField==null) break;if(isNeedJump(keyField)){jump();writeData(new byte[]);//block linecontinue;}key = getKey(keyField);encryData = getEncryData(key);if(encryData==null) break;decryData = decryData(key,encryData);writeData(decryData);writeData(new byte[]);//:keyField = getKeyField(4);if(keyField==null) break;key = getKeyDataValue(keyField);encryData = getEncryData(key);if(encryData==null) break;if(isNeedDecry(key)){decryData = decryData(key,encryData);decryData = trunAround(decryData);}else{decryData = trunAround(encryData);}writeDataString(decryData);writeData(new byte[]);//break linefileFlush();result=1;}}destroy();}return result;}/*** destroy* @return*/public int destroy(){int result = -1;try{if(fw!=null){e();}if(fr!=null){e();}result = 1;}catch(Exception e){result = -1;tStackTrace();}return result;}public static void main(String[] args) {LoginUinListDecry ListDecry = new LoginUinListDecry();if(()>0){tln("Decry Success");}else{tln("Decry Fail");}}
特別提示
因本篇分享所造成的損失與作者無關。
-
stdole32.tlb丟失或損壞怎麼辦
Excel是我們辦公時候最常用的辦公軟件之一,但是有些win7專業版用戶在使用Excel的過程中出現了“某個對象程序庫丟失或損壞”的警告,這究竟是怎麼回事呢?雖然有這個錯誤提示,但是Excel大部分功能還是可以正常使用的。下面由小編給大家介紹一下丟失或損壞的解決方法...
-
怎麼修改檔案的後綴名?
對於對計算機不是很瞭解的朋友,有時候可能會面臨不知道怎麼修改檔案後綴名的難題,比如後綴名被隱藏了、修改了後綴名但是不知道怎麼用等等。下面就爲大家介紹怎麼修改檔案的後綴名(以後綴修改爲後綴爲例):操作方法(01)新建一個要用的檔案,如果已經有了就找到你需要修改...
-
截圖的快速鍵是什麼-怎麼截圖
使用鍵盤中的PrintScrSysrq鍵實現全屏截圖(01)PrintScrSysrq鍵,其位於鍵盤的右上方,如圖所示,按下此鍵,就可以實現在當前屏幕上全屏截圖,也就是可以截圖我們所看到的顯示器所有介面。使用Alt+PrintScreenSysRq鍵實現活動截圖(01)同時按下鍵Alt+PrintScreenSysRq鍵即可完...
-
如何製作PPT母版
PPT的母版是一個很實用的製作課件的功能,母版即一次設定好幻燈片的樣式,包括文字格式、背景等,就可以全部應用於整個幻燈片,使整個幻燈片的風格統一、美觀,如果要修改幻燈片的樣式就在母版裏進行修改,這樣既省事又省力,在這裏就以PowerPoint2007爲例來講一下製作的步...