国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

C/C++信息隱寫術(shù)(一)之認(rèn)識文件結(jié)構(gòu)

2019-11-14 10:52:24
字體:
供稿:網(wǎng)友

所謂的隱寫術(shù)就是在不”破壞“(指正常打開,并不指修改二進(jìn)制文件)文件的情況下,把機(jī)密信息寫入進(jìn)文件,然后經(jīng)過處理后,把文件的信息提取出來。

舉一個例子:

在抗日戰(zhàn)爭時期,我方在偷取到日方機(jī)密文件后會寫下藏頭詩。這個藏頭詩一般人看不懂,只有特定的人才看得懂。

再舉一個例子:

比如把一個bmp格式的圖片文件放入某人的身份證信息,正常打開這個圖片,只會顯示原圖片,經(jīng)過處理提取后才能把身份證信息提取出來。

所以這就產(chǎn)生了一個問題,一個文件的格式,到底是什么樣的。我們可以對這個文件做什么樣的處理,才能不受破壞(指正常打開,并不指修改二進(jìn)制文件)。

在Windows上,有后綴名這個概念,linux里面沒有后綴名概念,Windows上,后綴名只有讓操作系統(tǒng)找到打開他們的適合的方式,而這個文件是不是圖片或者音頻,就得看他的文件格式。

在認(rèn)識bmp文件格式之前,我們先來認(rèn)識下txt文件

先打開注冊表(運(yùn)行處輸入regedit),在HKEY_CLASSES_ROOT目錄下找到.txt,并且找到他的默認(rèn)的數(shù)據(jù),為txtfile,如下圖所示:

現(xiàn)在就知道.txt文件和一個叫txtfile的東西有關(guān),現(xiàn)在到注冊表找到這個txtfile。同樣在HKEY_CLASSES_ROOT下可以找到txtfile,如下圖所示:

這時我們可以看到它的默認(rèn)圖標(biāo)是調(diào)用了一個叫imagers.dll的東西。

然后我們繼續(xù)往下看

這里面我們可以看到打開方式是command也就是cmd。用的是notepad打開的。

意思就是說,我的這臺電腦,如果遇到.txt的文件就會調(diào)用notepad對它進(jìn)行打開。

下面我們來介紹Windows下最簡單的圖片文件bmp格式。

如果我們把一個空的文件叫1.txt,改成1.bmp后,我們發(fā)現(xiàn),圖片瀏覽器根本打不開。這是因為這個1.txt里面文件內(nèi)部(二進(jìn)制代碼)并沒有發(fā)送改變。

下面來看看bmp文件格式。

首先我們用QQ接一個圖并且保存為bmp格式,如下圖所示:

現(xiàn)在提供給大家一個工具,這個工具對識別文件格式有相當(dāng)高的效率。

下載地址如下:

鏈接: https://pan.baidu.com/s/1boNo4px 

密碼: 4ysy

安裝以漢化里面都有說明,在此不再說明。

搞好后,我們打開010 Editor 然后把文件拖入進(jìn)入,如下圖所示:

此時圖如下我們來分析下:

在這個圖里面:

1.我們可以看到最開頭的兩個十六進(jìn)制為42H,4DH轉(zhuǎn)為ASCII后分別表示BM,這是bmp的標(biāo)識。

2.紅色箭頭是圖片的大小(這里對應(yīng)的十六進(jìn)制為26 3D 17 00,但這設(shè)計大小端轉(zhuǎn)化,所以他一個轉(zhuǎn)為00 17 3D 26,換成十進(jìn)制就為1522982)。

3.黃色的那兩個箭頭一般填充為0。

4.橘色監(jiān)聽的bfOffBits是從文件的第一個字節(jié)到位圖數(shù)據(jù)的偏移大小。

5.biSze是指這個struct BITMAPINDOHEADER bmih占40個字節(jié)大小。

6.biWidth,和biHeight指圖片的寬和高(為什么高度是負(fù)數(shù),大家可以嘗試下把高度該成正數(shù),然后修改第一個顏色的值,就可以發(fā)現(xiàn)問題了(第一個點就變成了左下角))。

6.黑色箭頭bitBitCount代表:BGRA  藍(lán)、綠、紅、alpha,來存儲一個像素,藍(lán)占多少,綠占多少,紅占多少,alpha是透明度,每一個分項占1byte每一個像素占4bytes(有些只有24位,意思就是沒有alpha這個透明度,因為這個alpha只有在高端的那些圖片處理上才用得著,一般的圖片瀏覽器不會顯示這個東西)。

7.這兩個結(jié)構(gòu)體結(jié)束后:剩下的部分就是像素的BGRA了。

我們現(xiàn)在來修改像素里面的BGR。改成如下情況:

我們保存,查看下圖片:

這時我們就可以看到這樣的圖片了:

這時我們再次修改他的透明度如下所示:

這時我們再觀察圖片:

我們發(fā)現(xiàn)圖片并沒有被改變

這是因為:目前的Windows系統(tǒng)下90%的圖片查看器會直接忽略掉bmp文件的alpha通道

只有那些高端的,要圖片處理的,才會用到alpha通道。

所以把機(jī)密信息拆開,保存到alpha通道里面,就實現(xiàn)了文件的隱藏,

隱藏后的文件,我們在寫一個特定的程序,就可以提取出來了。

下面幾節(jié)將介紹如何寫這種程序。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 酉阳| 肥乡县| 政和县| 白山市| 滁州市| 拜城县| 东明县| 宽城| 璧山县| 呼伦贝尔市| 鞍山市| 勃利县| 叶城县| 临安市| 通城县| 潮安县| 蒲江县| 汪清县| 吉林市| 咸丰县| 九龙城区| 青海省| 汉沽区| 沅陵县| 莱州市| 永昌县| 石楼县| 兴文县| 大余县| 蓬溪县| 鲜城| 阳原县| 朝阳区| 东山县| 渭南市| 仁寿县| 长汀县| 安丘市| 新丰县| 南涧| 上饶市|