999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

iPhone短信刪除數(shù)據(jù)恢復(fù)方法的研究

2015-05-15 10:10:48張開翔周安民
現(xiàn)代計(jì)算機(jī) 2015年1期
關(guān)鍵詞:數(shù)據(jù)庫(kù)結(jié)構(gòu)

張開翔,周安民

(四川大學(xué)電子信息學(xué)院,成都 610064)

iPhone短信刪除數(shù)據(jù)恢復(fù)方法的研究

張開翔,周安民

(四川大學(xué)電子信息學(xué)院,成都 610064)

SQLite是一款輕型的數(shù)據(jù)庫(kù)引擎,資源耗損低、運(yùn)行速度快、功能強(qiáng)大、支持Windows/Linux/UNIX等主流的操作系統(tǒng),被廣泛應(yīng)用于通信錄、通話記錄、手機(jī)短信、QQ聊天記錄等多種應(yīng)用中。通過(guò)分析iOS系統(tǒng)SQLite數(shù)據(jù)庫(kù)的文件格式和數(shù)據(jù)記錄的尋址方式,提出一種iPhone手機(jī)刪除短信的恢復(fù)方法。結(jié)果表明,這種恢復(fù)刪除數(shù)據(jù)的方法可以用于恢復(fù)iPhone短信數(shù)據(jù)庫(kù)中的文本數(shù)據(jù)。

SQLite;iOS系統(tǒng);文件格式;數(shù)據(jù)恢復(fù)

0 引言

隨著終端設(shè)備和移動(dòng)通信技術(shù)的發(fā)展,智能手機(jī)逐漸成為人們生活與工作中的必備工具。它擁有獨(dú)立的操作系統(tǒng),市面上流行的操作系統(tǒng)主要有iOS、Android、Windows Phone等。而iPhone憑借其精美的工藝設(shè)計(jì)和穩(wěn)定的系統(tǒng)性能成為最暢銷的智能手機(jī)。

與此同時(shí),手機(jī)犯罪也應(yīng)運(yùn)而生,手機(jī)取證成為打擊該類犯罪的科學(xué)手段。在涉及手機(jī)取證的案件中,嫌疑人通常會(huì)將與案件有關(guān)的重要信息刪除,而這些短信卻是跟蹤案件進(jìn)展的關(guān)鍵推動(dòng)點(diǎn)。鑒于新形勢(shì)下的迫切需要,提取智能手機(jī)的電子數(shù)據(jù)正逐步成為電子取證領(lǐng)域新的研究方向和熱點(diǎn)。本文結(jié)合實(shí)際情況,提出了基于SQLite內(nèi)部機(jī)制解析的iPhone手機(jī)短信提取和恢復(fù)的方法。

1 SQLite數(shù)據(jù)庫(kù)

SQLite是一款輕量級(jí)嵌入式的關(guān)系型數(shù)據(jù)庫(kù),特點(diǎn)是操作簡(jiǎn)單、性能可靠以及可移植性好,目前在iOS、Android等手機(jī)操作系統(tǒng)中被廣泛使用。

1.1 物理結(jié)構(gòu)

SQLite數(shù)據(jù)庫(kù)文件由固定大小的“頁(yè)”組成,默認(rèn)大小為1024個(gè)字節(jié)(1KB)。頁(yè)大小可以在數(shù)據(jù)庫(kù)剛剛創(chuàng)建時(shí)設(shè)置,數(shù)據(jù)庫(kù)對(duì)象一旦創(chuàng)建該值就無(wú)法更改。

頁(yè)的類型主要有三種,分別是Btree頁(yè)、空閑頁(yè)和溢出頁(yè),Btree頁(yè)又可以是B-tree頁(yè)或B+tree頁(yè)。每種Btree頁(yè)又區(qū)分為內(nèi)部頁(yè)或葉子頁(yè)。此外,所有的數(shù)據(jù)庫(kù)文件中必然包含Btree頁(yè)。

(1)頁(yè)頭

