ฉันสามารถบันทึกเอกสารเหล่านี้บนเครื่องที่กำลังจะตายจากการลืมเลือน


49

อันดับแรกคำสารภาพ: ไม่ฉันไม่ได้สำรองข้อมูลที่ฉันควรมี

ประการที่สองสถานการณ์:

ฉันมี Dell XPS 9550 กับดิสก์สถานะของแข็งทำงานFedora 25

ผมทำงานในไฟล์และพยายามที่จะบันทึกไว้เมื่อฉันได้บอกผมพยายามที่จะบันทึกให้เป็นระบบแฟ้มแบบอ่านอย่างเดียว ปรากฎว่าระบบไฟล์ของฉันเป็นแบบอ่านอย่างเดียวตอนนี้และมีข้อผิดพลาดของ i / oทั่วทุกที่

ฉันสามารถบันทึกไฟล์บางส่วนโดยส่งอีเมลถึงตัวเองผ่านเว็บเบราว์เซอร์ที่เปิดอยู่ แต่นั่นล้มเหลวและฉันไม่สามารถเปิดใช้งานอีกครั้งได้ แต่ฉันยังคงเปิดไฟล์ที่น่าสนใจในตัวแก้ไข ฉันไม่สามารถบันทึกไฟล์ได้ทุกที่ แต่ฉันสามารถคัดลอกเนื้อหาได้ ถ้าเพียง แต่ฉันสามารถหาวิธีกำจัดไฟล์เนื้อหาฉันสามารถช่วยตัวเองให้ทำงานได้หลายเดือน

แต่มีข้อ จำกัด ที่น่ากลัวอยู่บ้าง ฉันพยายามที่จะใส่ไดรฟ์ USB แต่ไม่มีอุปกรณ์ใดที่แสดงถึงและmountคำสั่งนั้นตายด้วย segfault ฉันสามารถพยายามที่จะ ssh ไปยังคอมพิวเตอร์เครื่องอื่น แต่ฉันได้รับ "ข้อผิดพลาดรถบัส" และมันก็ตาย ping, dmesg, ifconfigไม่มีของเหล่านี้ทำงาน แต่ฉันมีvimและlessและlsและสามารถวางไข่bashกรณีใหม่

ไม่มีlynxไม่มีไม่มีfirefox google-chromeไม่มีไดรฟ์ดีวีดี

โดยทั่วไปดูเหมือนว่า SSD ของฉันจะเสียชีวิตแล้ว หรืออาจเป็นทั้งเมนบอร์ด ฉันมีเอกสารที่มีค่ามากยังคงอยู่ในหน่วยความจำฉันมีที่อยู่ IP และการเชื่อมต่อเครือข่ายฉันสามารถเรียกใช้คำสั่งแบบสุ่มไม่กี่คำและมีอีก 3,500 เส้นทางบนเส้นทางที่ฉันสามารถลองได้

catและgccดูเหมือนว่าจะทำงาน ฉันสามารถเขียนไปยังไฟล์ใน / tmp ฉันมีipythonอินสแตนซ์ที่ทำงานอยู่ซึ่งดูเหมือนว่าจะยังทำงานอยู่

ดังนั้น ... สิ่งที่ฉันได้พยายามมาแล้วก็ล้มเหลว แต่ฉันรู้สึกว่ายังมีความเป็นไปได้หลายพันรายการ ฉันไม่ได้พิจารณาอะไร ฉันจะลบไฟล์เหล่านี้ออกจากคอมพิวเตอร์ที่กำลังจะตายได้อย่างไร?

จะต้องมีวิธี

อัปเดต : สิ่งใหม่:

  • ฉันสูญเสียการเชื่อมต่อเครือข่ายเนื่องจากความโง่ของตัวเอง
  • ฉันเขียนสคริปต์ Python เพื่อแทนที่cpและcp -r
  • ถ้าฉันไม่พบวิธีสร้าง/devรายการสำหรับการ์ด SD หรือไดรฟ์ USB วิธีที่ดีที่สุดของฉันสำหรับการรับข้อมูลดูเหมือนจะเป็นหน้าจอและอาจเป็นลำโพง / สายสัญญาณเสียง
  • ฉันกำลังเขียนสคริปต์เพื่อลองอ่านไฟล์และส่งออกไฟล์ที่สามารถอ่านได้

