การสวมหน้ากาก: ประเด็นด้านความปลอดภัยแบบยูนิโค้ด แทนที่จะเป็นไฟล์จะมี "อักษรอียิปต์โบราณ" (สัญลักษณ์ที่อ่านไม่ออก) บนแฟลชไดรฟ์ Windows ในแอปพลิเคชัน Windows ต่างๆ

Krakozyabry - คำที่น่าสนใจคืออะไร? ผู้ใช้ชาวรัสเซียมักใช้คำนี้เพื่ออธิบายการแสดง (การเข้ารหัส) ที่ไม่ถูกต้อง/ไม่ถูกต้องของอักขระในโปรแกรมหรือระบบปฏิบัติการเอง
ทำไมสิ่งนี้ถึงเกิดขึ้น? คุณจะไม่พบคำตอบที่ชัดเจน นี่อาจเป็นเพราะกลอุบายของไวรัส "ตัวโปรด" ของเราซึ่งอาจเนื่องมาจากความผิดปกติของระบบปฏิบัติการ Windows (เช่นไฟฟ้าดับและคอมพิวเตอร์ปิดอยู่) บางทีโปรแกรมอาจสร้างข้อขัดแย้งกับระบบปฏิบัติการอื่นและทุกอย่างก็ดำเนินไป ยุ่งเหยิง โดยทั่วไปอาจมีได้หลายสาเหตุ แต่เหตุผลที่น่าสนใจที่สุดคือ “มันพังแบบนั้น”
อ่านบทความและดูวิธีแก้ไขปัญหาการเข้ารหัสในโปรแกรมและ Windows OS เมื่อเกิดปัญหาแล้ว

สำหรับผู้ที่ยังไม่เข้าใจว่าฉันหมายถึงอะไร นี่คือบางส่วน:


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

“ สิ่งต่าง ๆ ” หลายอย่างมีหน้าที่รับผิดชอบในการแสดงการเข้ารหัส (แบบอักษร) ใน Windows - ภาษา, รีจิสตรีและไฟล์ของระบบปฏิบัติการเอง ตอนนี้เราจะตรวจสอบแยกกันทีละจุด

วิธีลบและแก้ไข krakozyabry แทนภาษารัสเซีย (ตัวอักษรรัสเซีย) ในโปรแกรมหรือ Windows

1. ตรวจสอบ ภาษาที่ติดตั้งสำหรับโปรแกรมที่ไม่รองรับ Unicode บางทีมันอาจจะหายไปกับคุณ

มาดูเส้นทางกัน: แผงควบคุม - ตัวเลือกภูมิภาคและภาษา - แท็บขั้นสูง
ที่นั่นเราตรวจสอบให้แน่ใจว่าเป็นภาษารัสเซีย


นอกจากนี้ใน Windows XP นอกจากนี้ที่ด้านล่างยังมีรายการ "หน้าโค้ดตารางการแปลง" และในนั้นมีบรรทัดที่มีหมายเลข 20880 ต้องมีชาวรัสเซียอยู่ที่นั่นด้วย

6. จุดสุดท้ายที่ฉันให้ไฟล์ที่ช่วยฉันแก้ไขทุกอย่างให้คุณครั้งหนึ่งและนั่นคือสาเหตุที่ฉันทิ้งมันไว้เป็นของที่ระลึก นี่คือไฟล์เก็บถาวร:

ข้างในมีสองไฟล์: krakozbroff.cmd และ krakozbroff.reg

พวกเขามีหลักการเดียวกัน - แก้ไขอักษรอียิปต์โบราณ, สี่เหลี่ยม, คำถามหรือ เครื่องหมายตกใจในโปรแกรมและ Windows OS (ในสำนวนทั่วไป krakozyabry) ฉันใช้อันแรกและมันก็ช่วยฉันได้

