क्या मैं इन दस्तावेजों को गुमनामी की मशीन से बचा सकता हूं?


49

सबसे पहले, एक स्वीकारोक्ति: नहीं, मेरे पास बैकअप नहीं होना चाहिए।

दूसरा, स्थिति:

मेरे पास डेल एक्सपीएस 9550 एक ठोस राज्य डिस्क है जिसमें फेडोरा 25 चल रहा है ।

मैं एक फाइल पर काम कर रहा था और इसे बचाने की कोशिश की जब मुझे बताया गया कि मैं एक रीड-ओनली फाइल सिस्टम को बचाने की कोशिश कर रहा हूं । पता चला कि मेरा फाइल-सिस्टम अब केवल पढ़ा गया है और सभी जगह i / o त्रुटियां हैं

मैं कुछ फ़ाइलों को एक खुले वेब ब्राउज़र के माध्यम से खुद को ईमेल करके सहेजने में सक्षम था, लेकिन यह दुर्घटनाग्रस्त हो गया और मैं इसे स्थानांतरित करने में असमर्थ हूं। लेकिन मेरे पास अभी भी एक संपादक की रुचि की फाइलें हैं। मैं फ़ाइलों को कहीं भी सहेजने के लिए प्रतीत नहीं कर सकता, लेकिन मैं उनकी सामग्री की प्रतिलिपि बना सकता हूं। यदि केवल मुझे फ़ाइल सामग्री को बाहर निकालने का एक तरीका मिल सकता है, तो मैं खुद को महीनों के काम से बचा सकता हूं।

लेकिन कुछ भयानक सीमाएं हैं। मैंने एक यूएसबी ड्राइव डालने का प्रयास किया, लेकिन कोई भी डिवाइस इसे प्रदर्शित नहीं करता है, और mountकमांड एक सेगफॉल्ट के साथ मर जाता है। मैं दूसरे कंप्यूटर पर ssh करने का प्रयास कर सकता हूं, लेकिन मुझे "बस त्रुटि" मिलती है और यह मर जाता है। ping, dmesg, ifconfig, इन से कोई कार्य नहीं। लेकिन मैं क्या ज़रूरत है vimऔर lessऔर lsऔर नए अंडे कर सकते हैं bashउदाहरणों।

नहीं lynx, नहीं firefox, नहीं google-chrome। कोई डीवीडी ड्राइव नहीं है।

मूल रूप से ऐसा लगता है कि मेरा एसएसडी मर गया है। या शायद पूरा मदरबोर्ड। मेरे पास अभी भी स्मृति में महान मूल्य के दस्तावेज हैं, मेरे पास एक आईपी पता और नेटवर्क कनेक्शन है, मैं कुछ यादृच्छिक कमांड चला सकता हूं और उस पथ पर 3500 अधिक है जो मैं कोशिश कर सकता था।

catऔर gccकाम करने लगते हैं। मैं / tmp में फ़ाइलों को लिख सकता हूँ। मेरे पास एक चल रहा ipythonउदाहरण है जो अभी भी काम करता है।

इसलिए ... मैंने अब तक जो भी कोशिश की है वह विफल रही है। लेकिन मुझे लगता है कि अभी भी एक हजार संभावनाएं हैं। मैं क्या विचार कर रहा हूँ? मैं अपने मरने वाले कंप्यूटर से संभवतः इन फ़ाइलों को कैसे प्राप्त कर सकता हूं?

वहां कोई रास्ता अवश्य होना चाहिए।

अद्यतन : नया सामान:

  • मैंने अपनी मूर्खता के कारण अपना नेटवर्क कनेक्शन खो दिया।
  • मैंने एक पायथन स्क्रिप्ट लिखी जिसे प्रतिस्थापित करना था cpऔरcp -r
  • जब तक मुझे /devएसडी कार्ड, या यूएसबी ड्राइव के लिए एक प्रविष्टि बनाने का कोई रास्ता नहीं मिल जाता है , तब तक डेटा प्राप्त करने के लिए मेरा सबसे अच्छा दांव स्क्रीन और संभवतः स्पीकर / ऑडियो केबल लगता है।
  • मैं फ़ाइलों और आउटपुट को पढ़ने की कोशिश करने के लिए एक स्क्रिप्ट लिख रहा हूं जो कि पठनीय हैं।

सुझाव अभी भी बहुत स्वागत है!