ข้อเสนอแนะยังคงยินดีอย่างมาก!

อัปเดต 2 : สิ่งใหม่กว่า:

  • ในคอมพิวเตอร์ที่กำลังจะตายฉันเขียนสคริปต์ Python ที่จะอ่านไฟล์ทีละบิตและพยายามถ่ายทอดบิตเหล่านั้นโดยการกระพริบหน้าจอสีเดียวหรืออื่น ตอนนี้มันกำลังพยายามทำโค้ดสองบิตโดยที่สีแดงสีเขียวสีน้ำเงินและสีขาวล้วนเป็นคู่สองบิต อย่างไรก็ตามมันใช้งานไม่ได้ดีดังนั้นฉันอาจเปลี่ยนเป็นสองสีและทำทีละบิต
  • ในแล็ปท็อปอื่นของฉัน (Thinkpad รุ่นเก่าที่ไว้ใจได้ที่ฉันยอมแพ้สำหรับ XPS ใหม่ที่ร้อนแรงนี้) ฉันเขียนสคริปต์ที่อ่านจากเว็บแคมโดยใช้ไลบรารี OpenCV Python แนวคิดก็คือให้ถอดรหัสรหัสที่ส่งมาจากคอมพิวเตอร์เครื่องอื่น ปัญหาคืออัตราเฟรมจากกล้องนั้นเท่ากับ 15 เฟรมต่อวินาทีซึ่งหมายความว่าถ้าฉันมีการถ่ายโอนที่สมบูรณ์แบบไม่มีข้อผิดพลาดอัตราข้อมูลสูงสุดของฉันจะเป็น 30 บิตต่อวินาทีเช่น 225 ไบต์ต่อวินาที นั่นคือ 324k ต่อวัน
  • ใน XPS ที่กำลังจะตายฉันสามารถใช้tarเพื่อแพ็คไฟล์ที่ต้องการลงในไฟล์เก็บถาวรเดียวซึ่งคือ 1.7 MB แต่น่าเสียดายที่gzip, bzip2, xz, lzopและสิ่งสาธารณูปโภคการบีบอัดจะไม่สามารถใช้ได้ แต่ใช้zlibโมดูลPython ของฉันสามารถบีบอัดไฟล์นี้ลงไปที่ 820KB ด้วยขนาดดังกล่าวฉันอาจได้รับสิ่งนี้ส่งไปในอีกไม่กี่วัน
  • เนื่องจากวิธีการถ่ายโอนนี้มีแนวโน้มที่จะเกิดข้อผิดพลาดได้ง่ายมากฉันจะใช้รหัส Hamming บน XPS เพื่อเพิ่มการแก้ไขข้อผิดพลาดเมื่อส่งข้อมูล
  • มีแนวโน้มว่าจะเกิดภาวะแทรกซ้อนเพราะนั่นคือสิ่งที่เกิดขึ้น แต่อย่างน้อยก็ดูเหมือนจะเป็นไปได้ที่จะดึงข้อมูลนี้ออกมา!
  • เนื่องจากนี่ยังเป็นวิธีที่ค่อนข้างน่าเบื่อในการส่งข้อมูลฉันจึงมองหาไดรเวอร์ USB อนุกรมเพิ่มเติม โมดูลที่ผมได้พยายามที่จะโหลด ( usb-serial-simple, usb-debug, safe-serial) ให้ I / O ผิดพลาด ฉันไม่คิดว่ามันสร้างไว้ในเคอร์เนลด้วยเนื่องจากไม่มีอุปกรณ์ / dev / ttyUSB * อยู่

ขอบคุณสำหรับคำแนะนำของทุกคนจนถึงตอนนี้ --- ฉันรู้ว่านี่ไม่ใช่คำถามที่ชัดเจนเนื่องจากพวกคุณไม่รู้ว่าโปรแกรมหรือไฟล์ใดที่สามารถอ่านได้ล่วงหน้า ยังเปิดรับข้อเสนอแนะที่ดีกว่าวิธีวิดีโอนี้!