從邏輯上來(lái)說(shuō),一個(gè)SQLite數(shù)據(jù)庫(kù)文件由多個(gè)多重Btree構(gòu)成。每個(gè)Btree存儲(chǔ)一個(gè)表的數(shù)據(jù)或索引,索引常用B-tree結(jié)構(gòu),而表數(shù)據(jù)采用B+tree結(jié)構(gòu)。每個(gè)Btree占用至少一個(gè)完整的頁(yè),每個(gè)頁(yè)是Btree的一個(gè)結(jié)點(diǎn)。每個(gè)表或索引的第1頁(yè)稱為根頁(yè),所有表或索引的根頁(yè)編號(hào)都存儲(chǔ)在系統(tǒng)表sqlite_master中,表sqlite_master的根頁(yè)為Page 1。它位于文件中前100字節(jié),所以也叫數(shù)據(jù)庫(kù)文件頭。數(shù)據(jù)庫(kù)文件頭結(jié)構(gòu)如表1所示。

(2)Btree頁(yè)

Btree頁(yè)主要由頁(yè)頭、單元指針、未分配空間、單元內(nèi)容區(qū)域、保留區(qū)域組成,頁(yè)結(jié)構(gòu)見表2所示。

對(duì)于內(nèi)部頁(yè),Btree頁(yè)頭占12個(gè)字節(jié)。對(duì)于葉子頁(yè),Btree頁(yè)頭占8個(gè)字節(jié)。Btree頁(yè)頭的結(jié)構(gòu)組成如表3所示。

表1 SQLite數(shù)據(jù)庫(kù)文件頭結(jié)構(gòu)

表2 Btree頁(yè)結(jié)構(gòu)

表3 Btree頁(yè)頭結(jié)構(gòu)

1.2 SQLite刪除數(shù)據(jù)庫(kù)恢復(fù)原理

手機(jī)中的數(shù)據(jù)通過(guò)數(shù)據(jù)庫(kù)瀏覽器可直接查看,而已刪除的手機(jī)數(shù)據(jù)卻無(wú)法看到。如果已刪除數(shù)據(jù)所在頁(yè)面存在未被刪除數(shù)據(jù),刪除數(shù)據(jù)區(qū)域只是變成了freeblock塊而并未被真正刪除,數(shù)據(jù)庫(kù)文件大小也未變,就有可能對(duì)其進(jìn)行恢復(fù)。所以對(duì)SQLite數(shù)據(jù)庫(kù)文件結(jié)構(gòu)進(jìn)行分析是恢復(fù)已刪除數(shù)據(jù)的前提。圖1是Btree頁(yè)樹形結(jié)構(gòu),根頁(yè)和內(nèi)部頁(yè)主要用于導(dǎo)航,其頁(yè)的指針域都是指向葉子頁(yè)的指針,而所有的數(shù)據(jù)記錄都存儲(chǔ)在葉子頁(yè)中,包括刪除的數(shù)據(jù)。

在邏輯層,數(shù)據(jù)都存儲(chǔ)在數(shù)據(jù)庫(kù)的表結(jié)構(gòu)中。而在物理層,Btree樹形結(jié)構(gòu)又是由基本的頁(yè)組成,因而數(shù)據(jù)最終存放在各頁(yè)中?;謴?fù)的具體過(guò)程:

(1)確定被刪除的數(shù)據(jù)所在表名。

(2)通過(guò)sqlite_master系統(tǒng)表查找該表的根頁(yè)。

(3)按照Btree頁(yè)的樹形結(jié)構(gòu),遍歷所有節(jié)點(diǎn),找到內(nèi)部頁(yè)和葉子頁(yè)。

(4)分析葉子頁(yè)的頁(yè)頭結(jié)構(gòu),提取出葉子頁(yè)中freeblock自由塊的數(shù)據(jù)。

圖1 Btree樹形結(jié)構(gòu)

2 數(shù)據(jù)恢復(fù)與提取過(guò)程

2.1 提取短信