अद्यतन 2 : नया सामान:

  • मरने वाले कंप्यूटर पर मैंने एक पायथन स्क्रिप्ट लिखी जो बिट द्वारा एक बिट को पढ़ेगी और स्क्रीन को एक रंग या किसी अन्य पर फ्लैश करके उन बिट्स को व्यक्त करने की कोशिश करेगी। अभी यह दो-बिट कोड करने की कोशिश कर रहा है जहां लाल, हरा, नीला और सफेद सभी दो-बिट जोड़ी का प्रतिनिधित्व करते हैं। हालांकि, यह अच्छी तरह से काम नहीं कर रहा है, इसलिए मैं सिर्फ दो रंगों पर स्विच कर सकता हूं और एक बार में एक बिट कर सकता हूं।
  • मेरे अन्य लैपटॉप पर (भरोसेमंद पुराने थिंकपैड जो मैंने इस गर्म नए एक्सपीएस के लिए छोड़ दिया था) मैंने एक स्क्रिप्ट लिखी थी जो ओपनसीवी पायथन लाइब्रेरी का उपयोग करके वेबकैम से पढ़ती है। विचार यह है कि यह दूसरे कंप्यूटर द्वारा भेजे गए कोड को डिकोड करता है। परेशानी यह है कि कैमरे से फ्रेमरेट कुछ-कुछ 15 फ्रेम प्रति सेकंड की तरह है, जिसका मतलब है कि अगर मैं एक संपूर्ण था, तो त्रुटिहीन मेरी अधिकतम डेटा दर 30 बिट प्रति सेकंड, यानी 225 बाइट प्रति सेकंड होगी। वह प्रति दिन 324k है।
  • मरने वाले एक्सपीएस पर मैं tarवांछित फ़ाइलों को एक एकल संग्रह में पैक करने के लिए उपयोग कर सकता हूं , जो 1.7 एमबी है। दुर्भाग्य से, gzip, bzip2, xz, lzopऔर जो कुछ भी संपीड़न उपयोगिताओं उपलब्ध नहीं हैं। लेकिन पायथन के zlibमॉड्यूल का उपयोग करके मैं इस फ़ाइल को 820KB तक संकुचित कर सकता हूं। उस आकार को देखते हुए, मैं शायद इस बात को एक दो दिनों में भेज सकता हूं।
  • चूँकि यह हस्तांतरण विधि बहुत त्रुटि प्रवण होगी, इसलिए मैं डेटा को प्रसारित करते समय कुछ त्रुटि सुधार जोड़ने के लिए XPS पर हैमिंग कोड लागू करने जा रहा हूं।
  • संभवत: जटिलताएं होंगी क्योंकि ऐसा होता है, लेकिन कम से कम यह किसी भी तरह से इस डेटा को प्राप्त करने के लिए संभव है!
  • चूंकि यह अभी भी डेटा भेजने का एक बहुत अच्छा तरीका है, इसलिए मैंने USB सीरियल ड्राइवरों में अधिक देखा। मॉड्यूल मैं कोशिश की है लोड करने के लिए ( usb-serial-simple, usb-debug, safe-serial) मैं ओ त्रुटियों देना /। मुझे नहीं लगता कि यह कर्नेल के लिए बनाया गया है, या तो, क्योंकि कोई / dev / ttyUSB * डिवाइस मौजूद नहीं हैं।

इस प्रकार अब तक सभी के सुझावों के लिए धन्यवाद --- मुझे पता है कि यह भी एक अच्छी तरह से परिभाषित सवाल नहीं है क्योंकि आप लोग पहले से नहीं जानते हैं कि कौन से कार्यक्रम / फाइलें पढ़ी जा सकती हैं या नहीं। अभी भी इस वीडियो दृष्टिकोण से बेहतर सुझावों के लिए खुला है!

अद्यतन 3 : सबसे नया सामान

  • मुझे एक PS3 आई वेबकेम मिला और, अपने स्वत: लाभ और एक्सपोज़र को अक्षम करने के बाद, मैं सफलतापूर्वक XPS के डेटा को पढ़ रहा हूं, भले ही एक त्रुटि 1 बाइट प्रति सेकंड पर। यह एक बड़ी सफलता है --- पहला डेटा एक्सफ़िलिएटेड! लेकिन किसी भी प्रकार के उचित समय में मेरे 820KB को प्राप्त करने के लिए दर बहुत धीमी है, और त्रुटि दर बहुत अधिक है।