ปรับปรุง 3 : สิ่งใหม่ล่าสุด

  • ฉันได้เว็บแคม PS3 Eye และหลังจากปิดใช้งานอัตราขยายและการรับแสงอัตโนมัติฉันกำลังอ่านข้อมูลจาก XPS ได้สำเร็จแม้ว่าจะมีข้อผิดพลาด 1 ไบต์ต่อวินาที นี่คือความสำเร็จที่ยิ่งใหญ่ --- ข้อมูลแรกได้ถูกกรอง! แต่อัตราช้าเกินไปที่จะเอา 820KB ออกมาในเวลาที่เหมาะสมและอัตราความผิดพลาดสูงเกินไป

การส่งบิตหนึ่งพร้อมนาฬิกา

  • ปัญหาคือการเขียนไปยังเทอร์มินัลช้าเกินไป การอัปเดตหน้าจอไม่ได้เป็นแบบทันทีทันใดขอบคุณ (ฉันคิดว่า) ความช้าของurxvtเทอร์มินัลอีมูเลเตอร์ที่ฉันสามารถเข้าถึงได้
  • ฉันค้นพบว่าฉันมีสิทธิ์เข้าถึงคอมไพเลอร์ Rust บน XPS ฉันเขียนสคริปต์การส่งใหม่โดยใช้ Rust เพื่อดูว่าจะปรับปรุงความเร็วการรีเฟรชเทอร์มินัลหรือไม่ แต่ก็ไม่ได้ช่วยอะไร
  • เนื่องจากฉันไม่สามารถเพิ่มจำนวนเฟรมได้ฉันจึงต้องพยายามเพิ่มจำนวนข้อมูลที่ฉันได้รับต่อเฟรม แนวทางปัจจุบันของฉันมีลักษณะดังนี้:

การส่งกริด

ครึ่งขวายังคงเป็นสัญญาณนาฬิกากะพริบและปิดเพื่อทำเครื่องหมายการมาถึงของเฟรมใหม่ แต่ทางซ้ายตอนนี้เป็นกริดที่แต่ละเซลล์ถูกทำเครื่องหมายด้วยสี่เหลี่ยมสีแดงที่มุมแล้วเซลล์สีเขียวไปทางขวาและลงจากสี่เหลี่ยมสีแดงจะกระพริบเปิดและปิดเพื่อระบุบิต สี่เหลี่ยมสีแดงควรอนุญาตให้คอมพิวเตอร์ที่รับสัญญาณปรับเทียบตำแหน่งของเซลล์ ฉันยังไม่ได้รับข้อมูลใด ๆ ด้วยวิธีนี้ แต่มันเป็นสิ่งที่ฉันกำลังทำงานอยู่

  • มีคนแนะนำว่าฉันมองไปที่การเขียนรหัส QR แทนรูปแบบสีเฉพาะกิจเหล่านี้ ฉันจะพิจารณาด้วยเช่นกันและอาจใช้สิ่งนั้นแทนแนวทางกริดนี้ การแก้ไขข้อผิดพลาดจะเป็นชัยชนะที่ดีเช่นเดียวกับความสามารถในการใช้ไลบรารีมาตรฐานในการถอดรหัส
  • ฉันได้เรียนรู้ว่าฉันมีสิทธิ์เข้าถึง libasound (ไลบรารีเสียง ALSA) แต่ไม่ใช่ไฟล์ส่วนหัวที่เกี่ยวข้อง ( alsa/asoundlib.hหรืออะไรก็ตาม) หากใครรู้วิธีการใช้ไลบรารี่ที่ใช้ร่วมกันโดยไม่มีส่วนหัวหรือสามารถช่วยฉันเขียนเฉพาะส่วนหัวด้านขวาเพื่อให้ฉันสร้างเอาต์พุตเสียงแล้วฉันก็จะมีวิธีใช้ไฟล์เสียงในการลบไฟล์ออก
  • อีกวิธีหนึ่งถ้าใครบางคนสามารถช่วยฉันจัดการอุปกรณ์ USB โดยไม่ต้องเข้าถึง libusb ดังนั้นฉันอาจทำอะไรกับมันได้บ้าง

