當前位置:妙知谷 >

遊戲數碼 >電腦 >

msg2.0.db破解步驟

msg2.0.db破解步驟

還在為怎麼破解的朋友注意,本篇分享有詳細説明。

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");}}

特別提示

因本篇分享所造成的損失與作者無關。

標籤: msg20db 破解
  • 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/sm/diannao/11356.html