และสุดท้ายก็มีเคล็ดลับบางประการ:
1) หากคุณทำงานกับรีจิสทรี อย่าลืมสำรองข้อมูล ( สำเนาสำรอง) ในกรณีที่มีบางอย่างผิดพลาด
2) แนะนำให้ตรวจสอบจุดที่ 1 หลังแต่ละจุด

นั่นคือทั้งหมดที่ ตอนนี้คุณรู้วิธีแก้ไข/ลบแครกเกอร์ (สี่เหลี่ยม อักษรอียิปต์โบราณ เครื่องหมายอัศเจรีย์ และเครื่องหมายคำถาม) ในโปรแกรมหรือ Windows แล้ว

ความสนใจ!!! เตรียมตัวให้พร้อมบทความนี้จะยาว คุณอาจรู้สึกเหนื่อยและง่วงนอน ดังนั้นนั่งลง จิบกาแฟสักแก้วแล้วมาเริ่มต้นกัน


การเรียนรู้อักษรจีนเป็นส่วนสำคัญในการเรียนรู้ภาษานั้น มีวิธีการ วิธีการ และแนวคิดมากมายเกี่ยวกับวิธีการศึกษาสิ่งเหล่านี้ บทความนี้จะพูดถึงบางส่วนของพวกเขา ผู้คนต่างกัน ขึ้นอยู่กับเป้าหมายของพวกเขา สอนพวกเขาต่างกัน
ตัวอย่างเช่น บางคนเพียงต้องการทราบอักขระจำนวนหนึ่ง บางคนต้องการอ่านข้อความที่เป็นอักษรอียิปต์โบราณ คนอื่นไม่เพียงต้องการอ่านเท่านั้น แต่ยังต้องการเขียนอักษรอียิปต์โบราณด้วย แล้วก็มีคนที่จะจดบันทึกเป็นภาษาจีนหรือเขียนข้อความ เขียนด้วยมืออีกครั้งเพราะการพิมพ์ด้วยคอมพิวเตอร์ง่ายกว่ามาก
เป็นที่น่าสังเกตว่าความยุ่งวุ่นวายสมัยใหม่ไม่อนุญาตให้บุคคลดื่มด่ำกับกระบวนการเรียนรู้อย่างเต็มที่โดยไม่มีสิ่งรบกวนสมาธิ เป็นเรื่องยากโดยเฉพาะสำหรับผู้ที่เรียนภาษาด้วยตนเองและ “เมื่อไรก็ตามที่ทำได้” มันคุ้มค่าที่จะเลือกวิธีศึกษาอักษรอียิปต์โบราณเป็นรายบุคคล ผู้ที่มีเวลาจำกัดอาจต้องการหาแอปพลิเคชันที่สะดวกสำหรับอุปกรณ์ของตนเพื่อจะได้ "แทะหินแกรนิตแห่งวิทยาศาสตร์" ได้ในเวลาว่าง สำหรับผู้ที่เรียนภาษาพิเศษทุกอย่างควรจะเหมาะสม แต่ใครบ้างที่ไม่อยากลดเวลาที่ใช้ในการฝึกฝนทักษะ?
ฉันจะเสริมว่าการเรียนรู้อักษรอียิปต์โบราณอาจมีความหมายที่แตกต่างกันสำหรับแต่ละคน ในความหมายที่สมบูรณ์ การเรียนรู้อักษรอียิปต์โบราณหมายถึงการรู้การออกเสียง การสะกด และความหมายของอักษรอียิปต์โบราณ แล้วมีวิธีใดบ้างในการพัฒนาทักษะและตัวอักษรจีนเหล่านี้ให้เชี่ยวชาญ? เริ่มจากกระดาษก่อนแล้วจึงใช้อิเล็กทรอนิกส์

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

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

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

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


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

3. มีสูตรอื่นๆ ที่ต้องใช้เวลานานในการอธิบาย นี่คือลิงค์ที่คุณสามารถดาวน์โหลดและพิมพ์ได้