數(shù)據(jù)恢復(fù)的首要步驟就是提取出iPhone手機(jī)中的短信,越獄系統(tǒng)中短信路徑是/private/var/mobile/Library/SMS/sms.db,再根據(jù)SQLite的數(shù)據(jù)格式進(jìn)行靜態(tài)分析和數(shù)據(jù)恢復(fù)。目前,提取iPhone數(shù)據(jù)的方法主要有以下3種:iTools的高級(jí)備份、ssh-client遠(yuǎn)程登錄、手機(jī)助手提取。iTools的超級(jí)備份操作簡(jiǎn)單,而且無(wú)需手機(jī)越獄,可以直接提取出sms.db文件,本文使用的就是這種方法。具體的導(dǎo)出過(guò)程如圖2所示。

圖2 iTools提取手機(jī)短信

2.2 數(shù)據(jù)恢復(fù)

(1)定位刪除數(shù)據(jù)

①查找被刪除數(shù)據(jù)的表名

要想恢復(fù)被刪除的短信內(nèi)容,首先需要確定被刪除數(shù)據(jù)的表名。由于SQLite是開放型的數(shù)據(jù)庫(kù),通過(guò)數(shù)據(jù)庫(kù)命令行工具或軟件查閱器都能獲取到sms.db中的表名和其基本信息。在DOS命令行下查看數(shù)據(jù)庫(kù)文件使用.schema命令查看數(shù)據(jù)庫(kù)中的表。另外,使用SQLite Database Browser也可以看到數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),具體情況如圖3所示。無(wú)論是從命令規(guī)則還是表的內(nèi)容都可以斷定message表用以存放短信內(nèi)容。

圖3 sms.db文件表信息

②定位刪除數(shù)據(jù)所在表的根頁(yè)

SQLite數(shù)據(jù)庫(kù)中每個(gè)表的第一頁(yè)稱為根頁(yè),所有表的根頁(yè)編號(hào)都存儲(chǔ)在系統(tǒng)表sqlite_master中,它保存了數(shù)據(jù)庫(kù)的schema信息。具體做法是將提取的sms.db用二進(jìn)制工具將其打開,分析文件頭的數(shù)據(jù)信息,找到頁(yè)的大小。然后根據(jù)系統(tǒng)表sqlite_master的rootpage字段中找到表的根頁(yè),根頁(yè)的起始地址=頁(yè)的大小*(根頁(yè)-1)。另外,在SQLite命令行下鍵入“select rootpage from sqlite_master where name="message"”也可以得到表的根頁(yè),操作方法如圖4所示。

圖4 SQLite命令行下查看表根頁(yè)

③遍歷Btree頁(yè)的所有內(nèi)部頁(yè)和葉子頁(yè)

SQLite數(shù)據(jù)庫(kù)中表數(shù)據(jù)通常采用B+tree結(jié)構(gòu),數(shù)據(jù)只存在于葉子頁(yè)上,內(nèi)部頁(yè)只存儲(chǔ)導(dǎo)航信息。B+tree所有的葉子頁(yè)都在同一層上,并按關(guān)鍵字排序,所有的關(guān)鍵字必須唯一,其邏輯結(jié)構(gòu)舉例如圖5所示。

圖5 Btree邏輯結(jié)構(gòu)圖

B+tree中根頁(yè)和內(nèi)部頁(yè)都是用來(lái)導(dǎo)航的,它們的指針域都是指向下級(jí)頁(yè)的指針,數(shù)據(jù)域僅僅包含關(guān)鍵字。所有的數(shù)據(jù)庫(kù)記錄都存儲(chǔ)在葉子頁(yè)內(nèi)。在葉節(jié)點(diǎn)一級(jí),頁(yè)和頁(yè)內(nèi)的單元都是按照關(guān)鍵字的順序排列的,所以B+tree可以沿水平方向遍歷。圖6是內(nèi)部頁(yè)的邏輯結(jié)構(gòu)。

圖6 內(nèi)部頁(yè)邏輯結(jié)構(gòu)

