2016-06-14 44 views
-1

我最近開始研究低級別的位操作。操作硬盤上的特定位

http://bits.stephan-brumme.com/

http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetNaive

我明白如何清除/組/切換的概念/檢查等,的整數內的位或一個字節。 (Get a specific bit from byte

我似乎不能找到如何更改我的硬盤驅動器中特定位置位的值。

我會試圖在Ubuntu 14.04 LTS中做到這一點。我最熟悉PythonC++但我會採用任何語言的答案。

+0

Stack Overflow既不是論壇,也不是教程,代碼編寫或家庭作業服務。這是一個問答網站,其中*特定的*編程問題(通常,但不總是,包括一些代碼)得到*特定*答案。請參加[導覽]並仔細閱讀[幫助]以瞭解有關該網站的更多信息,包括[什麼是主題](http://stackoverflow.com/help/on-topic)和[什麼不是] (http://stackoverflow.com/help/dont-ask),以及如何[問一個好問題](http://stackoverflow.com/help/how-to-ask)。請同時按照[問題清單](http://meta.stackoverflow.com/q/260648)。 – MattDMo

+0

當你說「在硬盤上的特定位置改變位」時,你是否真的指整個磁盤中的任何位置?或者您的意思是*在硬盤驅動器上的文件*中? – wallyk

+0

@wallyk我真的指的是任何地方。這個想法是正確的,並且修改它而不與其他任何東西進行交互。 – Salvadorjer

回答

1

它會是這樣的:

  • 打開驅動器的讀/寫,爲根。 (例如:/ dev/sda)
  • Mmap驅動器(或者您可以查找和讀取/寫入)
  • 找到字節,修改您想要的位,刷新和取消映射(或關閉)。

其他人可能會提供此代碼版本。