ฉันจะกู้คืนแบบฟอร์มใน Firefox * โดยไม่ต้องติดตั้งปลั๊กอินได้อย่างไร [ซ้ำ]


33

ซ้ำได้:
วิธีการกู้คืนข้อมูลแบบฟอร์มสำหรับเว็บเพจใน Firefox

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

การค้นหาเว็บอย่างรวดเร็วเปิดเผยว่าLazarusให้การกู้คืนแบบฟอร์มสำหรับ Firefox อย่างไรก็ตามการติดตั้งปลั๊กอินนั้นจำเป็นต้องรีสตาร์ท Firefox และแม้หลังจากรีสตาร์ท Firefox (ซึ่งฉันยังไม่ได้ทำ) ลาซารัสไม่สามารถกู้คืนฟอร์มที่ยังไม่ได้สำรอง

ตอนนี้ม้าออกไปจากโรงนาฉันต้องการทำสิ่งที่เป็นไปไม่ได้: กู้คืนข้อความที่ฉันพิมพ์บางส่วนหรือทั้งหมดโดยไม่ต้องรีสตาร์ทเบราว์เซอร์ของฉัน


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


1
ฉันคิดว่าคุณตอบคำถามของคุณเองที่นี่ ...
John T

2
@John T: แน่นอน ฉันแค่สร้างอาหารสัตว์ Google ให้ผู้อื่นด้วยปัญหาเดียวกัน แต่ถ้าใครมีคำแนะนำที่ดีกว่าพวกเขาก็ยินดีต้อนรับอย่างแน่นอน
Joey Adams

8
นี่ไม่ใช่สิ่งที่ซ้ำกันแน่นอน คำถามที่อ้างอิงของคำตอบด้านบนต้องติดตั้งปลั๊กอินซึ่งไม่ได้ช่วยให้ผู้ใช้ถ้าพวกเขาอยู่แล้วหายไปแบบฟอร์ม
Joey Adams

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

1
superuser.com/questions/512669/…มีความเกี่ยวข้องและจัดหาโซลูชันที่ใช้งานได้สำหรับฉันผ่านเทคนิคเครื่องมือนักพัฒนาเว็บ
pbhj

คำตอบ:


57

อย่ารีสตาร์ทเบราว์เซอร์ของคุณหรือกดปุ่มย้อนกลับ!

บน Linux:

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

ขั้นแรกให้ดัมพ์คอร์โดยใช้gcoreยูทิลิตี้ซึ่งต้องติดตั้ง gdb (ตัวดีบัก GNU):

$ ps -e | grep firefox
 7089 ?        00:02:23 firefox
$ gcore 7089
[New Thread 0xa8ffeb70 (LWP 8924)]
[New Thread 0xb25feb70 (LWP 8531)]
[New Thread 0x9d7feb70 (LWP 8527)]
... snip ...
[New Thread 0xb5ffeb70 (LWP 7099)]
[New Thread 0xb67ffb70 (LWP 7098)]
[New Thread 0xb72f8b70 (LWP 7097)]
Saved corefile core.7089

โปรดทราบว่าการถ่ายโอนข้อมูลหลักอาจใช้พื้นที่ดิสก์หลายร้อยเมกะไบต์

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

ตอนนี้พยายามจดจำวลีจากบทความของคุณ (ตัวอย่างเช่น "เอฟเฟกต์ที่ลึกซึ้ง") และใช้grepเพื่อดูว่ามีอยู่ในเอกสารหรือไม่:

$ grep 'a profound effect' core.7089 
Binary file core.7089 matches

หากคุณได้รับ "ไฟล์ไบนารี ... ตรงกัน" ดีก็อยู่ที่นั่น! ถ้าไม่ลองวลีเพิ่มเติม หากgrepความพยายามทั้งหมดของคุณก่อให้เกิดผลลัพธ์ที่ว่างเปล่าบทความของคุณอาจหายไปตลอดกาลและไม่มีอะไรที่คุณสามารถทำได้ (คุณสามารถลองgrep -R 'a profound effect' ~/.mozillaได้ แต่ฉันสงสัยว่ามันจะใช้งานได้)

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

$ grep -B 20 -A 20 -a 'a profound effect' core.7089 > /tmp/out
$ less /tmp/out

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

ตอนนี้พิมพ์/a profound effectกด Enter รอและเลื่อนหน้าลงจนกว่าคุณจะเห็นสิ่งที่จำได้:

