ctf音頻yinxie_ctf-圖片隱寫術

文件隱藏

常見文件頭尾

jpg 文件頭FFD8FFE0 文件尾FFD9

png 文件頭89504E470D0A1A0A 文件尾AE426082

gif 文件頭47494638 文件尾003B

zip 文件頭504B0304 文件尾

rar 文件頭Rar! 文件尾

7zip 文件頭7z集' 文件尾

文件分析

工具

binwalk,kali中集成工具,用于分析文件中所包含的內容,使用方法為binwalk picturename

# binwalk carter.jpg

DECIMAL HEXADECIMAL DESCRIPTION

--------------------------------------------------------------------------------

0 0x0 JPEG image data, JFIF standard 1.01

382 0x17E Copyright string: "Copyright (c) 1998 Hewlett-Packard Company"

3192 0xC78 TIFF image data, big-endian, offset of first image directory: 8

140147 0x22373 JPEG image data, JFIF standard 1.01

140177 0x22391 TIFF image data, big-endian, offset of first image directory: 8

以上執行結果說明這個jpg文件還隱藏著另一個jpg文件,從140147塊偏移開始就是另一張jpg

文件分離

binwalk

binwalk -e filename會將結果保存在當前文件夾下

dd命令分離

dd命令詳解

dd if=carter.jpg of=carter-1.jpg skip=140147 bs=1

這里if是指定輸入文件,of是指定輸出文件,skip是指定從輸入文件開頭跳過140147個塊后再開始復制,bs設置每次讀寫塊的大小為1字節

使用foremost工具分離

foremost是一個基于文件文件頭和尾部信息以及文件的內建數據結構恢復文件的命令行工具,使用方式:foremost picturename,當我們使用這行命令后,foremost會自動生成output目錄存放分離出文件

修改后綴名

針對利用copy命令,將兩個文件以二進制方式連接起來的方式進行的圖片隱寫術, 即使用命令copy /b example.jpg+hide.zip output.jpg生成output.jpg的新文件,可以將文件直接改為后綴名為.zip的文件,然后直接解壓即可。

修改數據

LSB來進行隱寫

SB也就是最低有效位 (Least Significant Bit)。原理就是圖片中的像數一般是由三種顏色組成,即三原色,由這三種原色可以組成其他各種顏色,例如在PNG圖片的儲存中,每個顏色會有 8bit,LSB隱寫就是修改了像數中的最低的1bit,在人眼看來是看不出來區別的,也把信息隱藏起來了。譬如我們想把’A’隱藏進來的話,就可以把A轉成16進制的0x61再轉成二進制的01100001,再修改為紅色通道的最低位為這些二進制串。

如果是要尋找這種LSB隱藏痕跡的話,可以使用Stegsolve輔助我們進行分析,使用使用Stegsolve打開文件,然后點擊下面的“>” "

在這個過程中,我們要注意到,隱寫的載體是PNG的格式,如果是像之前的jpg圖片的話就是不行的,原因是jpg圖片對像數進行了有損的壓縮,你修 改的信息可能會被壓縮的過程破壞。而PNG圖片雖然也有壓縮,但卻是無損的壓縮,這樣子可以保持你修改的信息得到正確的表達,不至于丟失。BMP的圖片也 是一樣的,是沒有經過壓縮的,可以發現BMP圖片是特別的大的,因為BMP把所有的像數都按原樣儲存,沒有壓縮的過程

gif數據隱寫

使用Stegsolve還可以按幀對gif進行查看,查找其中隱寫的內容,操作方法為Stegsolve——Analyse——Frame Browser。或者可以使用Namo_GIF_gr進行查看。

載體

數據在隱藏的時候,我們常常是需要先分析是數據隱藏在哪里,也就是他在利用是什么做載體,之后才可以進一步的分析是加密或編碼的。這也就是說我們要 對一個圖片的格式要有了解,才能知道哪些地方是可疑的,哪些是可以隱藏起信息的,會有冗余的成分在。舉個例子吧,比如給了一個jpg的圖片。除了我們之前 說到的隱藏在結束符之后的信息,jpg圖片還可以把信息隱藏的exif的部分。exif的信息是jpg的頭部插入了數碼照片的信息,比如是用什么相機拍攝 的。這些信息我們也是可以控制的,用查看屬性的方式可以修改一部分的信息,還可以用exif編輯器來進行編輯。Power_exif這個可以用來編輯.

更多請參考http://bobao.360.cn/learning/detail/243.html

參考文章

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540076.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540076.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540076.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql負責均衡讀寫分離_MySQL讀寫分離之負載均衡

mysql官方文檔中有這么一句話:MySQL Proxy is currently an Alpha release and should not be used within production environments.So。。。使用haproxy來做這些事,以下僅供參考:環境配置master 192.168.1.106 master1s…

mysql使用技巧_MySQL使用不得不看的幾個小技巧

程序中寫入的一行行的SQL語句,如果使用了一些優化小技巧,定能達到事半功倍的效果。1. 優化你的MySQL查詢緩存在MySQL服務器上進行查詢,可以啟用高速查詢緩存。讓數據庫引擎在后臺悄悄的處理是提高性能的最有效方法之一。當同一個查詢被執行多…

mysql oracle 數據類型轉換_Mysql與Oracle之間的數據類型轉換

[轉]MYSQL 與 Oracle 之間的數據類型轉換

rad linux下安裝mysql_Linux(CentOS或RadHat)下MySQL源碼安裝

MySQL 5.6開始,需要使用g進行編譯。cmake :MySQL 5.5開始,使用cmake進行工程管理,cmake需要2.8以上版本。bison :MySQL語法解析器需要使用bison進行編譯。ncurses-devel :用于終端操作的開發包。zlib …