घड़ी के साथ एक बिट संचरण

  • समस्या यह है कि टर्मिनल पर लिखना बहुत धीमा है। स्क्रीन अपडेट तात्कालिक, थैंक्स (मुझे लगता है) जैसे urxvtकि टर्मिनल एमुलेटर की सुस्ती के लिए कुछ भी नहीं है जो मेरे पास हैं।
  • मुझे पता चला कि मेरे पास एक्सपीएस पर एक जंग संकलक तक पहुंच है। मैंने यह देखने के लिए कि क्या टर्मिनल रिफ्रेश स्पीड में सुधार होगा, यह देखने के लिए रस्ट का उपयोग करके ट्रांसमिशन स्क्रिप्ट को फिर से लिखा, लेकिन इससे कोई मदद नहीं मिली।
  • क्योंकि मैं फ्रेमरेट को बढ़ाने में सक्षम होने की संभावना नहीं हूं, इसलिए मुझे यह बढ़ाने की कोशिश करनी होगी कि मुझे प्रति फ्रेम कितना डेटा मिलता है। मेरा वर्तमान दृष्टिकोण कुछ इस तरह है:

ग्रिड संचरण

दायां आधा अभी भी एक घड़ी संकेत है, जो नए फ्रेम के आगमन को चिह्नित करने के लिए चमकता है। लेकिन बाईं ओर अब एक ग्रिड है जहां प्रत्येक सेल को कोने में एक लाल वर्ग द्वारा चिह्नित किया जाता है, और फिर लाल वर्ग से दाएं और नीचे हरे रंग की सेल को थोड़ा इंगित करने के लिए फ्लैश और ऑफ किया जाता है। लाल वर्गों को कंप्यूटर को प्राप्त करने देना चाहिए जहां कोशिकाएं स्थित हैं। मुझे इस तरह से अभी तक कोई डेटा नहीं मिला है, लेकिन यह वही है जो मैं काम कर रहा हूं।

  • किसी ने सुझाव दिया कि मैं इन तदर्थ रंग पैटर्न के बजाय क्यूआर कोड लिखने में देखता हूं। मैं उस पर भी गौर करने जा रहा हूं, और शायद इस ग्रिड दृष्टिकोण के बजाय इसे लागू करूंगा। त्रुटि सुधार एक अच्छी जीत होगी, साथ ही साथ मानक पुस्तकालयों को डिकोड करने के लिए उपयोग करने में सक्षम होना चाहिए।
  • मुझे पता चला कि मेरे पास लिबासाउंड (एएलएसए साउंड लाइब्रेरी) तक पहुंच है, लेकिन इससे जुड़ी हेडर फ़ाइलों ( alsa/asoundlib.hया जो भी हो) के लिए नहीं। अगर किसी को पता है कि हेडर के बिना साझा लाइब्रेरी का उपयोग कैसे किया जा सकता है, या मुझे ऑडियो आउटपुट देने के लिए सिर्फ सही हेडर लिखने में मदद कर सकता है, तो मेरे पास फ़ाइलों को प्राप्त करने का एक ऑडियो-आधारित तरीका हो सकता है।
  • वैकल्पिक रूप से, अगर कोई मुझे libusb तक पहुंच के बिना USB उपकरणों में हेरफेर करने में मदद कर सकता है तो शायद मैं उसके साथ कुछ कर सकता हूं?

आगे बढ़ते हुए!

अद्यतन 4 : ऑडियो आउटपुट का उत्पादन!

उपयोगकर्ता फ्रांसेस्को नोफेरी ने पिछले अद्यतन में उल्लिखित एएलएसए पुस्तकालय का उपयोग करने में मेरी मदद करते हुए कुछ महान कार्य किए हैं। सी कंपाइलर में एक समस्या थी, लेकिन रस्ट कंपाइलर का उपयोग करके मैं एफएफआई को सीधे कॉल करने में सक्षम था libasound। मैंने अब ऑडियो पर अपने डेटा का एक गुच्छा खेला है और यह मेरे कानों को संगीत जैसा लगता है! अभी भी एक वास्तविक संचार चैनल स्थापित करने की आवश्यकता है, लेकिन मुझे बहुत उम्मीद है। इस बिंदु पर मेरा काम मूल रूप से एक मॉडेम को लागू करना है, इसलिए यदि किसी के पास अच्छे तरीकों के लिए कोई मार्गदर्शन है जो कि मैं सभी कानों के लिए कर रहा हूं। आदर्श रूप से मॉडुलन जो हाथ से कार्यान्वित करना आसान है और जिसके लिए एक मौजूदा पुस्तकालय है जिसका मैं उपयोग कर सकता हूं। चूंकि यह सीधे एक ऑडियो केबल पर जा सकता है और फोन नेटवर्क के माध्यम से नहीं, सैद्धांतिक रूप से हम 56kbps या जो भी मानक दिन में वापस आ गया था, उससे बहुत बेहतर कर सकते हैं, लेकिन व्यवहार में कौन जानता है कि हमें क्या मिलेगा।

