ผู้ชายคนนี้แฮกจำกัดความยาวของตัวอักษร 140 ตัวอย่างไร


36

วันนี้ฉันรู้สึกประหลาดใจที่เห็นว่าผู้ชายคนหนึ่งได้แฮ็คขีด จำกัด 140 ตัวอักษรของ Twitter ข้อความประกอบด้วย 930 ตัวอักษร สิ่งนี้จะเป็นไปได้อย่างไร

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

ป้อนคำอธิบายรูปภาพที่นี่


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

1
ดังนั้นพวกมันอาจเป็นข้อมูลที่มีประโยชน์ตรงกลางของข้อความมี frase เป็นภาษารัสเซีย: Твиттиминеограничиваемсялюдиии !!!!!! 140 непредел! ซึ่งในภาษาอังกฤษคือ: twitting โดยไม่ จำกัด คน !!!!! 140 ไม่ จำกัด ! ฉันเดาว่า "ผู้ตี" ชาวรัสเซียบ้างไหม? :-)
ผู้ปฏิบัติงาน

ดูเหมือนว่า Twitter ได้แก้ไขข้อผิดพลาดนั้นแล้ว ตรวจสอบลิงก์โดยตรงไปยังทวีต
Mehper C. Palavuzlar

คำตอบสั้น ๆ : ทวีตมีอักขระน้อยกว่า 140 ตัว เป็นเพียงปัญหาการเข้ารหัสที่ทำให้เบราว์เซอร์ของคุณแสดงเป็นตัวอักษรมากขึ้น
ShreevatsaR

ความคิดเห็นด้านล่างปัญหาอเมริกาได้รับการแก้ไขโดย Twitter วันนี้ฉันเจอทวีตอีกอันที่คล้ายกันมาก - twitter.com/#!/luchetti/status/177524100930084864
Chethan S.

คำตอบ:


41

ข้อความประกอบด้วยจุดโค้ดตัวแทนตัวแทน Unicode ที่เข้ารหัสอย่างไม่เหมาะสมเป็น UTF-8 ชนิดของการเข้ารหัสที่ไม่เหมาะสมนี้จะเรียกว่าCēsu-8 ดูเหมือนว่าอินเทอร์เฟซ Twitter บางอย่างจะยอมรับคะแนนรหัสตัวแทนตัวแทน CESU-8 เป็นอักขระ (สำหรับจุดประสงค์ของการจำกัดความยาว 140 อักขระ) แต่สำหรับวัตถุประสงค์ในการแสดงผลคาดว่า UTF-8 ที่ถูกต้องและสิ่งเหล่านี้ไม่ใช่ลำดับ UTF-8 ที่ถูกต้อง ดังนั้นมันจึงแสดง 3 ไบต์ของแต่ละลำดับเหล่านี้เป็น 3 ซีเควนซ์สไตล์แปดทางหนีของ 4 ตัวอักษรแต่ละตัวและแต่ละจุดรหัสตัวแทนจะปรากฏขึ้นโดยใช้อักขระ 12 ตัว

ตัวอย่างเช่น \ 355 \ 240 \ 265 \ 355 \ 263 \ 220 เมื่อถอดรหัสเป็น C-หนี UTF-8 โดยไม่ปฏิเสธตัวแทนตามปกติจะทำเมื่อถอดรหัส UTF-8 ถอดรหัสเป็นคู่ตัวแทน U + D835 U + DCD0 การรักษาคู่ตัวแทนเสมือนนี้เป็น UTF-16 ซึ่งจะทำเมื่อถอดรหัส CESU-8 จะสร้างอักขระ Unicode U + 1D4D0 MATHEMATICAL BOLD SCRIPT CAPITAL A (𝓐)

หากการถอดรหัสฐานแปดแบบ C ถูกถอดรหัสแล้วผลลัพธ์จะถูกตีความว่าเป็น CESU-8 มันจะออกมาที่:

в𝓐𝓛𝓜𝓐𝓣𝓨𝓐𝓛𝓜𝓐𝓣𝓨Твиттиминеограничиваемсялюдиии !!!!!! 140 непредел! =)))) 𝓐𝓛𝓜𝓐𝓣𝓨𝓐𝓛𝓜𝓐𝓣𝓨𝓐𝓛𝓜𝓐𝓣𝓨

นี่เป็นภาพสำหรับผู้ที่ไม่มีชุดฟอนต์ Unicode ครบชุด:

в𝓐𝓛𝓜𝓐𝓣𝓨𝓐𝓛𝓜𝓐𝓣𝓨Твиттиминеограничиваемсялюдиии !!!!!!  140 непредел! =)))) 𝓐𝓛𝓜𝓐𝓣𝓨𝓐𝓛𝓜𝓐𝓣𝓨𝓐𝓛𝓜𝓐𝓣𝓨


1
จริง ๆ แล้ว 101 ตัวอักษร - งานดี @ mark4o
Jörg

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

ฉันยังเห็นกล่องสี่เหลี่ยม @ MehperC.Palavuzlar เป็นไปได้หรือไม่ว่าฉันไม่มีแบบอักษรใด ๆ ที่ติดตั้งชุดอักขระ Unicode ครบชุด
Gaia

3

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

ฉันเดาว่าเมื่อนับจำนวนตัวอักษร Twitter จะนับกลุ่มแต่ละกลุ่มเป็นอักขระเดียว แต่เมื่อแสดงให้เบราว์เซอร์แสดงว่าพวกเขากำลังพิมพ์สี่กลุ่ม

ปรับปรุง:

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

ที่น่าสนใจเมื่อเปลี่ยนกลับมาเป็นตัวละครธรรมดามันค่อนข้างซ้ำซากและมีลักษณะดังนี้:

í µ í ³ í µ í ³ › í µ í ³ œ í µ í ³ í µ í ³ £ í µ í ³ ¨ í µ í ³ í µ í ³ › í µ í ³ œ í µ í ³ í µ í ³ £ í µ í ³ ¨ 

อัปเดต 2:

คำอธิบายที่เขาให้ไว้คือ "Пишитев DM, всегданасвязи)" ซึ่ง Google Translate บอกฉันว่า "เขียนถึง DM เสมอในการเชื่อมต่อ)" ฉันไม่แน่ใจว่ามันหมายถึงอะไรหรือมีประโยชน์อย่างไร


1
ฉันคิดว่าเช่นกัน (มันเป็นคำอธิบายที่สมเหตุสมผลที่สุดที่อยู่ในใจของฉัน) แต่ปัญหาคือมีวิธีมากกว่า 140 กลุ่มจากสี่กลุ่ม (140 * 4 = 560 ซึ่งน้อยกว่า 930 ที่ Mepher ระบุไว้ )
อเล็กซ์

@Alex: ถูกต้อง ฉันพยายามคัดลอกและวางข้อความทั้งหมดลงในกล่องทวีตใหม่ แต่ Twitter บอกว่ามันมีมากกว่า 140 ตัวอักษร ฉันยังลองใน TweetDeck แต่ไม่ไปอีก
Mehper C. Palavuzlar

เห็นดี ฉันได้อัปเดตคำตอบแล้ว แต่ฉันไม่เห็นหลักฐานใด ๆ ว่าการอัปเดตเป็นสิ่งที่เกิดขึ้นจริง
Ladadadada

2
@ ฉันไม่สามารถคัดลอกมันไปยังกล่องทวีตได้เพราะ Twitter จะตีความว่าเป็นอักขระแยกต่างหาก ('\', '3', '5', '5') เป็นต้นคุณจะต้องสร้างสคริปต์ที่ ส่ง "สัญลักษณ์" เป็นไบต์ไม่ใช่อักขระยกเว้น
Tor Valamo

"Пишитев DM, всегданасвязи)" หมายความว่าเขาเชิญคุณให้ส่งข้อความส่วนตัวถึงเขาเขาจะตอบกลับอย่างรวดเร็ว การแปลของฉันจะเป็น: "ส่ง DM ฉันอยู่ที่นั่นเสมอ"
Malcolm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.