2. วิธีการเชื่อมโยง

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

3. การ์ด

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


อย่างไรก็ตาม มันช่วยบางคนได้เมื่อพวกเขาเรียนรู้โปรแกรมจากตำราเรียนที่ให้ลำดับการเขียนอักษรอียิปต์โบราณ เหล่านี้อาจเป็นหนังสือเรียนของ Zadoenko, Kondrashevsky ฯลฯ


อาจจะ. นักเรียนภาษาจีนที่มีประสบการณ์จะสามารถให้วิธีการอื่น ๆ ในการเรียนรู้และจดจำอักษรอียิปต์โบราณแบบ "กระดาษ" ได้ แต่ตอนนี้ฉันตัดสินใจว่าจะพิจารณาสิ่งที่ระบุไว้ข้างต้น มาดูอิเล็กทรอนิกส์กันดีกว่า

1. แฟลชการ์ด

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

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

มีแอปพลิเคชั่นอื่นที่มีลักษณะเดียวกัน ตัวอย่างเช่นบนเว็บไซต์ Magazeta มีแอปพลิเคชันหนึ่งรายการ: ลิงก์ไปยังบทความ

2. โปรเซสเซอร์อักษรอียิปต์โบราณ

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

3. นักแปลออนไลน์

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

4. โปรแกรมอื่นๆ

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

มาต่อกัน...

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

ฉันอยากจะพูดถึงแอปพลิเคชันสำหรับแพลตฟอร์ม Android " Chineseskill " โดยเฉพาะ มันกำลังพัฒนาและในความคิดของฉันมันรวมข้อดีหลายประการเข้าด้วยกัน การศึกษาอักษรอียิปต์โบราณควบคู่ไปกับการศึกษาคำศัพท์และไวยากรณ์ คุณจะต้องเขียนและออกเสียงคำศัพท์ บางครั้งด้วยตนเองด้วยนิ้วของคุณ บางทีนี่อาจเป็นสิ่งที่คุณต้องการ?..

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

บทสรุป.

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

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

ดังที่พวกเขากล่าวว่า “ความคิดริเริ่มมีโทษ” และเช่นเคย ชาวอเมริกันจะต้องตำหนิทุกอย่าง

และมันก็เป็นเช่นนี้ ในยุครุ่งเรืองของอุตสาหกรรมคอมพิวเตอร์และการแพร่กระจายของอินเทอร์เน็ต ความต้องการระบบสากลในการแสดงสัญลักษณ์ก็เกิดขึ้น และในช่วงทศวรรษที่ 60 ของศตวรรษที่ผ่านมา ASCII ปรากฏขึ้น - "รหัสมาตรฐานอเมริกันสำหรับการแลกเปลี่ยนข้อมูล" (American รหัสมาตรฐานสำหรับการแลกเปลี่ยนข้อมูล) การเข้ารหัสอักขระ 7 บิตที่คุ้นเคย บิตที่ไม่ได้ใช้อันที่แปดสุดท้ายถูกปล่อยให้เป็นบิตควบคุมเพื่อปรับแต่งตาราง ASCII ให้เหมาะสมกับความต้องการของลูกค้าคอมพิวเตอร์แต่ละรายในภูมิภาคเฉพาะ บิตนี้ทำให้สามารถขยายตาราง ASCII เพื่อใช้อักขระของตัวเองสำหรับแต่ละภาษาได้ คอมพิวเตอร์ถูกจำหน่ายให้กับหลายประเทศ ซึ่งพวกเขาใช้ตารางที่แก้ไขแล้วของตนเอง แต่ต่อมาฟีเจอร์นี้เริ่มกลายเป็นเรื่องน่าปวดหัว เนื่องจากการแลกเปลี่ยนข้อมูลระหว่างคอมพิวเตอร์กลายเป็นปัญหาค่อนข้างมาก ใหม่ 8 บิต หน้ารหัสเข้ากันไม่ได้ - รหัสเดียวกันอาจหมายถึงอักขระหลายตัว เพื่อแก้ไขปัญหานี้ ISO (“องค์การระหว่างประเทศเพื่อการมาตรฐาน”, องค์การระหว่างประเทศเพื่อการมาตรฐาน) เสนอ ตารางใหม่คือ “ISO 8859”