यहाँ और यहाँ पर / r / techsupportmacgyver पर और / r / जंग में इतने उत्कृष्ट सुझावों में योगदान देने वाले सभी का धन्यवाद । इस "मॉडेम" को जल्द ही लागू किया जाएगा और फिर मैं इसे एक उपसंहार के साथ समाप्त करूंगा। मुझे लगता है कि मैं भविष्य में उपयोग करने के लिए अन्य हताश लोगों के लिए कहीं और अपना कोड डाल सकता हूं --- शायद यह भी अजीब एक्सफिलिएशन टूल्स का भंडार है जो हाथ से मरने वाली मशीन में टाइप करना आसान है? हम देखेंगे क्या होता है।

अद्यतन 5 : यह मुझे ALSA और मेरे सस्ते StarTech USB ऑडियो कैप्चर डिवाइस (प्राप्त लैपटॉप पर कोई बिल्ट लाइन नहीं) के साथ लंबे समय तक कुश्ती में लगा, और कई झूठे मेरे स्वयं के ट्रांसमिशन प्रोटोकॉल को रोल करने की कोशिश करने लगे, लेकिन अंत में कुछ की सलाह के तहत हैम रेडियो उत्साही मेरे दोस्त मैंने150 बॉड पर चलनेवाले आरटीटीवाई लाइन प्रोटोकॉल को लागू किया, जो व्यवहार में मुझे प्रति सेकंड लगभग 10 बाइट्स देता है। यह सुपर फास्ट नहीं है, लेकिन यह काफी विश्वसनीय है। और मैं बहुत करीब से अपने 820KB फ़ाइल को स्थानांतरित कर रहा हूं, CRC32 चेकसम का उपयोग करके सत्यापित किया गया (पायथन से crc32 कार्यक्षमता का उपयोग करके)zlibमॉड्यूल, जिसकी मुझे एक्सेस है)। इसलिए मैं जीत की घोषणा कर रहा हूं, और एक बार फिर धन्यवाद देना चाहता हूं! मैं कुछ और समय बिताने के लिए आगे की फाइलों को खोजूंगा जो पठनीय हैं और जिन्हें मैं स्थानांतरित कर सकता हूं, लेकिन नींव जगह में है। यह आप सभी के साथ काम करने में मजेदार रहा है!

अंतिम अद्यतन :

मरने वाली मशीन पर:

$ tar cf ./files
$ ./checksum.py ./files.tar 9999999
Part 1 checksum: -1459633665
$ ./zlib_compress.py ./files.tar
$ ./checksum.py ./files.tar.z 9999999
Part 1 checksum: -378365928
$ ./transmit_rust/target/debug/transmit ./files.tar.z
Transmitting files.tar.gz over audio using RTTY
Period size: 2048
Sample rate: 44100
Samples per bit: 294
Sending start signal.
Transmitting data.
nread: 2048
nread: 2048
...
nread: 2048
nread: 208
Transmission complete. Sending hold signal.

बचाव मशीन पर:

$ minimodem --rx -8 --rx-one -R 44100 -S 915 -M 1085 --startbits 3
            --stopbits 2 --alsa=1 150 -q > ./files.tar.z
$ ./checksum.py ./files.tar.z
Part 1 checksum: -378365928
$ ./zlib_decompress.py ./files.tar.z
$ ./checksum.py ./files.tar
Part 1 checksum: -1459633665

:-)



2
उस निर्देशिका पर जाएं जहां आपके पास फाइलें हैं और कमांड जारी करें python -m SimpleHTTPServer। अब आप पोर्ट 8000 में http सर्वर के माध्यम से फाइल शेयर कर रहे हैं । उसी नेटवर्क में अन्य डिवाइस में एक ब्राउज़र खोलें और निम्नलिखित टाइप करें: और आप जो कुछ भी कर सकते हैं उसे डाउनलोड करना शुरू करें। http://<IP address>:8000
jcbermu

2
गीक सामान का एक बड़ा टुकड़ा जो आपको यहाँ मिला है। काश मैं दो बार उठ सकता था।
कामिल मैकियोरोव्स्की 18

1
कैसे रैम के बारे में बकवास को ठंडा करने के बारे में अस्थिरता को कम करने और इसे वैकल्पिक एक्सपीएस में स्थानांतरित करने के लिए? en.wikipedia.org/wiki/Cold_boot_attack
मूल

1
कुछ हद तक ऑफ-टॉपिक, लेकिन यह बहुत अच्छा होगा यदि आप संबंधित रेडिट थ्रेड्स को लिंक कर सकते हैं तो हम देख सकते हैं कि वहां क्या सुझाव दिया गया है।
बॉब