內(nèi)部頁(yè)包含N個(gè)關(guān)鍵值(Key(0)~Key(N-1))和N+1個(gè)子頁(yè)指針(Ptr(0)~Ptr(N)),其值為子頁(yè)的頁(yè)號(hào)。其中,Ptr(N)存儲(chǔ)在頁(yè)頭中偏移為8的地方。其他的每對(duì)子頁(yè)指針和關(guān)鍵值(Ptr(i)和Key(i))組成1個(gè)單元,共N個(gè)單元。Ptr(i)所指向子樹中關(guān)鍵字的最大值≤Key(i),Ptr(N)所指向子樹中關(guān)鍵字的值都〉Key(N-1)。

將提取的sms.db用010EdiTor打開,圖7所示為依據(jù)根頁(yè)找到的內(nèi)部B+tree頁(yè)的16進(jìn)制數(shù)據(jù)流。首字節(jié)0x5表示本頁(yè)是B+tree內(nèi)部頁(yè),偏移3字節(jié)后0x002c表示本頁(yè)的單元數(shù)為44個(gè),0xf1a表示單元內(nèi)容區(qū)的起始地址。偏移12字節(jié)開始從0xffb~0xf1a為44個(gè)葉子頁(yè)的指針數(shù)組的偏移。

圖7 B+tree內(nèi)部頁(yè)頭數(shù)據(jù)

以本頁(yè)首個(gè)單元內(nèi)容區(qū)為例,其偏移量為0xf1a,則實(shí)際地址為0x4f1a,具體的數(shù)據(jù)流信息如圖8所示。每個(gè)單元內(nèi)容區(qū)由兩部分組成,4個(gè)字節(jié)的頁(yè)號(hào)和1個(gè)字節(jié)的關(guān)鍵字。0x52是其葉子頁(yè)的頁(yè)號(hào)。關(guān)鍵字是0x68,說(shuō)明葉子頁(yè)中的關(guān)鍵字均小于0x68。

圖8 B+tree內(nèi)部頁(yè)單元內(nèi)容區(qū)

(2)提取和恢復(fù)數(shù)據(jù)

當(dāng)確定好message表的所有葉子頁(yè)后,表中全部的數(shù)據(jù)信息就存儲(chǔ)在其中了,結(jié)合頁(yè)頭的控制字段就能定位到該頁(yè)的自由塊的數(shù)據(jù),然后轉(zhuǎn)換成UTF-8的編碼方式就能提取和恢復(fù)出被事務(wù)臺(tái)刪除的短信。

根據(jù)B+tree的頁(yè)面結(jié)構(gòu),頁(yè)面中所有的數(shù)據(jù)都存儲(chǔ)在單元內(nèi)容區(qū)。從事務(wù)臺(tái)刪除的短信其實(shí)仍然存在于數(shù)據(jù)庫(kù)文件中,只是它們已經(jīng)被標(biāo)記成自由塊。只要該頁(yè)存在未被刪除的數(shù)據(jù),自由塊的偏移量就會(huì)填充到頁(yè)頭的相應(yīng)字段中。因此,提取被刪除的數(shù)據(jù)關(guān)鍵在于定位這些自由塊的位置,然后結(jié)合單元內(nèi)容區(qū)的格式提取出被刪除數(shù)據(jù)。某葉子頁(yè)的頁(yè)頭數(shù)據(jù)如圖9所示。

圖9 葉子頁(yè)頭部數(shù)據(jù)

在該頁(yè)中,首個(gè)freeblock塊的偏移量是0xd22,該數(shù)據(jù)庫(kù)的頁(yè)大小為0x1000字節(jié),當(dāng)前頁(yè)的編號(hào)為0x4b,那么freeblock的實(shí)際地址=0x1000*0x4b+0xd22 =0x4bd22,查看該地址處數(shù)據(jù)如圖10所示。

圖10 自由塊數(shù)據(jù)流

圖中標(biāo)藍(lán)的部分就是要提取的刪除的數(shù)據(jù)。單元的前2個(gè)字節(jié)指向下一個(gè)空閑塊,此處值為0,表示該頁(yè)中僅有當(dāng)前自由塊。后兩個(gè)字節(jié)為0x02de,表示該自由塊的大小,同時(shí)包含這兩個(gè)字節(jié)本身。從0x0055開始起為被刪除數(shù)據(jù)的存儲(chǔ)區(qū)。