มาตรฐานนี้ต่อมาเปลี่ยนชื่อเป็น UCS (“ชุดอักขระสากล”) อย่างไรก็ตาม เมื่อถึงเวลาที่ UCS เปิดตัวครั้งแรก Unicode ก็ปรากฏขึ้น แต่เนื่องจากเป้าหมายและวัตถุประสงค์ของทั้งสองมาตรฐานตรงกัน จึงตัดสินใจผนึกกำลังกัน Unicode ได้ทำงานที่ยากลำบากในการให้ชื่อตัวละครแต่ละตัวมีเอกลักษณ์เฉพาะตัว ปัจจุบัน Unicode เวอร์ชันล่าสุดคือ 5.2

ฉันอยากจะเตือนคุณ - อันที่จริงเรื่องราวที่มีการเข้ารหัสนั้นมืดมนมาก แหล่งข้อมูลที่ต่างกันให้ข้อเท็จจริงที่แตกต่างกัน ดังนั้นคุณจึงไม่ควรมุ่งเน้นไปที่สิ่งเดียว เพียงแค่ต้องระวังว่าทุกอย่างเกิดขึ้นได้อย่างไรและเป็นไปตามมาตรฐานสมัยใหม่ ฉันหวังว่าเราไม่ใช่นักประวัติศาสตร์

หลักสูตรเร่งรัด Unicode

ก่อนที่จะเจาะลึกหัวข้อนี้ ฉันอยากจะอธิบายว่า Unicode คืออะไรในแง่เทคนิค เป้าหมาย มาตรฐานนี้เรารู้แล้ว สิ่งที่เหลืออยู่คือการซ่อมแซมฮาร์ดแวร์

แล้วยูนิโค้ดคืออะไร? พูดง่ายๆ ก็คือนี่คือวิธีการแสดงอักขระใดๆ ให้เป็นรหัสเฉพาะสำหรับทุกภาษาของโลก รุ่นล่าสุดมาตรฐานประกอบด้วยรหัสประมาณ 1,100,000 รหัส ซึ่งใช้พื้นที่ตั้งแต่ U+0000 ถึง U+10FFFF แต่ระวังที่นี่! Unicode กำหนดอย่างเคร่งครัดว่าโค้ดสำหรับอักขระคืออะไร และโค้ดนั้นจะแสดงในหน่วยความจำอย่างไร รหัสอักขระ (เช่น 0041 สำหรับอักขระ "A") ไม่มีความหมายใด ๆ แต่มีตรรกะในการแสดงรหัสเหล่านี้เป็นไบต์ ซึ่งทำได้โดยการเข้ารหัส Unicode Consortium เสนอการเข้ารหัสประเภทต่อไปนี้ เรียกว่า UTF (รูปแบบการแปลง Unicode) และนี่คือ:

  • UTF-7: ไม่แนะนำให้ใช้การเข้ารหัสนี้ด้วยเหตุผลด้านความปลอดภัยและความเข้ากันได้ อธิบายไว้ใน RFC 2152 ไม่ใช่ส่วนหนึ่งของ Unicode แต่ได้รับการแนะนำโดยสมาคมนี้
  • UTF-8: การเข้ารหัสที่พบบ่อยที่สุดในพื้นที่เว็บ เป็นตัวแปรที่มีความกว้าง 1 ถึง 4 ไบต์ เข้ากันได้กับโปรโตคอลและโปรแกรมที่ใช้ ASCII ย้อนหลัง อยู่ในช่วงตั้งแต่ U+0000 ถึง U+007F
  • UTF-16: ใช้ความกว้างของตัวแปรตั้งแต่ 2 ถึง 4 ไบต์ การใช้งานที่พบบ่อยที่สุดคือ 2 ไบต์ UCS-2 เป็นการเข้ารหัสเดียวกัน เพียงมีความกว้างคงที่ 2 ไบต์ และจำกัดอยู่ที่ขีดจำกัด BMP
  • UTF-32: ใช้ความกว้างคงที่ 4 ไบต์ เช่น 32 บิต อย่างไรก็ตาม มีการใช้เพียง 21 บิต ส่วนที่เหลืออีก 11 บิตเต็มไปด้วยศูนย์ แม้ว่าการเข้ารหัสนี้จะยุ่งยากในแง่ของพื้นที่ แต่ก็ถือว่ามีประสิทธิภาพมากที่สุดในแง่ของประสิทธิภาพเนื่องจากการกำหนดแอดเดรสแบบ 32 บิตในคอมพิวเตอร์สมัยใหม่