जवाबों:


15

यहां एक उदाहरण लिबासाउंड प्रोग्राम है जिसमें मूल 2-चैनल 44.1k wav आउटपुट प्राप्त करने के लिए पर्याप्त परिभाषाओं के साथ हेडर के बिना चल रहा है।

संपादित करें: मुझे वास्तव में यकीन नहीं है कि अगर डेटा को डंपिंग के रूप में सीधा किया जाता है तो wav काम करेगा, क्योंकि जब रिकॉर्डिंग आसानी से इसे नुकसान पहुंचा सकती है, लेकिन आप शायद उच्च आवृत्ति पर बिट्स की साइन वेव की तरह कुछ कर सकते हैं जो अधिक विश्वसनीय है

EDIT2: यदि aplay मौजूद है और काम करता है तो आप उसका उपयोग भी कर सकते हैं और बस एक प्रोग्राम लिख सकते हैं जो कच्चे ऑडियो को आउटपुट करता है और इसे aplay या कुछ भी है जो ऑडियो चला सकता है, में पाइप करता है

EDIT3: किसी भी हेडर का उपयोग नहीं करने के लिए इसे संशोधित किया

यदि -आलासाउंड संकलित नहीं करता है, तो -L / पाथ / जहां / libasound / है / स्थित है

/*
    gcc alsa_noheader.c -lasound
    cat stuff.wav | ./a.out
*/

typedef unsigned int uint;
typedef unsigned long ulon;

int printf(char*, ...);
void* malloc(long);
long read(int fd, void* buf, ulon count);

int snd_pcm_open(void**, char*, int, int);
ulon snd_pcm_hw_params_sizeof();
int snd_pcm_hw_params_any(void*, void*);
int snd_pcm_hw_params_set_access(void*, void*, int);
int snd_pcm_hw_params_set_format(void*, void*, int);
int snd_pcm_hw_params_set_channels(void*, void*, uint);
int snd_pcm_hw_params_set_rate_near(void*, void*, uint*, int*);
int snd_pcm_hw_params(void*, void*);
int snd_pcm_hw_params_get_period_size(void*, ulon*, int*);
long snd_pcm_writei(void*, void*, uint);
int snd_pcm_prepare(void*);
int snd_pcm_drain(void*);
int snd_pcm_close(void*);

int main(int argc, char* argv[])
{
    void* pcm;
    void* params;

    int rate;
    int nchannels;
    ulon frames;
    void* buf;
    int bufsize;
    long nread;

    snd_pcm_open(&pcm, "default", 0, 0);
    params = malloc(snd_pcm_hw_params_sizeof());
    snd_pcm_hw_params_any(pcm, params);

    /* 3 = rw_interleaved */
    snd_pcm_hw_params_set_access(pcm, params, 3);

    /* 2 = 16-bit signed little endian */
    snd_pcm_hw_params_set_format(pcm, params, 2);

    /* 2 channels */
    nchannels = 2;
    snd_pcm_hw_params_set_channels(pcm, params, nchannels);

    /* sample rate */
    rate = 44100;
    snd_pcm_hw_params_set_rate_near(pcm, params, &rate, 0);

    snd_pcm_hw_params(pcm, params);
    snd_pcm_hw_params_get_period_size(params, &frames, 0);

    bufsize = frames * nchannels * 2;
    buf = malloc(bufsize);

    /* read file from stdin */
    while (nread = read(0, buf, bufsize) > 0)
    {
        if (snd_pcm_writei(pcm, buf, frames) == -29)
        {
            printf("W: underrun\n");
            snd_pcm_prepare(pcm);
        }
    }

    snd_pcm_drain(pcm);
    snd_pcm_close(pcm);

    return 0;
}

मैंने आपको उकसाया और आपको लगता है कि आप इस भयानक दृष्टिकोण के लिए टन के लायक हैं! यहाँ परेशानी है: आपको जिन फ़ाइलों का उपयोग करना है उनमें से चार पर IO त्रुटियां हैं। इसलिए मुझे इसके लिए एक रास्ता चाहिए। मैं दूसरे लैपटॉप पर प्रीप्रोसेसिंग कर सकता हूं, लेकिन इसका परिणाम 63K फाइल, 11K gzipped है। अगर मुझे XPS में डेटा प्राप्त करने का साधन मिल सकता है तो यह संभव है, लेकिन मैं इसे हाथ से टाइप करने के बारे में उत्साहित नहीं हूं। संकलित फ़ाइल 10.4K, या 2.4K gzipped है। यही वह जगह है जहां मैं इसे हाथ से टाइप कर सकता हूं, लेकिन त्रुटियों का पता लगाना मुश्किल होगा।
जोश हैनसेन