葉子頁(yè)中,單元是可變的字符串,且每個(gè)單元包含一個(gè)payload,payload的具體格式如表4所示:

表4 payload的具體格式

每個(gè)payload主要分成兩部分。第1部分是記錄頭,由N+1個(gè)可變長(zhǎng)整數(shù)組成,N為記錄中的字段數(shù)。第1個(gè)可變長(zhǎng)整數(shù)(header-size)的值為記錄頭的字節(jié)數(shù)。跟著的N個(gè)可變長(zhǎng)整數(shù)與記錄的各字段一一對(duì)應(yīng),表示各字段的數(shù)據(jù)類型和寬度。header-size的值包括header-size本身的字節(jié)和Type1~TypeN的字節(jié)。Data1~DataN為各字段數(shù)據(jù),與Type1~TypeN一一對(duì)應(yīng),類型和寬度由Type1~TypeN指定。

對(duì)刪除數(shù)據(jù)的16進(jìn)制數(shù)據(jù)流進(jìn)行UTF-8解碼,轉(zhuǎn)換成文本漢字如圖11所示。

圖11 還原后的短信文本

3 實(shí)驗(yàn)方法對(duì)比

為驗(yàn)證本文恢復(fù)方法的有效性,將通過(guò)實(shí)驗(yàn)對(duì)比來(lái)進(jìn)行論證。一種方式是暴力提取法,結(jié)合目前流行的蘋果手機(jī)數(shù)據(jù)恢復(fù)軟件和底層數(shù)據(jù)庫(kù)或鏡像文件,恢復(fù)出被手機(jī)終端刪除的短信。另一種方法就是本文提出的邏輯提取法,在充分解析數(shù)據(jù)庫(kù)的文件格式基礎(chǔ)上,定位到刪除數(shù)據(jù)對(duì)應(yīng)區(qū)域再進(jìn)行提取和恢復(fù)。實(shí)驗(yàn)中使用的手機(jī)是iPhone 4,操作系統(tǒng)版本為iOS 7.1.2,另外使用SQLite數(shù)據(jù)庫(kù)瀏覽器、010EdiTor以及蘋果手機(jī)數(shù)據(jù)恢復(fù)軟件作為輔助,并且事先已通過(guò)手機(jī)終端刪除了24條短信。

3.1 暴力恢復(fù)

暴力提取法是通過(guò)蘋果手機(jī)數(shù)據(jù)恢復(fù)軟件對(duì)短信文件進(jìn)行分析,然后根據(jù)分析結(jié)果從短信文件暴力中搜索頭三個(gè)關(guān)鍵字,找到后將該條短信內(nèi)容全部提取出來(lái)。

(1)使用蘋果手機(jī)數(shù)據(jù)恢復(fù)軟件分析sms.db,重點(diǎn)查看被刪除的短信。圖12是分析結(jié)果,包含正常短信和刪除短信的信息。其中刪除短信項(xiàng)僅顯示前三個(gè)關(guān)鍵字。

圖12 蘋果手機(jī)數(shù)據(jù)恢復(fù)軟件分析sms.db結(jié)果

(2)使用notepad++打開sms.db,將編碼格式設(shè)置成UTF-8,根據(jù)上步操作查找到的被刪除短信的頭三個(gè)關(guān)鍵字在短信文件中進(jìn)行搜索,一旦匹配成功就提取出全部文本信息,搜索過(guò)程如圖13所示。

圖13 notepad++搜索關(guān)鍵字樣例

圖14 邏輯法恢復(fù)的刪除短信結(jié)果

圖14顯示了用notepad++搜索關(guān)鍵字的樣例結(jié)果,通過(guò)這種暴力搜索的方式找到了蘋果手機(jī)數(shù)據(jù)恢復(fù)工具分析結(jié)果中被刪除短信的全部文本信息。即說(shuō)明該工具的數(shù)據(jù)恢復(fù)功能是可行的,最大程度恢復(fù)了17條被刪除短信。