mysql5.1數據庫亂碼_MySql5.1以上版本中文亂碼的解決方法

在my.cnf內添加以下代碼輸出err日志信息:[safe_mysqld]err-log /var/log/mysqld.logpid-file /var/lib/mysql/localhost.localdomain.pid在shell中輸入/bin/sh /usr/bin/mysqld_safe &啟動mysql,shell輸出如下:110328 11:39:55 mysqld_…

mysql 命令行批量sql_命令行中執行批量SQL的方法

基礎信息介紹測試庫:test;測試表:user;user表定義:CREATE TABLE user (id int(11) NOT NULL AUTO_INCREMENT,name char(30) NOT NULL,age int(11) NOT NULL,gender tinyint(1) DEFAULT 1 COMMENT 性別:1男;…

mysql雙主數據一致性_MySQL雙主一致性架構優化 | 架構師之路-阿里云開發者社區...

一、雙主保證高可用MySQL數據庫集群常使用一主多從,主從同步,讀寫分離的方式來擴充數據庫的讀性能,保證讀庫的高可用,但此時寫庫仍然是單點。在一個MySQL數據庫集群中可以設置兩個主庫,并設置雙向同步,以冗…

spool導出姓名中文亂碼_MySQL不同字符集轉化標準—7步實現,杜絕亂碼!

引言作為資深的DBA程序員,在工作中是否會遇到更這樣的情況呢?原有數據庫的字符集由于前期規劃不足,隨著業務的發展不能滿足業務的需求。如原來業務系統用的是utf8字符集,后期有存儲表情符號的需求,uft8字符集就不能滿足…

appium和airtest_關于Airtest自動化測試工具

一開始知道Airtest大概是在年初的時候,當時,看了一下官方的文檔,大概是類似Sikuli的一個工具,主要用來做游戲自動化的,通過截圖的方式用來解決游戲自動化測試的難題。最近,移動端測試的同事嘗試用它的poco庫…

easyexcel 設置標題_使用easyexcel完成復雜表頭及標題的導出功能(自定義樣式)

如需客戶端指定excel版本,只需要判斷后綴名然后在controller中的.excelType(ExcelTypeEnum.XLS)做指定輸出內容格式即可***(注意表格行高列寬統一設置是在實體類的類名注解上,如果需要對表格進行精細的寬高設置需要刪除掉這兩個注解,可以在攔截器使用row的方法進行設置)1. ## 引…

mysql distinct兩列_正在檢索兩列,并對MySQL中的每列應用“distinct”

這是一張桌子books----------------------------| author_fname | author_lname |----------------------------| Dan | Harris || Freida | Harris || George | Saunders |----------------------------我知道如果DISTINCT用作SELECT DISTINCT author_fname, author_lname FRO…

mysql笛卡爾積 去重_MySQL入門(函數、條件、連接)

MySQL入門(四)distinct:去重mysql>:create table t1(id int,x int,y int);mysql>: insert into t1 values(1, 1, 1), (2, 1, 2), (3, 2, 2), (4, 2, 2);mysql>: select distinct * from t1; # 全部數據mysql>: select distinct x, y from t1; # 結果 1,…

nmon安裝為什么重啟mysql_Nmon的安裝及使用

一、下載Nmon根據CPU的類型選擇下載相應的版本:二、初始化工具[rootmululu ~]# cd /opt[rootmululu opt]# mkdir nmon[rootmululu opt]# cd nmon[rootmululu nmon]#wget http://sourceforge.net/projects/nmon/files/download/nmon_x86_12a.zip[rootmululu nmon]# u…

mysql join 循環_關于mysql聯表的內嵌循環操作nested loop join中on和where執行順序問題...

mysql的理論依據沒找到,個人理解是先執行where的過濾條件,先關聯再過濾明顯做的是無用功。oracle中倒是能在執行計劃中看到,先執行的是過濾條件(下面代碼中最后一行)。explain plan for SELECT * FROM tmp_t2 t2 LEFT JOIN tmp_t1 t1 ON t2.i…

python非法語句是_python 如何優雅的處理大量異常語句?

bs4的鏈式調用很贊,所以我把soup包裝了一下class MY_SOUP():包裝類def __init__(self,soup):self.soup soupif soup:if soup.string:self.string soup.string.strip()else:self.string Noneelse:self.string Nonedef find(self, *args, **kw):ret self.soup.fi…

Iptables詳解+實例

2019獨角獸企業重金招聘Python工程師標準>>> Iptabels是與Linux內核集成的包過濾防火墻系統,幾乎所有的linux發行版本都會包含Iptables的功能。如果 Linux 系統連接到因特網或 LAN、服務器或連接 LAN 和因特網的代理服務器, 則Iptables有利于…

django ipython shell_通過django的shell_plus編寫ipython腳本

Im writing a shell script which runs a command through ipython with the -c option like this:我正在編寫一個shell腳本,它通過ipython運行一個命令,使用-c選項,如下所示:ipython -c "from blah import myfunct; myfunct()"but…

阿里云服務器安裝onlyoffice_阿里云服務器安裝 JDK 8

歡迎關注“科技毒瘤君”&#xff01;上一期給大家分享了如何申請阿里云的免費云服務器&#xff0c;還沒有看過的小伙伴可以先前往了解 >>阿里云免費服務器<<這一次將會為大家分享如何在服務器上配置 Java環境&#xff0c;這里演示使用的系統為Ubuntu 18.04 64位&am…

js發送請求

1.Chrome控制臺中 net::ERR_CONNECTION_REFUSED js頻繁發送請求&#xff0c;有可能連接被拒絕&#xff0c;可用setTimeout&#xff0c;過幾秒發送&#xff0c;給個緩沖時間 var overlayAnalystService L.supermap.spatialAnalystService(serviceUrl); setTimeout(function () …