1
मैंने किसी भी हेडर का उपयोग नहीं करने के लिए कार्यक्रम को संपादित किया है, कोशिश करें कि
फ्रांसेस्को नोफेरी

gccमुझे "बस त्रुटि" दिया (जो कुछ कार्यक्रमों के साथ मिलता है, लेकिन वास्तव में समझ में नहीं आता है।) सौभाग्य से, मेरे पास एक रस्ट कंपाइलर है जो काम कर रहा है, इसलिए रस्ट की एफएफआई क्षमता का उपयोग करके मैंने आपके कोड को रस्ट का उपयोग करके ऊपर लागू किया है। यह संकलन और चल रहा है, लेकिन मैं अभी भी कुछ भी नहीं सुनता। लेकिन अगर वॉल्यूम ऊपर है तो मैं वास्तव में निश्चित नहीं हूं --- यह म्यूट किया जा सकता है। लेकिन मैं जाँच करने के लिए alsamixer / xfce4-मिक्सर नहीं चला सकता। मुझे लगता है कि वॉल्यूम ऊपर है यह सुनिश्चित करने के लिए सीधे अलसलीब का उपयोग कर रहा हूं। इस पर आपके प्रयास के लिए बहुत बहुत धन्यवाद!
जोश हेन्सन

1
सुनकर अच्छा लगा कि आप इसे चला रहे हैं! वॉल्यूम के लिए, यहां एक प्रोग्राम है जो डिफॉल्ट डिवाइस के मिक्सर नियंत्रणों की गणना करता है और उन सभी को अधिकतम करता है: gist.github.com/008f0c3acdbcae886a19868a0554987b । यदि आपके पास अभी भी समस्या है तो आपको ऑडियो आउटपुट और उनके मिक्सर प्रविष्टियों को एन्यूमरेट करने के लिए कुछ लिखने की आवश्यकता हो सकती है यह सुनिश्चित करने के लिए कि यह वास्तव में टूट गया है और गलत / मौन डिवाइस को आउटपुट नहीं कर रहा है। यह देखने के लिए कि क्या यह इर्रिगेशन है, ऑडियो आउटपुट प्रोग्राम में एरर चेकिंग को जोड़ने की कोशिश कर सकता है। बस त्रुटि का अर्थ है "स्मृति तक पहुंचने की कोशिश करना जो संभवतः वहां नहीं हो सकता" इसलिए शायद दूषित स्मृति मैप किए गए
लिबास

बाहर मात्रा बदल गया था, लेकिन मैं वास्तव में वक्ताओं को कोई बाइट्स नहीं भेज रहा था --- किसी तरह मुझे समझ में नहीं आता कि रस्ट में बफर में कैसे पढ़ा जाता है, यह हमेशा 0 बाइट पढ़ता है। लेकिन कुछ बाइट्स का उपयोग करके मैंने निर्माण किया मैं ऑडियो आउटपुट का उत्पादन करने में सक्षम था! यह बहुत अच्छा है, यह एक अच्छा स्वच्छ तरीके से डेटा को प्राप्त करने के लिए एक अच्छे मार्ग की तरह लगता है। अब मॉड्यूलेशन / डिमोड्यूलेशन स्ट्रैटेजी के बारे में जानने का समय आ गया है ताकि मैं यह समझदारी से कर सकूं। इस पर अपने काम के लिए बहुत बहुत धन्यवाद --- बहुत सराहना की!
जोश हेन्सन

3

क्या आपका एचडीएमआई या कोई अन्य डिस्प्ले आउट पोर्ट काम कर रहा है? यदि ऐसा है तो आप स्क्रीन कैप्चर डिवाइस का उपयोग वीडियो और प्रक्रिया के रूप में रिकॉर्ड करने के लिए कर सकते हैं। इस प्रकार आपके वेबकैम के फ्रैमरेट द्वारा सीमित नहीं किया जा रहा है।


2

कैसे के बारे में आप अपने डेटा को हेक्स-एनकोड करें और इसे प्रति पृष्ठ टर्मिनल पर आउटपुट करें?

आप बाइनरी में ऑफसेट के साथ एक उपसर्ग जोड़ सकते हैं ताकि आप आसानी से एक पृष्ठ (मैनुअल सुधार के लिए) पुनर्जीवित कर सकें?

फिर एक अलग कंप्यूटर पर पृष्ठों को स्कैन करने के लिए कुछ ओसीआर सॉफ़्टवेयर का उपयोग करें।