ก้าวไปข้างหน้า!

อัพเดท 4 : สร้างสัญญาณเสียงออก!

ผู้ใช้ Francesco Noferi ทำงานได้ดีมากช่วยฉันใช้ไลบรารี ALSA ที่กล่าวถึงในการอัพเดทก่อนหน้านี้ คอมไพเลอร์ C มีปัญหา แต่ใช้คอมไพเลอร์สนิมก็สามารถที่จะใช้ FFI libasoundจะเรียกโดยตรงใน ตอนนี้ฉันได้เล่นข้อมูลของฉันผ่านเสียงและดูเหมือนว่าจะฟังเพลงที่หูของฉัน! ยังต้องได้รับการจัดตั้งช่องทางการสื่อสารที่แท้จริง แต่ฉันรู้สึกมีความหวังมาก ณ จุดนี้งานของฉันมีไว้เพื่อใช้โมเด็มดังนั้นหากใครมีคำแนะนำเกี่ยวกับวิธีที่ดีในการทำสิ่งที่ฉันหูทั้งหมด การปรับแบบอุดมคตินั้นใช้งานง่ายด้วยมือและ demodulation ซึ่งมีไลบรารี่ที่ฉันสามารถใช้ได้ ตั้งแต่นี้สามารถไปโดยตรงผ่านสายสัญญาณเสียงและไม่ผ่านเครือข่ายโทรศัพท์ในทางทฤษฎี เราสามารถทำได้ดีกว่า 56kbps หรืออะไรก็ตามที่เป็นมาตรฐานในวันนั้น แต่ในทางปฏิบัติแล้วใครจะรู้ว่าเราจะได้อะไร

ขอขอบคุณทุกคนที่ติดตามที่นี่และที่ / r / techsupportmacgyverและที่ / r / rustมีส่วนร่วมในคำแนะนำที่ยอดเยี่ยมมากมาย จะได้รับ "โมเด็ม" นี้ใช้งานได้ในไม่ช้าจากนั้นฉันจะจบเรื่องนี้ด้วยบทส่งท้าย ฉันคิดว่าฉันอาจวางโค้ดของฉันไว้ที่ไหนสักแห่งสำหรับคนที่สิ้นหวังคนอื่น ๆ เพื่อใช้ประโยชน์ในอนาคต --- อาจเป็นที่เก็บเครื่องมือการกรองแบบแปลก ๆ ที่ง่ายต่อการพิมพ์ลงในเครื่องที่ตายแล้วด้วยมือ? เราจะดูว่าเกิดอะไรขึ้น

UPDATE 5 : มันใช้เวลานานในการต่อสู้กับ ALSA และอุปกรณ์บันทึกเสียง USB StarTech USB ราคาถูกของฉัน (ไม่มีสายเชื่อมต่อในแล็ปท็อปที่รับ) และการเริ่มต้นผิดพลาดหลายครั้งพยายามที่จะม้วนโปรโตคอลการส่งผ่านของตัวเอง เพื่อนผู้ที่ชื่นชอบวิทยุฮามของฉันฉันใช้โปรโตคอล RTTY บรรทัดที่ทำงานที่ 150 baud ซึ่งในทางปฏิบัติให้ฉันประมาณ 10 ไบต์ต่อวินาที มันไม่เร็วมาก แต่น่าเชื่อถือพอสมควร และฉันเกือบจะทำการถ่ายโอนไฟล์ 820KB ของฉันแล้วตรวจสอบโดยใช้การตรวจสอบ CRC32 (ใช้ฟังก์ชั่น crc32 จาก Pythonzlibโมดูลซึ่งฉันสามารถเข้าถึง) ดังนั้นฉันจึงประกาศชัยชนะและต้องการขอบคุณอีกครั้ง! ฉันจะใช้เวลามากขึ้นในการหาไฟล์เพิ่มเติมที่สามารถอ่านได้และฉันสามารถถ่ายโอนได้ แต่มีการวางรากฐาน มันสนุกมากที่ได้ทำงานกับคุณทุกคน!

การปรับปรุงครั้งสุดท้าย :

