Engqungqutheleni yezokuphepha yamakhompiyutha e-Ekoparty 2017 e-Buenos Aires, isigebengu se-Argentina u-Alfredo Ortega ubonise intuthuko ethakazelisa kakhulu - uhlelo lokucofa ngokuyimfihlo kwezakhiwo ngaphandle kokusebenzisa imakrofoni. Umsindo
I-HDD ngokuyinhloko ithatha imisindo ephansi yezinga eliphezulu, izinyathelo nokunye ukudlidliza. Inkulumo yomuntu ayikaziwa okwamanje, nakuba ososayensi
Umsindo ukudlidliza komoya noma esinye isisetshenziswa. Umuntu uzibona ngesigubhu sendlebe, esidlulisela ukundindizela endlebeni engaphakathi. Umbhobho uklanywe cishe njengendlebe - lapha, futhi, ukudlidliza kuqoshwa ulwelwesi oluncane, olujabulisa umfutho kagesi. I-hard drive, vele, ingaphansi kokudlidliza okuncanyana kakhulu ngenxa yokuguquguquka komoya ozungezile. Lokhu kwaziwa ngisho nasezicini zobuchwepheshe zama-HDD: abakhiqizi bavame ukukhombisa izinga eliphezulu elivumelekile lokudlidliza, futhi i-hard drive ngokwayo ivame ukuzama ukuyibeka esitsheni esivikela ukudlidliza esenziwe ngerabha noma ezinye izinto zokuvikela. Kulokhu kulula ukuphetha ngokuthi imisindo ingaqoshwa kusetshenziswa i-HDD. Osekusele wukuthola ukuthi kanjani.
U-Alfredo Ortega uhlongoze inguqulo eyingqayizivele yokuhlasela kwesiteshi eseceleni, okuwukuhlasela kwesikhathi. Lokhu kuhlasela kusekelwe embonweni wokuthi imisebenzi ehlukene yenziwa kudivayisi ngezikhathi ezihlukene, kuye ngedatha yokufaka enikeziwe. Kulokhu, "idatha yokokufaka" iwukudlidliza kwekhanda lokufunda kanye ne-HDD platter, ehambisana nokudlidliza kwemvelo, okungukuthi, nomsindo. Ngakho-ke, ngokulinganisa isikhathi sokubala nokwenza ukuhlaziya kwezibalo zedatha, ukudlidliza kwekhanda/uqweqwe ngakho-ke ukudlidliza kwe-medium kungalinganiswa. Uma kubambezeleka isikhathi eside ekufundeni idatha, kulapho ukudlidliza kwe-HDD kunamandla futhi, ngenxa yalokho, umsindo uyanda.
Ungakukala kanjani ukudlidliza kwe-hard drive? Kulula kakhulu: vele usebenzise ikholi yesistimu read ()
β bese urekhoda isikhathi esisithathayo ukuqeda. Izinhlelo zokusebenza zesimanje zikuvumela ukuthi ufunde isikhathi sezingcingo zesistimu ngokunemba kwe-nanosecond.
Isivinini sokufunda ulwazi oluvela emkhakheni sincike endaweni yekhanda noqweqwe, okuhambisana nokudlidliza kwekesi le-HDD. Yilokho kuphela.
Ukuhlaziywa kwezibalo kwenziwa kusetshenziswa insiza ye-Kscope elula. Njengoba besho, yonke into ehlakaniphile ilula.
Isisetshenziswa se-Kscope (stat() syscall)
I-Kscope iyinsiza encane yokubuka ngeso lengqondo umehluko omncane ezikhathini zokwenza ucingo lwesistimu. Umthombo
Endaweni yokugcina ehlukile read ()
.
Ukuboniswa komsindo oqoshiwe kusetshenziswa i-HDD, ukusebenza kwensiza ye-Kscope
Yiqiniso, inkulumo ayikwazi ukuqondwa ngale ndlela, kodwa i-HDD ifaneleka njengenzwa yokudlidliza. Isibonelo, ungabhalisa uma umuntu ogqoke izicathulo eziqinile noma engenazicathulo engena egumbini elinekhompyutha (mhlawumbe, uma umhlaseli egqoke amateki athambile noma kunokhaphethi owugqinsi phansi, i-HDD ngeke ikwazi ukubhalisa ukudlidliza - lokhu kufanelekile ukubhekwa). Ikhompyutha iyakwazi ukubhalisa ingilazi ephukile noma ezinye izigameko ezinomsindo oqinile. Okusho ukuthi, i-hard drive ingasebenza njengohlobo lwesistimu yokutholwa kokungena okungagunyaziwe.
HDD killer
Ngendlela, inqubo efanayo ingasetshenziswa ukukhubaza ama-hard drive. Lapha kuphela asisusi ama-oscillations ku-HDD, kodwa ngokuphambene nalokho, sikhiqiza ama-oscillations anikezwa ku-HDD. Uma udlala umsindo ovela kusipika ngefrikhwensi ehambisana nemvamisa ye-HDD, isistimu ngokushesha ivala idivayisi ngephutha le-I/O (i-Linux kernel iyivala ngokuphelele i-HDD ngemva kwamasekhondi angu-120). I-hard drive ngokwayo ingase ibe nomonakalo ongenakulungiseka.
I-Linux kernel ivale i-hard drive ngemva kwemizuzwana engu-120 yokuletha umsindo ngemvamisa enomsindo ngesipika se-Edifier r19u USB speaker. Isipika sivulwa cishe engxenyeni yesine yamandla (angaphansi kuka-100 mW) futhi sitholakala ku-20 cm ukusuka ku-HDD, esiqondiswe etafuleni ukuze kuthuthukiswe ukudlidliza. Uzimele kusuka
Kuyathakazelisa ukuthi "ukuhlaselwa" okunjalo kuma-HDD ngezinye izikhathi kwenzeka ngengozi empilweni yansuku zonke. Isibonelo, ngoSepthemba 2016, isikhungo sedatha ye-ING Bank saphoqeleka ukuthi simise ukusebenza amahora angu-10 ngemva kokuprakthiza umlilo.
Ukuboniswa kokumemeza kwabantu kuma-hard drive esikhungweni sedatha. Isilinganiso sokubambezeleka
Ukukhiqiza umsindo ozwakalayo, u-Alfredo Ortega wabhala umbhalo wePython obizwa ngokuthi
"""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