80x25 टर्मिनल प्रति पृष्ठ 1000 बाइट्स (उपसर्ग के लिए कुछ स्थान घटा) करेगा। तो लगभग 1000 पृष्ठों में आप अपना डेटा निकाल सकते हैं। यहां तक ​​कि प्रति सेकंड एक पृष्ठ पर, यह 20 मिनट से कम है।

हेक्स एन्कोडिंग लिखना आसान है और त्रुटि सुधार का एक कच्चा रूप भी प्रदान करता है (केवल 16 वैध प्रतीक हैं)।


1

क्या आप नेटवर्क कनेक्शन सेट कर सकते हैं? ssh थोड़ा बहुत हो सकता है लेकिन अगर आप 2 मशीनों पर netcat का उपयोग कर सकते हैं तो आप डेटा ट्रांसफर करने में सक्षम हो सकते हैं। एक विधा भेजने में, एक सुनने की विधा में। यदि आप सभी को पाठ को स्थानांतरित करने की आवश्यकता है तो यह 'समाधान' हो सकता है।

संपादित करें: कोई बात नहीं, बस पढ़ें कि आपने अपना नेटवर्क कनेक्शन खो दिया है ..


1
मुझे लगता है कि आपका जवाब वहाँ होने के योग्य है। ncएक कामकाजी नेटवर्क स्टैक के अलावा कोई अन्य निर्भरता नहीं है, जो ओपी के पास तब तक था जब तक वह उसे उड़ा नहीं देता। यह काफी संभावना कम कर देता है कि निष्पादन योग्य शुरू नहीं होगा। अगर कोई और इसी तरह की समस्या में चलता है, तो यह निश्चित रूप से एक उपयोगी समाधान है।
zneak

0

आप अपने आप को कमांडलाइन से ईमेल भेजने में सक्षम हो सकते हैं, जिसमें फाइलें भेजना भी शामिल है।

कुछ इस तरह:

$ mail -s "Hello World" user@yourmaildomain.com < /tmp/urgentFileToSave.txt

कार्य करना चाहिए।

कुछ और उदाहरण: http://www.binarytides.com/linux-mail-command-examples/