3.2 邏輯恢復(fù)

邏輯提取法是通過(guò)對(duì)數(shù)據(jù)庫(kù)文件格式進(jìn)行充分解析后,依據(jù)其樹形結(jié)構(gòu)并以SQLite數(shù)據(jù)庫(kù)工具為輔,依次定位到短信數(shù)據(jù)頁(yè)、被刪除單元入口以及有效載荷所在的數(shù)據(jù)區(qū)域,然后對(duì)有效載荷的結(jié)構(gòu)進(jìn)行解析后提取被刪除短信的基本信息。具體的提取方法如前,圖14是被刪除短信的恢復(fù)結(jié)果。

3.3 性能對(duì)比

從表5的數(shù)據(jù)可知,邏輯恢復(fù)比暴力恢復(fù)的性能更高。對(duì)于被刪除的24條短信,實(shí)際恢復(fù)了17條,暴力法的恢復(fù)率是70.83%。而本文提出的邏輯法的恢復(fù)率則是20,對(duì)于被刪除的24條短信,邏輯法的恢復(fù)率是83.33%。

表5 恢復(fù)性能的對(duì)比

總之,由恢復(fù)結(jié)果對(duì)比分析得出:本文提出的邏輯恢復(fù)法可以對(duì)短信數(shù)據(jù)庫(kù)文件中現(xiàn)有的信息、刪除的信息進(jìn)行更為準(zhǔn)確的獲取,恢復(fù)率優(yōu)于暴力提取法。

4 結(jié)語(yǔ)

綜上所述,通過(guò)對(duì)SQLite數(shù)據(jù)庫(kù)文件格式進(jìn)行分析,能夠恢復(fù)出iPhone手機(jī)被刪除的短信。本文詳細(xì)研究了Btree頁(yè)邏輯結(jié)構(gòu)、單元結(jié)構(gòu)、payload結(jié)構(gòu),并結(jié)合iPhone手機(jī)短信為例恢復(fù)刪除的文本記錄。此方法同樣適用于Andriod或其他系統(tǒng)上SQLite數(shù)據(jù)庫(kù)文件的文本數(shù)據(jù)恢復(fù),包括電話薄、通話記錄、QQ聊天記錄和微信聊天記錄等,為其他基于SQLite的手機(jī)數(shù)據(jù)恢復(fù)工作提供了參考。

[1] 張婷,張輝極.智能手機(jī)安全問(wèn)題及防護(hù)激素和分析[J].信息網(wǎng)絡(luò)安全,2011,12

[2] 張明旺.基于手機(jī)的電子證據(jù)獲取技術(shù)研究[J].電腦知識(shí)與技術(shù),2012,13(8):3093~3095 [3]姚偉,沙晶.Andriod智能手機(jī)的取證[J].中國(guó)司法鑒定,2012(1):45~49

[4] 高峰.iPhone手機(jī)取證的應(yīng)用研究[J].警察技術(shù),2011,5

[5] 張志偉.MTK手機(jī)Flash芯片文件系統(tǒng)恢復(fù)研究[J].信息網(wǎng)絡(luò)安全,2011,11

[6] 伍國(guó)良.數(shù)據(jù)存儲(chǔ)及恢復(fù)的基本原理[J].今日科苑,2008(18):171~172

[7] 蘇芊.iOS終端數(shù)字取證研究[D].上海:上海交通大學(xué),2012

[8] 田亞成.智能手機(jī)取證研究[J].警察技術(shù),2011(03):38-41

[9] Ivo Pooters,Pascal Arends,Steffen Mooorrees.Extracting SQLite records[Z],2011

[10] The SQLite Database File Format,2013.http://www.sqlite.org/[Z]

Research on the Data Recorvery Method of Deleted SMS for iPhone

ZHANG Kai-xiang,ZHOU An-min
(Department of Electronic Information,Sichuan University,Chengdu 610064)

