關於foxmail的研究

2021-04-07 04:26:01 字數 2524 閱讀 9108

foxmail的資料儲存,都是由兩個檔案組成 .ind 和 .box的檔案,ind 檔案主要記錄簡單資訊,以及詳細資訊在.box檔案中的起始位置。

預設情況下,foxmail的位址簿由兩個檔案組成,address.ind 和 address.box。

address.ind檔案

檔案頭的範圍為00h-39h,共64個位元組。

05h儲存紀錄的個數,12h-21h記錄位址薄名稱。

記錄部分40h開始是第一條記錄,每條記錄長b0h

每條記錄的00h是記錄號(從01開始順序編號),04h是刪除標記,該位元組為1表明此記錄被使用者刪除(由此可見在foxmail中刪除的資訊沒有被真正的刪除)

05h06h紀錄在.box中的位址如 [05h]=01,[06h]=ea 那麼該項紀錄的詳細資訊被儲存在address.box檔案中起始位置為01fa

09h0ah此記錄在.box檔案中詳細資訊的位元組數目加上156h(記錄整條記錄在box檔案中的總長度)

11h是組記錄,該位元組為1表明此記錄為一條組記錄;(我沒有對此項進行詳細研究)

12h是此項紀錄名稱的長度,最大為20h;

13h-32h是此項紀錄名稱的內容

33h是郵件位址長度,最大為40h

34h-73h是郵件位址內容

address.box檔案

每條記錄由「_____________s」開始,後加一回車符(0a0d)

緊接著是詳細資訊,分別由以下幾項組成(按順序排列)

emails

mobile

pagernum

oicq

icqhomepage

***birthday

fmcountry

fmprovince

fmcity

fmpostcode

fmstreetaddr

hometel

hometel2

fmfax

company

ofcountry

ofprovince

ofcity

postcode

homeaddress

ofhomepage

ofposition

ofdepartment

officetel

officetel2

fax構造格式:名稱 + 冒號 + 0a0d + 資訊內容 + 0a0d

最後一項構造完成 要加入2個 0a0d

例項1:

bool goall(char *szfilenameofind)

char headbuf[0x41];        // 頭buf

char recbuf[0xb1];           // 內容buf

file* pf=fopen(szfilenameofind,"rb");

fseek(pf,0x40,seek_set);        // 到專案開始

while(!feof(pf))

if(recbuf[0x11]==1)                     // 判斷組標誌

for(i=0;i

for(i=0;i

//此處新增處理name(收件人名),email(收件人位址)的程式

return true;

}例項2:

向位址簿中新增一條記錄資訊,沒有給出全部**。

1.      得到檔案頭

bool getindfilehead(char* szheadbuf)         // 得到檔案頭部的函式

2.      修改專案數;

int itemcount=szheadbuf[0x5];

itemcount++;

szheadbuf[0x5]=itemcount; 

3.      修改專案代號

szbuf[0x0]=itemcount;

4.      建立專案名稱

szbuf[0x12]=strlen(stritemname);

for(i=0;i<0x20;i++)

szbuf[i+0x13]=stritemname[i];

5.      建立專案email

szbuf[0x33]=strlen(stremails);

for(i=0;i<0x40;i++)

szbuf[i+0x34]=stremails[i]; 

6.      構造box檔案buf

(略)7.      建立專案對box檔案指標

char* pbuf=szbuf;

pbuf++;

short* pshbuf=(short*)pbuf;

pshbuf[0x2]=point;

8.      建立專案字數值

long len=strlen(szboxbuf) 

len+=0x156; 

9.      儲存ind和box檔案

關於overflow hidden的研究

示例頁面原始碼 當外層div設定overflow hidden屬性,內層div設定了float left,如果同時寬度超過外層div,會自動擷取內層div width,以適合外層width.nei wai 另外,我們再做乙個試驗,將wai這個div的高度值刪除後,我們發現,wai的高度自動的被nei...

關於Intent的研究

先翻譯官方文件關於intent的概述 intent是乙個描述即將發生操作的抽象類。它可以用在startactivity,啟動n broadcastintent,向特定的broadcastreceiver傳送廣播,啟動服務以及在服務之間進行資訊互動。intent提供了乙個在兩個應用之間進行互動的方式,...

關於素數的研究

首先需要講的是這篇文章,太精闢了 1.最簡單的求素數 bool isprime int primes,int n 2.得到乙個素數表 構造素數序列primes void makeprimes int primes,int num if flag primes cnt i 如上是得到乙個純素數表,而使...