अफसोस की बात है, mailउन कार्यक्रमों में से (अनिवार्य रूप से यादृच्छिक) संग्रह नहीं है जिन्हें मैं चला सकता हूं। इसके अलावा मैंने अपना नेटवर्क कनेक्शन खो दिया है :-(
जोश हेन्सन

आउच। ठीक है, मेरे पास जो कुछ बचा है, catवह फाइल है और अपने मोबाइल के साथ फ़ोटो लें।
mcalex

यह उस पर आ सकता है!
जोश हैनसेन

0

क्या पायथन आपके ऑडियो-आउट पोर्ट तक पहुंच सकता है? आप इसका उपयोग करके डेटा स्थानांतरित करने का प्रयास कर सकते हैं - यह या वह देखें ।


मुझे नहीं लगता कि मेरे पास पायथन के ऑडियो लाइब्रेरी स्थापित हैं, इसलिए शायद नहीं। लेकिन एएलएसए डिवाइस में / dev / snd हैं। alsa-lib स्थापित है, लेकिन मुझे नहीं लगता कि मैं इसे पढ़ सकता हूं। क्या ऑडियो डिवाइस पर सीधे लिखने का कोई तरीका है?
जोश हेन्सन

@ user17219 क्या आप सुनिश्चित हैं कि ossaudiodevआपके पायथन इंस्टॉलेशन में कोई लाइब्रेरी उपलब्ध नहीं है ? यह लिनक्स और फ्रीबीएसडी में एक मानक मॉड्यूल होना चाहिए, अगर मैं प्रलेखन को सही ढंग से पढ़ता हूं। import ossaudiodevबॉक्स से बाहर मेरे उबंटू में काम किया।
ल्यूक

वास्तव में आप सही हैं कि यह मौजूद है, लेकिन दुर्भाग्य से यह स्मृति में नहीं था इसलिए मैं इसे नहीं पढ़ सकता --- यह डिस्क से मॉड्यूल को पढ़ने की कोशिश करता है जिसके परिणामस्वरूप i / o त्रुटि होती है :-( यह एक उत्कृष्ट था सुझाव, हालांकि
जोश हैनसेन

@ user17219 यह एक दया है। tldp.org/HOWTO/Alsa-sound-6.html - इस लिंक से पता चलता है कि आप catफ़ाइल को केवल /dev/snd/pcm...डिवाइस पर टिंग कर सकते हैं ।
लूका

मैंने इसे करने का प्रयास किया है, लेकिन कुछ अजीब त्रुटियां हैं। मुझे लगता है कि pcm डिवाइस तब से बदल गए हैं जब से डॉक्टर लिखा गया था कि अब * p और * c वेरिएंट हैं। मैं कोशिश की है cating /dev/randomउन सभी में लेकिन कोई लाभ नहीं हुआ।
जोश हैनसेन

0

आप अपनी मशीन से SSD को हटा सकते हैं और dd/ photorecया अन्य कार्य मशीन पर कर सकते हैं।

यहां 9550 के लिए डेल सेवा मैनुअल है - "सॉलिड-स्टेट ड्राइव को हटाने" के लिए अनुभाग देखें। एक बार जब आप ड्राइव को हटा देते हैं, तो आप अपने डेटा को पुनर्प्राप्त करने के लिए एक बाहरी M.2 USB संलग्नक प्राप्त कर सकते हैं और डिस्क को दूसरी मशीन से जोड़ सकते हैं।


3
-1। इस मामले में आपकी सलाह चीजों को इतना बदतर बना सकती है। सबसे पहले, हम यह सुनिश्चित नहीं कर सकते हैं कि कौन सी फाइलें एसएसडी के लिए प्रतिबद्ध थीं, वे कैश में मौजूद हो सकती हैं। कुछ फाइलें बिल्कुल भी नहीं बचाई गई थीं: "लेकिन मेरे पास अभी भी एक संपादक की रुचि की फाइलें हैं। मैं फ़ाइलों को कहीं भी सहेजने के लिए प्रतीत नहीं कर सकता, लेकिन मैं उनकी सामग्री की प्रतिलिपि बना सकता हूं।" इसके बाद एक जोखिम है जो एसएसडी अब प्रारंभ नहीं करेगा; यह अब काम करता है क्योंकि यह खराबी से पहले शुरू हुआ था। आपके समाधान का अर्थ है कि RAM सामग्री को सुनिश्चित और SSD सामग्री के लिए खोना। मुझे डर है कि यह तख्तापलट हो जाएगा ।
कामिल मैकियोरोवस्की

0

लंबे शॉट, लेकिन कुछ डिस्ट्रोस में निर्मित हैम रेडियो प्रोटोकॉल हैं। एक आम एक fldigi है। कौन सा fldigi प्रयास करें।

यदि आपके पास यह या कोई अन्य है, तो वे पाठ को ऑडियो में परिवर्तित करते हैं, आमतौर पर चरण-शिफ्ट कुंजीयन के कुछ भिन्नता का उपयोग करते हुए। आउटपुट आपके स्पीकर / हेडफ़ोन पर जाता है, और उसी कमरे में एक स्थिर कंप्यूटर द्वारा प्राप्त किया जाता है, जो इसके माइक्रोफोन पर सूचीबद्ध होता है। (यह हैम रेडियो को समाप्त करता है जो प्रसारित होता है और एयरवेव पर ऑडियो प्राप्त करता है)।


0

क्यूआर कोड दृष्टिकोण अच्छा हो सकता है। आप स्क्रीन पर जितने भी फिट हो सकते हैं, और जैसे ही आपका टर्मिनल आपको अनुमति देता है, उन्हें ताज़ा कर सकते हैं। फिर एक कैमरा के साथ XPS की स्क्रीन रिकॉर्ड करें (जैसा कि एक वेबकेम का उपयोग करने का विरोध किया गया है), और आपके द्वारा सहेजे गए वीडियो को डिक्रिप्ट करने का काम करें। धीमी गति पकड़ने के लिए भी उपयोगी हो सकता है।


0

शानदार शो :) मेरे पास 1 सुझाव है: आप दूसरे कंप्यूटर के साउंड कार्ड से जुड़े फोटो डायोड का उपयोग करके स्क्रीन से डेटा भी पढ़ सकते हैं


या कुछ बाहरी साउंड कार्ड के इनपुट के लिए ऑडियो आउटपुट तार (शोर को खत्म करने के लिए)। यहाँ से प्रेरित हो जाओ: chdk.wikia.com/wiki/Obtain_a_firmware_dump
मिलो ओएच

सवाल ही, और पहले के जवाबों की एक जोड़ी, एक कैमरे के साथ स्क्रीन छवियों को कैप्चर करने पर चर्चा करें। क्या आपका दृष्टिकोण बेहतर होगा? या कहीं भी पास के रूप में अच्छा है? यदि हां, तो कृपया समझाएं। टिप्पणियों में प्रतिक्रिया न करें; इसे स्पष्ट और अधिक पूर्ण बनाने के लिए अपना उत्तर संपादित करें।
जी-मैन का कहना है कि 'मोनिका'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.