As a fast,powerful and low resource consumption lightweight database engine,SQLite supports mainstream operating system such as Windows,Linux and UNIX.SQLite is widely used in variety of applications,such as contacts,call records,short message and QQ chat log.Provides an approach to recover deleted SMS by analyzing SQLite file format and addressing way of data records.The results show that the method of data recovery is capable for recovering data text for iPhone.

SQLite;iOS System;File Struct;Data Recovery

1007-1423(2015)01-0003-06

10.3969/j.issn.1007-1423.2015.01.001

張開翔(1990-),男,四川南充人,碩士研究生,研究方向?yàn)樾畔⑾到y(tǒng)安全理論與技術(shù)

周安民(1963-),男,四川成都人,碩士生導(dǎo)師,研究方向?yàn)樾畔踩P(guān)鍵技術(shù)和核心產(chǎn)品工程

2014-12-16 修稿時(shí)期:2014-12-23

猜你喜歡
數(shù)據(jù)庫(kù)結(jié)構(gòu)
《形而上學(xué)》△卷的結(jié)構(gòu)和位置
論結(jié)構(gòu)
新型平衡塊結(jié)構(gòu)的應(yīng)用
模具制造(2019年3期)2019-06-06 02:10:54
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
論《日出》的結(jié)構(gòu)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
創(chuàng)新治理結(jié)構(gòu)促進(jìn)中小企業(yè)持續(xù)成長(zhǎng)
主站蜘蛛池模板: 亚洲天堂首页| 久久一日本道色综合久久| 99精品视频九九精品| 四虎成人精品| 欧美伦理一区| 精品久久久久久成人AV| AV熟女乱| 国产精品一区二区久久精品无码| 久久久久人妻精品一区三寸蜜桃| 国产91精品调教在线播放| 全午夜免费一级毛片| 国产精品一区在线观看你懂的| 曰韩免费无码AV一区二区| 日本影院一区| 午夜啪啪网| 亚洲av日韩综合一区尤物| 色综合久久无码网| 成人午夜精品一级毛片| 欧美日韩久久综合| 99这里只有精品免费视频| 亚洲成人免费看| 亚洲中文字幕国产av| 99在线国产| 亚洲浓毛av| 日韩人妻无码制服丝袜视频| 亚洲AV色香蕉一区二区| 欧美午夜在线观看| 国产情精品嫩草影院88av| 四虎成人精品| 久久性妇女精品免费| 欧美97欧美综合色伦图| 亚洲高清在线天堂精品| 视频国产精品丝袜第一页| 67194亚洲无码| 国产a网站| 欧美五月婷婷| 色婷婷亚洲十月十月色天| 亚洲无线国产观看| 亚洲第一av网站| 毛片大全免费观看| 国产精品手机在线观看你懂的| 国产精品视频系列专区| 欧美精品亚洲二区| 精品国产香蕉在线播出| 国产成人福利在线视老湿机| 激情在线网| 欧美一区二区精品久久久| 欧美一级特黄aaaaaa在线看片| 777国产精品永久免费观看| 日本一本在线视频| 欧美日韩中文国产va另类| 国产拍揄自揄精品视频网站| 天堂av综合网| 国产精品吹潮在线观看中文| 老色鬼欧美精品| 亚洲无码高清免费视频亚洲| 久草视频福利在线观看| 欧美一级黄色影院| 欧美日韩精品一区二区在线线| 噜噜噜久久| 麻豆精品久久久久久久99蜜桃| 免费xxxxx在线观看网站| 无码福利视频| 久久青草视频| 国产91麻豆免费观看| 91精品国产一区| 国产精品太粉嫩高中在线观看| 亚洲乱码在线播放| 国产一区二区三区夜色| 红杏AV在线无码| 日本不卡免费高清视频| 欧美一区国产| 精品无码日韩国产不卡av | 麻豆精品在线播放| 视频一区亚洲| 国产亚洲成AⅤ人片在线观看| 免费欧美一级| 在线看片免费人成视久网下载| 日韩精品久久久久久久电影蜜臀| 国产在线欧美| 男女猛烈无遮挡午夜视频| 视频一本大道香蕉久在线播放|