อะนาล็อกที่ใกล้เคียงที่สุดของ UTF-32 คือการเข้ารหัส UCS-4 แต่ปัจจุบันมีการใช้ไม่บ่อยนัก

แม้ว่า UTF-8 และ UTF-32 จะสามารถแสดงอักขระได้มากกว่าสองพันล้านอักขระเล็กน้อย แต่ก็มีการตัดสินใจที่จะจำกัดตัวเองไว้ที่มากกว่าหนึ่งล้านเล็กน้อยเพื่อความเข้ากันได้กับ UTF-16 พื้นที่โค้ดทั้งหมดถูกจัดกลุ่มออกเป็น 17 ระนาบ แต่ละระนาบมีสัญลักษณ์ 65,536 ตัว สัญลักษณ์ที่ใช้บ่อยที่สุดจะอยู่ที่ศูนย์ ซึ่งเป็นระนาบฐาน เรียกว่า BMP - Basic MultiPlane
สตรีมข้อมูลในการเข้ารหัส UTF-16 และ UTF-32 สามารถแสดงได้สองวิธี - endian ขนาดเล็กและ endian ใหญ่ เรียกว่า UTF-16LE/UTF-32LE, UTF16BE/UTF-32BE ตามลำดับ อย่างที่คุณอาจเดาได้ LE นั้นเป็น little-endian และ BE เป็น big-endian แต่เราต้องสามารถแยกแยะระหว่างคำสั่งเหล่านี้ได้ ในการดำเนินการนี้ ให้ใช้เครื่องหมายลำดับไบต์ U+FEFF ในเวอร์ชันภาษาอังกฤษ - BOM, “Byte Order Mask” BOM นี้อาจปรากฏใน UTF-8 แต่ก็ไม่มีความหมายอะไรเลย

เพื่อความเข้ากันได้แบบย้อนหลัง Unicode จึงต้องรองรับอักขระจากการเข้ารหัสที่มีอยู่ แต่ที่นี่มีปัญหาอื่นเกิดขึ้น - มีอักขระที่เหมือนกันหลายรูปแบบที่ต้องได้รับการประมวลผล ดังนั้นจึงจำเป็นต้องมีสิ่งที่เรียกว่า "การทำให้เป็นมาตรฐาน" หลังจากนั้นจึงสามารถเปรียบเทียบสองสตริงได้แล้ว การทำให้เป็นมาตรฐานมี 4 รูปแบบ:

  • แบบฟอร์มการทำให้เป็นมาตรฐาน D (NFD): การสลายตัวแบบบัญญัติ
  • รูปแบบการทำให้เป็นมาตรฐาน C (NFC): การสลายตัวตามรูปแบบบัญญัติ + องค์ประกอบตามรูปแบบบัญญัติ
  • แบบฟอร์มการทำให้เป็นมาตรฐาน KD (NFKD): การสลายตัวที่เข้ากันได้
  • แบบฟอร์มการทำให้เป็นมาตรฐาน KC (NFKC): การสลายตัวที่เข้ากันได้ + องค์ประกอบที่เป็นที่ยอมรับ

