2013-06-12 48 views
3

我用這個命令生成字符串文件:字符串命令基數偏移不與DD/XXD文件排隊偏移

strings -a -t d image.dd 

這應該顯示的基數每一行之前以十進制偏移。然後,我用grep將這個文件打上了有趣的搜索結果。後來想查看具體在每個搜索命中,我做到了使用dd命令十六進制查看偏移(感興趣的偏移32203):

dd if=image.dd skip=32203 count=1 | xxd 

我試圖尋找在立即的背景這個偏移無濟於事 - 它不包含相同的數據。我搜索了dd管道到xxd的輸出,並在偏移量\ x7e00(小數點32256 - 與基數偏移量相同,僅在相關行中進一步增加了53個字節)中找到了相同的數據,但是,這似乎並不排隊正確的時候我回去查看它在dd通過xxd管道。爲什麼差距?如何將字符串基數小數點偏移量與dd圖像內的字節偏移量相匹配? xxd是罪魁禍首嗎?

對於那些想知道爲什麼我不只是通過xxd搜索dd輸出的人,我需要的偏移量的實際原因是將分配塊內容傳遞給另一個程序,這只是一個概念,說明偏移量不排隊。

+0

'strings'命令是否爲你生成一個文件?我的印象是'strings'使用現有的文件......但也許它是* NIX的區別? – summea

+0

@summea是的,我實際上將字符串輸出管道輸入到一個文件中,但偏移量仍然應該綁定到原始的dd映像文件。 – Dan

回答

3

你的問題是與ddskip=參數。 skip=32203文件的塊(默認塊大小爲512)。您可以指定ibs=1來設置默認輸入塊大小。

+0

請注意'count'也在輸入塊中。 – spbnick