Çima divê hûn li HDD-ya xwe neqîrin

Çima divê hûn li HDD-ya xwe neqîrin

Di konferansa ewlehiya komputerê ya Ekoparty 2017 de li Buenos Aires, hackerê Arjantînî Alfredo Ortega pêşkeftinek pir balkêş nîşan da - pergalek ji bo guhdarîkirina veşartî ya cîhan bêyî karanîna mîkrofonê. Rengdan rasterast li ser dîska hişk hatî tomar kirin!

HDD bi giranî dengên frekansa nizm, bi tundî bilind, gav û vibrasyonên din digire. Axaftina mirovan hîn jî nayê naskirin, her çend zanyar di vî warî de lêkolînan dikin (naskirina axaftinê bi vibrasyonên frekansa nizm, ku ji bo nimûne, ji gyroscope an HDD-ê têne tomar kirin).

Deng lerizîna hewayê an navgînek din e. Mirov wan bi riya perdeya guhê, ku vibrasyonê diguhezîne guhê hundur, wan dihesibîne. Mîkrofon hema hema mîna guhek hatî sêwirandin - li vir jî, vibrasyon ji hêla membranek zirav ve têne tomar kirin, ku pêlekek elektrîkê heyecan dike. Bê guman, ajokera hişk jî ji ber guheztinên hewaya derdorê berbi vibrasyonên mîkroskopî ve tê. Ev yek ji taybetmendiyên teknîkî yên HDD-ê jî tê zanîn: hilberîner bi gelemperî asta vibrasyonê ya herî zêde destûr destnîşan dikin, û ajokera hişk bi xwe pir caran hewl dide ku wê di konteynirek vibrasyonê ya ku ji gomûk an materyalek din a îzolekirî hatî çêkirin de bi cîh bike. Ji vê yekê hêsan e ku meriv encam bike ku deng dikarin bi karanîna HDD-ê bêne tomar kirin. Tiştê ku dimîne ev e ku meriv çawa bibîne.

Alfredo Ortega guhertoyek bêhempa ya êrîşek kanalek alî, ango êrişek demkî, pêşniyar kir. Ev êrîş li ser bingeha wê yekê ye ku operasyonên cihêreng li ser cîhazê di demên cûda de têne kirin, li gorî daneyên têketinê têne dayîn. Di vê rewşê de, "daneyên têketinê" lerizînên serê xwendinê û plattera HDD-ê ye, ku bi vibrasyonên hawîrdorê, ango bi deng re têkildar e. Bi vî rengî, bi pîvandina dema hesabkirinê û pêkanîna analîzek îstatîstîkî ya daneyan, lerizînên serê/platterê û ji ber vê yekê lerzînên navîn dikarin werin pîvandin. Derengiya xwendina daneyê çiqas dirêjtir be, lerizînên HDD-ê bihêztir dibe û, ji ber vê yekê, deng jî bilindtir dibe.

Meriv çawa vibrasyona dîska hişk bipîve? Pir hêsan: tenê banga pergalê bimeşînin read () - û dema ku ew temam dike tomar bikin. Pergalên xebitandinê yên nûjen dihêlin ku hûn dema bangên pergalê bi rastbûna nanosecondê bixwînin.

Leza xwendina agahdariya ji sektorek bi pozîsyona serî û platterê ve girêdayî ye, ku bi vibrasyonên doza HDD-ê re têkildar e. Navê pêger.

Analîza statîstîkî bi karanîna karûbarek Kscope ya hêsan tête kirin. Wekî ku ew dibêjin, her tişt aqilmend hêsan e.

Çima divê hûn li HDD-ya xwe neqîrin
Alîkariya Kscope (stat() syscall)

Kscope ji bo xuyangkirina cûdahiyên piçûk di demên darvekirina banga pergalê de amûrek piçûk e. Kanîli ser GitHub hate weşandin.

Di depoyek cuda de HDD-dem guhertoyek amûreyê heye ku ji bo êrîşek demkî ya li ser dîska hişk hatî mîheng kirin, ango ji bo analîzkirina banga pergalê hatî mîheng kirin. read ().

Xwenîşandana tomarkirina deng bi karanîna HDD-ê, xebitandina kargêriya Kscope


Bê guman, axaftin bi vî rengî nayê fêm kirin, lê HDD wekî senzorek vibrasyonê pir maqûl e. Mînakî, hûn dikarin xwe tomar bikin ger kesek pêlavên hişk an lingên tazî bi komputerek bikeve jûreyek (dibe ku, heke êrîşkar pêlavên nerm li xwe bike an jî xalîçeyek stûr li erdê hebe, HDD dê nikaribe vibrasyonên tomar bike - ev hêjayî kontrolê ye). Komputer dikare camên şikestî an bûyerên din ên bi dengek bihêz tomar bike. Ango, dîska hişk dikare wekî celebek pergala vedîtina destwerdanê ya nedestûrdar bike.

qatil HDD

Bi awayê, teknîkek wusa dikare were bikar anîn da ku dîskên hişk neçalak bike. Tenê li vir em oscilasyonên ji HDD-ê dernaxin, lê berevajî vê, em oscilasyonên ku ji HDD-ê re têne xwarin çêdikin. Ger hûn dengek ji axaftvanek bi frekansa ku bi frekansa HDD-ê re vedibêje dilîzin, pergal di demek kurt de amûrê bi xeletiyek I/O qut dike (kernela Linux piştî 120 saniyeyan HDD-ê bi tevahî qut dike). Dibe ku dîska hişk bixwe zirarek neveger bikişîne.

Çima divê hûn li HDD-ya xwe neqîrin
Kernelê Linux piştî 120 saniyeyan ji gihandina deng bi frekansek resonant bi navgîniya axaftvana Edifier r19u USB, ajokara hişk qut kir. Axaftvan bi qasî çaryeka hêzê (kêmtir ji 100 mW) tê pêvekirin û 20 cm dûrî HDD-ê ye, ku ji bo zêdekirina vibrasyonê ber bi maseyê ve tê armanc kirin. Frame ji video bi xwenîşandanek kujerê HDD

Meraq e ku "êrîş"ên weha li ser HDD-an carinan di jiyana rojane de bi tevahî bi xeletî çêdibin. Mînakî, di îlona 2016-an de, navenda daneyê ya ING Bank neçar ma ku 10 demjimêran xebatan rawestîne piştî ceribandinek agir. Bi dehan dîskên hişk têk çûn ji ber dengê bilind ê gaza bêserûber di bin tansiyona bilind de ji silindiran derdikeve. Deng pir bilind bû (ji 130 dB zêdetir), lê hûn nekarin li ser dîskên hişk jî biqîrin - ev dereng di gihîştina HDD-ê de zêde dike.

Xwepêşandana qîrîna mirovan li ser dîskên hişk ên li navendek daneyê. Pîvana derengbûnê


Ji bo afirandina dengê resonê, Alfredo Ortega skrîptek Python bi navê nivîsand hdd-kujer (xwenîşandana vîdyoyê).

Nivîsara qatil HDD Ew pir piçûk e, ji ber vê yekê hûn dikarin wê bi tevahî li vir biweşînin.

"""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

Add a comment