ตอนนี้เรามาพูดถึงคำแปลก ๆ เหล่านี้กันดีกว่า

Unicode กำหนดความเท่าเทียมกันของสตริงสองประเภท - แบบบัญญัติและความเข้ากันได้

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

เพื่อเหตุผลด้านความปลอดภัย ควรทำการปรับมาตรฐานก่อนที่จะส่งสตริงไปยังตัวกรองใดๆ เพื่อตรวจสอบ หลังจากการดำเนินการนี้ ขนาดข้อความอาจเปลี่ยนแปลง ซึ่งอาจส่งผลเสีย แต่จะมีการเปลี่ยนแปลงเพิ่มเติมในภายหลัง

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

ภาพลวงตา

คุณคงเคยได้ยินเกี่ยวกับการปลอมแปลง IP/ARP/DNS และมีความคิดที่ดีว่ามันคืออะไร แต่ยังมีสิ่งที่เรียกว่า "การปลอมแปลงด้วยภาพ" ซึ่งเป็นวิธีการแบบเดิมที่นักฟิชชิ่งใช้ในการหลอกลวงเหยื่อ ในกรณีเช่นนี้ จะใช้ตัวอักษรที่คล้ายกัน เช่น "o" และ "0", "5" และ "s" นี่เป็นตัวเลือกที่พบบ่อยที่สุดและง่ายที่สุด และสังเกตได้ง่ายกว่า ตัวอย่างคือการโจมตีแบบฟิชชิ่ง 2,000 ครั้งใน PayPal ซึ่งได้รับการกล่าวถึงในหน้า www.unicode.org ด้วยซ้ำ อย่างไรก็ตาม สิ่งนี้มีความเกี่ยวข้องเพียงเล็กน้อยกับหัวข้อ Unicode ของเรา

สำหรับผู้ที่มีทักษะขั้นสูง Unicode ได้ปรากฏบนขอบฟ้าหรืออย่างแม่นยำมากขึ้น IDN ซึ่งเป็นตัวย่อของ "ชื่อโดเมนสากล" IDN อนุญาตให้ใช้ตัวอักษรประจำชาติในชื่อโดเมน ผู้รับจดทะเบียนชื่อโดเมนถือว่าสิ่งนี้เป็นสิ่งที่สะดวก พวกเขากล่าวว่ากดหมายเลข ชื่อโดเมนในภาษาแม่ของคุณ! อย่างไรก็ตามความสะดวกสบายนี้เป็นที่น่าสงสัยมาก โอเค การตลาดไม่ใช่หัวข้อของเรา แต่ลองจินตนาการดูว่านี่เป็นสวรรค์สำหรับฟิชเชอร์ ผู้เชี่ยวชาญด้าน SEO ผู้บุกรุกไซเบอร์ และวิญญาณชั่วร้ายอื่นๆ ฉันกำลังพูดถึงผลกระทบที่เรียกว่าการปลอมแปลง IDN การโจมตีนี้อยู่ในหมวดหมู่ของการปลอมแปลงด้วยภาพ ในวรรณคดีอังกฤษ เรียกอีกอย่างว่า "การโจมตีแบบโฮโมกราฟ" นั่นคือการโจมตีโดยใช้โฮโมกราฟ (คำที่สะกดเหมือนกัน)

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