ข้อความแสดงแทน

ปัง! หากคุณไม่ชอบผลลัพธ์นี้ให้ดูว่ามีคนอื่นอีกหรือไม่โดยพิมพ์ 'n' นอกจากนี้อย่าลืมพิสูจน์อักษรขยะเพื่อที่คุณจะได้ไม่ต้องโพสต์ข้อความ:

ใจของฉันมักจะสร้างความคิดที่ชัดเจนในภาษานั้น

ฉันคิดว่ามันถูกอุดตันเช่นนี้เพราะหน่วยความจำที่เก็บชิ้นส่วนการเขียนเรียงความของคุณไม่ได้รับการจัดสรรอีกต่อไปและถูกเหยียบย่ำด้วยการจัดสรรครั้งต่อไป

บน Windows:

ขั้นตอนเหมือนกัน ก่อนอื่นให้สร้าง core dump ของ Firefox สามารถทำได้ในตัวจัดการงาน ในภาษาอังกฤษรายการเมนูที่สร้างการถ่ายโอนข้อมูลไฟล์

ทิ้งแกนของ Firefox

การถ่ายโอนข้อมูลใช้เวลาไม่กี่วินาที

ตำแหน่งดัมพ์หลัก

จากนั้นใช้โปรแกรมแก้ไข hex เช่น http://mh-nexus.de/en/hxd/ เพื่อเปิดดัมพ์และค้นหาข้อความที่หายไป

HxD สำหรับค้นหาดัมพ์


1
ทำงานกับฉันใน Windows แม้หลังจากกดปุ่มย้อนกลับ ตอนนี้มันลำบากมากขึ้นที่ได้รับกระบวนการมากมายที่สร้างโดย Firefox แต่หลังจากบันทึกทั้งหมดแล้วใช้เครื่องมือ (ตัวจัดการ FAR) เพื่อค้นหาการเข้ารหัสหลาย ๆ ตัวพร้อมกันมันใช้งานได้ (UTF-16 endian เล็ก ๆ น้อย ๆ เป็นผลลัพธ์ในกรณีของฉัน)
alexandroid

ทำงานกับโครเมียมบน Linux ต้องรีเฟรชหน้าเว็บเพื่อหาว่าหน้าใดดำเนินการโดยการตรวจสอบhtop(โครเมี่ยมดูเหมือนจะสร้างเธรดจำนวนมาก)
passerby51

1

สิ่งแรก - แบบฟอร์มมักจะไม่ถูกแคช ดังนั้นสิ่งที่คุณส่งจะถูกส่งไปยังไซต์และหากคุณทำเช่นนั้น คุณต้องพิมพ์อีกครั้ง

Lazarusใช้SQLite DBเพื่อเก็บข้อมูลฟอร์มของคุณ (แน่นอนหลังจากติดตั้งแล้ว)

ป.ล. : การถ่ายโอนข้อมูลหลักเป็นความพยายามที่น่ารักที่จะทำสิ่งที่จำเป็น แต่ฉันสงสัยว่ามีประโยชน์ต่อความพยายามในการที่ (นี้จะมีประโยชน์มากขึ้นเป็นเทคนิคสปายแวร์ / มัลแวร์ - ไม่มีความผิดJoeyที่นี่)


1
ที่จริงแล้วเทคนิคการถ่ายโอนข้อมูลหลักกลายเป็นเรื่องง่ายกว่าที่ฉันคาดไว้
Joey Adams

@ โจอี้มันทำให้คุณแล้วคุณก็ประกาศว่ามันเป็นทางออกสำหรับปัญหาของคุณเอง ฉันสงสัยว่ามันจะดีเพียงใดสำหรับทุกคนที่ตีปัญหาเดียวกัน - พวกเขาควรติดตั้งสิ่งต่าง ๆ เช่นลาซารัสหรือรอรับแกนทิ้งและลองเสี่ยงโชคหรือไม่? ถ้าเป็นเช่นนั้นมันจะคุ้มค่าที่จะจำไว้ว่าสองสิ่งนี้ทำงานอย่างไร
nik

1
อันที่จริงแล้วเทคนิคการเททิ้งหลักมีประโยชน์กับฉันมากและง่ายมากที่จะทำ
lvella

2
กับการสูญเสียข้อมูลในอนาคตแบบฟอร์มLazarusสัญญา แต่เขามีจุดอ่อนเล็กน้อยที่ไม่ทำงานเลย
Nicolas Barbulesco
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.