บนเครื่องที่กำลังจะตาย:

$ 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

:-)


4
ที่เกี่ยวข้อง:  Unix การกู้คืนตำนาน
G-Man

2
python -m SimpleHTTPServerไปที่ไดเรกทอรีที่คุณมีไฟล์และออกคำสั่ง ตอนนี้คุณมีการแชร์ไฟล์ผ่านเซิร์ฟเวอร์ HTTPในพอร์ต 8000 เปิดเบราว์เซอร์ในอุปกรณ์อื่นในเครือข่ายเดียวกันและพิมพ์สิ่งต่อไปนี้ http://<IP address>:8000และเริ่มดาวน์โหลดทุกสิ่งที่คุณทำได้
jcbermu

2
สิ่งดีๆมากมายที่คุณได้รับที่นี่ ฉันหวังว่าฉันจะโหวตได้สองครั้ง
Kamil Maciorowski

1
วิธีระบายความร้อนอึออกจาก RAM เพื่อลดความผันผวนและย้ายไปยัง XPS สำรองหรือไม่ en.wikipedia.org/wiki/Cold_boot_attack
ราก

1
ค่อนข้างนอกหัวข้อ แต่มันจะดีถ้าคุณสามารถเชื่อมโยงเธรด reddit ที่เกี่ยวข้องเพื่อให้เราสามารถเห็นสิ่งที่ได้รับการแนะนำที่นั่น
Bob

คำตอบ:


15

นี่เป็นตัวอย่างของโปรแกรม libasound ที่มีคำจำกัดความเพียงพอที่จะรับเอาต์พุต wav พื้นฐาน 2 แชนเนล 44.1k wav โดยไม่ต้องมีส่วนหัว

แก้ไข: จริง ๆ แล้วฉันไม่แน่ใจว่าการทิ้งข้อมูลตรงตามที่ wav ใช้งานได้หรือไม่เพราะเสียงรบกวนเมื่อบันทึกอาจทำให้เกิดความเสียหายได้ง่าย แต่คุณอาจทำอะไรบางอย่างเช่นคลื่นไซน์ของบิตที่ความถี่สูงซึ่งน่าเชื่อถือมากขึ้น

EDIT2: ถ้ามี aplay อยู่และใช้งานได้คุณยังสามารถใช้และเพียงแค่เขียนโปรแกรมที่ให้เสียงดิบและไพพ์ลงใน aplay หรืออะไรก็ได้ที่สามารถเล่นเสียงได้

EDIT3: แก้ไขเพื่อไม่ให้ใช้ส่วนหัวใด ๆ เลย

หาก -lasound ไม่ได้รวบรวมเพิ่ม -L / path / ที่ไหน / 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 นั่นคือการไปถึงจุดที่ฉันสามารถพิมพ์ด้วยมือได้ แต่ข้อผิดพลาดจะตรวจจับได้ยาก
Josh Hansen

1
ฉันได้แก้ไขโปรแกรมที่จะไม่ใช้ส่วนหัวใด ๆ ลองเลย
Francesco Noferi

gccให้ฉัน "ข้อผิดพลาดของรถบัส" (ซึ่งมากับบางโปรแกรม แต่ไม่เข้าใจจริง ๆ ) โชคดีที่ฉันมีคอมไพเลอร์ Rust ที่ใช้งานได้ดังนั้นการใช้ความสามารถของ FFI ของ Rust ฉันใช้โค้ดของคุณด้านบนโดยใช้ Rust มันรวบรวมและใช้งาน แต่ฉันก็ยังไม่ได้ยินอะไรเลย แต่ฉันไม่แน่ใจจริงๆว่าเสียงดังขึ้นหรือไม่ --- อาจถูกปิดเสียง แต่ฉันไม่สามารถเรียกใช้ alsamixer / xfce4-mixer เพื่อตรวจสอบได้ ฉันกำลังพิจารณาใช้ alsalib โดยตรงเพื่อให้แน่ใจว่าเสียงดังขึ้น ขอบคุณมากสำหรับความพยายามของคุณในครั้งนี้!
Josh Hansen

1
ดีใจที่ได้ยินว่าคุณใช้งาน! สำหรับปริมาณที่นี่เป็นโปรแกรมที่ระบุการควบคุมการผสมอุปกรณ์เริ่มต้นและ maxes พวกเขาทั้งหมด: gist.github.com/008f0c3acdbcae886a19868a0554987b หากคุณยังมีปัญหาคุณอาจต้องเขียนบางสิ่งเพื่อแจกแจงสัญญาณเสียงและรายการตัวผสมของพวกเขาเพื่อให้แน่ใจว่ามันเสียจริง ๆ และไม่เพียงแค่ส่งออกไปยังอุปกรณ์ที่ไม่ถูกต้อง / ปิดเสียง สามารถลองเพิ่มการตรวจสอบข้อผิดพลาดในโปรแกรมเอาต์พุตเสียงเพื่อดูว่ามีข้อผิดพลาดหรือไม่ ข้อผิดพลาดของบัสหมายถึง "พยายามเข้าถึงหน่วยความจำที่ไม่สามารถอยู่ที่นั่นได้" ดังนั้นหน่วยความจำที่แมป libs เสียหาย
Francesco Noferi

เปิดเสียงขึ้น แต่ฉันไม่ได้ส่งไบต์ใด ๆ ไปยังลำโพง --- อย่างใดฉันไม่เข้าใจวิธีการอ่านลงในบัฟเฟอร์ใน Rust มันอ่าน 0 ไบต์เสมอ แต่ใช้บางไบต์ฉันสร้างฉันสามารถผลิตเสียงออก! นี่มันเยี่ยมมากดูเหมือนว่าจะเป็นหนทางที่ดีในการทำความสะอาดข้อมูล ตอนนี้ถึงเวลาที่จะเรียนรู้เกี่ยวกับกลยุทธ์การปรับ / demodulation เพื่อให้ฉันสามารถทำสิ่งนี้ได้อย่างชาญฉลาด ขอบคุณมากสำหรับการทำงานของคุณในเรื่องนี้ --- ชื่นชมมาก!
Josh Hansen

3

HDMI หรือพอร์ตแสดงผลอื่น ๆ ของคุณใช้งานได้หรือไม่ ถ้าเป็นเช่นนั้นคุณสามารถใช้อุปกรณ์จับภาพหน้าจอเพื่อบันทึกเป็นวิดีโอและดำเนินการในภายหลัง ดังนั้นจึงไม่ถูก จำกัด โดยอัตราเฟรมของเว็บแคมของคุณ


2

วิธีที่คุณเข้ารหัสฐานสิบหกข้อมูลของคุณและส่งออกมันหน้าต่อหน้าไปยังสถานี?

คุณสามารถเพิ่มคำนำหน้าด้วยออฟเซ็ตในไบนารีเพื่อให้คุณสามารถสร้างหน้าใหม่ได้ง่าย (สำหรับการแก้ไขด้วยตนเอง?)

จากนั้นในคอมพิวเตอร์เครื่องอื่นให้ใช้ซอฟต์แวร์ OCR เพื่อสแกนหน้าเอกสาร

เทอร์มินัล 80x25 จะให้ผลตอบแทน 1,000 ไบต์ต่อหน้า (ลบที่ว่างสำหรับส่วนนำหน้า) ดังนั้นในหน้าประมาณ 1,000 หน้าคุณสามารถดึงข้อมูลออกมาได้ แม้แต่ที่หน้าเดียวต่อวินาทีนั่นก็น้อยกว่า 20 นาที

การเข้ารหัส Hex นั้นง่ายต่อการเขียนและยังให้การแก้ไขข้อผิดพลาดในรูปแบบดิบ (มีสัญลักษณ์ที่ใช้ได้เพียง 16 ตัว)


1

คุณสามารถตั้งค่าการเชื่อมต่อเครือข่ายได้หรือไม่? ssh อาจจะมากเกินไป แต่ถ้าคุณสามารถใช้ netcat บนเครื่อง 2 เครื่องคุณอาจจะสามารถถ่ายโอนข้อมูลได้ หนึ่งในโหมดการส่งหนึ่งในโหมดฟัง หากสิ่งที่คุณต้องทำคือถ่ายโอนข้อความนี่อาจเป็นวิธีแก้ปัญหา ..

แก้ไข: ไม่เป็นไรเพียงแค่อ่านว่าคุณขาดการเชื่อมต่อเครือข่ายเช่นกัน ..


1
ฉันคิดว่าคำตอบของคุณควรจะอยู่ที่นั่น ncไม่มีการพึ่งพาอื่นนอกจากสแต็กเครือข่ายที่ใช้งานได้ซึ่ง OP มีจนกระทั่งเขาระเบิดขึ้น สิ่งนี้ช่วยลดโอกาสที่ผู้ปฏิบัติการจะไม่เริ่มทำงาน หากบุคคลอื่นพบปัญหาที่คล้ายกันนั่นเป็นทางออกที่มีประโยชน์อย่างแน่นอน
zneak

0

คุณอาจจะสามารถที่จะส่งอีเมลตัวเองจาก commandline รวมทั้งไฟล์ส่ง

สิ่งที่ต้องการ:

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

ควรทำงาน.

ตัวอย่างเพิ่มเติม: http://www.binarytides.com/linux-mail-command-examples/


น่าเศร้าที่mailมันไม่ได้อยู่ในกลุ่มของโปรแกรมที่ฉันสามารถรันได้ รวมทั้งฉันสูญเสียการเชื่อมต่อเครือข่ายของฉัน :-(
Josh Hansen

อุ๊ยตาย ตกลงทั้งหมดที่ฉันมีคือcatไฟล์และถ่ายรูปด้วยมือถือของคุณ
mcalex

อาจเป็นได้!
Josh Hansen

0

Python สามารถเข้าถึงพอร์ต audio-out ของคุณได้หรือไม่? คุณอาจลองถ่ายโอนข้อมูลโดยใช้สิ่งนั้น - ดูสิ่งนี้หรือสิ่งนั้น


ฉันไม่คิดว่าฉันได้ติดตั้งไลบรารี่เสียงของไพ ธ อนแล้ว แต่มีอุปกรณ์ ALSA อยู่ใน / dev / snd ติดตั้ง alsa-lib แล้ว แต่ฉันไม่คิดว่าฉันจะอ่านได้ มีวิธีการเขียนไปยังอุปกรณ์เสียงโดยตรงหรือไม่?
Josh Hansen

@ user17219 คุณแน่ใจหรือไม่ว่าไม่มีossaudiodevไลบรารีในการติดตั้ง Python ของคุณ? ควรเป็นโมดูลมาตรฐานใน Linux และ FreeBSD หากฉันอ่านเอกสารอย่างถูกต้อง import ossaudiodevทำงานบน Ubuntu ของฉันได้ทันที
lukeg

ที่จริงคุณอยู่ถูกว่ามีอยู่ แต่น่าเสียดายที่มันไม่ได้อยู่ในหน่วยความจำดังนั้นฉันจึงไม่สามารถอ่านได้ - พยายามอ่านโมดูลจากดิสก์ซึ่งส่งผลให้เกิดข้อผิดพลาด i / o :-( นั่นยอดเยี่ยมมาก ข้อเสนอแนะ แต่
Josh Hansen

@ user17219 นั่นน่าเสียดาย tldp.org/HOWTO/Alsa-sound-6.html - ลิงก์นี้แสดงให้เห็นว่าคุณอาจลองใช้เพียงแค่catการใช้ไฟล์ไปยัง/dev/snd/pcm...อุปกรณ์
lukeg

ฉันพยายามแล้ว แต่ได้รับข้อผิดพลาดแปลก ๆ ฉันคิดว่าอุปกรณ์ pcm มีการเปลี่ยนแปลงนับตั้งแต่มีการเขียนเอกสารตั้งแต่ตอนนี้มีตัวแปร * p และ * c ฉันได้พยายามcatไอเอ็นจี/dev/randomเข้าทั้งหมดของพวกเขา แต่จะไม่มีประโยชน์
Josh Hansen

0

คุณสามารถนำ SSD ออกจากเครื่องของคุณและdd/ photorec/ ฯลฯ ในเครื่องอื่นได้

นี่คือคู่มือบริการของ Dell สำหรับ 9550 - ดูหัวข้อ "การถอดไดรฟ์โซลิดสเตต" เมื่อคุณถอดไดรฟ์ออกคุณจะได้รับกล่องหุ้ม M.2 USB ภายนอกและต่อดิสก์เข้ากับเครื่องอื่นเพื่อกู้คืนข้อมูลของคุณ


3
-1 ในกรณีนี้คำแนะนำของคุณอาจทำให้สิ่งเลวร้ายลงไปมาก ก่อนอื่นเราไม่สามารถแน่ใจได้ว่าไฟล์ใดที่ถูกส่งไปยัง SSD ซึ่งอาจมีอยู่ในแคช บางไฟล์ไม่ได้รับการบันทึกเลยแม้แต่น้อย: "แต่ฉันยังคงเปิดไฟล์ที่น่าสนใจในตัวแก้ไขฉันไม่สามารถบันทึกไฟล์ได้ทุกที่ แต่ฉันสามารถคัดลอกเนื้อหาได้" ต่อไปมีความเสี่ยงที่ SSD จะไม่เริ่มต้นอีกต่อไป มันทำงานตอนนี้เพราะมันเริ่มต้นก่อนที่จะผิดปกติ โซลูชันของคุณหมายถึงการสูญเสียเนื้อหา RAM อย่างแน่นอนและอาจมีเนื้อหา SSD ผมเกรงว่ามันจะทำรัฐประหารพระคุณ de
Kamil Maciorowski

0

ยิงยาว ๆ แต่ distros บางตัวมีโปรโตคอลวิทยุแฮมอยู่หนึ่งตัวทั่วไปคือ fldigi ลอง fldigi อันไหน

หากคุณมีสิ่งนี้หรืออย่างอื่นพวกเขาจะแปลงข้อความเป็นเสียงโดยทั่วไปจะใช้รูปแบบของการเปลี่ยนเฟสแบบกะ เอาต์พุตจะไปที่ลำโพง / หูฟังของคุณและรับคอมพิวเตอร์ที่มีความเสถียรในห้องเดียวกันโดยมีรายชื่ออยู่บนไมโครโฟน (สิ่งนี้จะกำจัดวิทยุแฮมซึ่งส่งและรับเสียงผ่านคลื่นอากาศ)


0

วิธีการรหัส QR อาจดี คุณสามารถใส่ได้มากเท่าที่คุณสามารถทำได้บนหน้าจอและรีเฟรชมันทันทีที่เทอร์มินัลของคุณอนุญาต จากนั้นบันทึกหน้าจอ XPS ด้วยกล้อง (ตรงข้ามกับการใช้เว็บแคม) และเพียงแค่ทำการถอดรหัสวิดีโอที่คุณได้บันทึกไว้ อาจมีประโยชน์ในการใช้การจับภาพเคลื่อนไหวช้าแม้กระทั่ง


0

การแสดงยอดเยี่ยม :) ฉันมี 1 ข้อเสนอแนะ: คุณยังสามารถอ่านข้อมูลจากหน้าจอโดยใช้โฟโต้ไดโอดที่เชื่อมต่อกับการ์ดเสียงของคอมพิวเตอร์เครื่องอื่น


หรือต่อสายสัญญาณเสียงเข้ากับอินพุตของการ์ดเสียงภายนอก (เพื่อกำจัดสัญญาณรบกวน) รับแรงบันดาลใจได้ที่นี่: chdk.wikia.com/wiki/Ob ขอรับ_a_firmware_dump
Milo O'h

คำถามและคำตอบก่อนหน้านี้สองสามข้ออภิปรายการจับภาพหน้าจอด้วยกล้อง แนวทางของคุณจะดีขึ้นหรือไม่ หรือแม้กระทั่งที่ใดก็ได้ใกล้ดี ถ้าเป็นเช่นนั้นโปรดอธิบาย อย่าตอบในความคิดเห็น แก้ไขคำตอบของคุณเพื่อให้ชัดเจนและสมบูรณ์ยิ่งขึ้น
G-Man
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.