IDNA2003 ได้รับการประดิษฐ์ขึ้นเพื่อเป็นยาครอบจักรวาล แต่ในปีนี้ IDNA2008 ได้มีผลบังคับใช้แล้ว โปรโตคอลใหม่ควรจะแก้ปัญหาต่างๆ มากมายของ IDNA2003 รุ่นเยาว์ แต่ได้นำเสนอโอกาสใหม่สำหรับการโจมตีด้วยการปลอมแปลง ปัญหาความเข้ากันได้เกิดขึ้นอีกครั้ง - ในบางกรณี ที่อยู่เดียวกันในเบราว์เซอร์ที่ต่างกันอาจทำให้เซิร์ฟเวอร์ต่างกันได้ ประเด็นก็คือ Punycode สามารถแปลงได้หลายวิธี เบราว์เซอร์ที่แตกต่างกัน- ทุกอย่างจะขึ้นอยู่กับข้อกำหนดมาตรฐานที่รองรับ
ปัญหาเรื่องการหลอกลวงทางการมองเห็นไม่ได้จบเพียงแค่นั้น Unicode ยังมาพร้อมกับบริการของผู้ส่งอีเมลขยะ เรากำลังพูดถึงตัวกรองสแปม - จดหมายต้นฉบับถูกส่งโดยผู้ส่งอีเมลขยะผ่าน Unicode obfuscator ซึ่งค้นหาอักขระที่คล้ายกันจากตัวอักษรประจำชาติต่างๆ โดยใช้สิ่งที่เรียกว่า UC-Simlist (“รายการความคล้ายคลึงกันของ Unicode” ซึ่งเป็นรายการอักขระ Unicode ที่คล้ายกัน) . นั่นคือทั้งหมด! ตัวกรองป้องกันสแปมยกเลิกและไม่สามารถจดจำสิ่งที่มีความหมายในอักขระที่ยุ่งเหยิงเช่นนี้ได้อีกต่อไป แต่ผู้ใช้สามารถอ่านข้อความได้ค่อนข้างดี ฉันไม่ปฏิเสธว่าพบวิธีแก้ไขปัญหานี้แล้ว แต่ผู้ส่งอีเมลขยะมีความได้เปรียบ และอีกอย่างหนึ่งจากการโจมตีชุดเดียวกัน คุณแน่ใจหรือว่าคุณกำลังเปิดบางสิ่งบางอย่าง? ไฟล์ข้อความและไม่ได้จัดการกับไบนารี่เหรอ?

ดังที่คุณเห็นในภาพ เรามีไฟล์ชื่อ evilexe ข้อความ แต่นี่เป็นเท็จ! ไฟล์นี้เรียกว่า eviltxt.exe จริงๆ คุณถามว่านี่มันไร้สาระอะไรในวงเล็บ? และนี่คือ U+202E หรือการแทนที่จากขวาไปซ้าย ที่เรียกว่า Bidi (จากคำว่า สองทิศทาง) - อัลกอริธึม Unicode เพื่อรองรับภาษาต่างๆ เช่น อารบิก ฮิบรู และอื่นๆ ส่วนหลังมีการเขียนจากขวาไปซ้าย หลังจากใส่อักขระ Unicode RLO แล้ว เราจะเห็นทุกอย่างที่อยู่หลัง RLO ลำดับย้อนกลับ. ตัวอย่างเช่น วิธีนี้จากชีวิตจริงฉันสามารถอ้างถึงการโจมตีการปลอมแปลงใน Mozilla Firfox - cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3376

การข้ามตัวกรอง - ด่านที่ 1

ปัจจุบันเป็นที่ทราบกันดีอยู่แล้วว่ารูปแบบยาว (รูปแบบไม่สั้นที่สุด) ของ UTF-8 ไม่สามารถประมวลผลได้ เนื่องจากนี่เป็นช่องโหว่ที่อาจเกิดขึ้น อย่างไรก็ตาม นักพัฒนา PHP ไม่สามารถมั่นใจได้ในเรื่องนี้ เรามาดูกันว่าจุดบกพร่องนี้คืออะไร บางทีคุณอาจจำเกี่ยวกับการกรองที่ไม่ถูกต้องและ utf8_decode() ในกรณีนี้เราจะพิจารณารายละเอียดเพิ่มเติม ดังนั้นเราจึงมีโค้ด PHP นี้: