2 คะแนน โดย GN⁺ 2023-07-21 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • nms เป็นเครื่องมือบรรทัดคำสั่งที่นำ ข้อความ ASCII หรือ UTF-8 ที่รับมาทางไพป์มาใส่เอฟเฟ็กต์ถอดรหัสข้อมูลบนหน้าจอ โดยในตอนแรกจะดูเหมือนข้อมูลที่ถูกเข้ารหัส ก่อนจะค่อย ๆ เผยอักขระข้อความต้นฉบับออกมา
  • เอฟเฟ็กต์นี้จำลองฉากถอดรหัสข้อมูลอันโด่งดังจากภาพยนตร์แฮ็กเกอร์ปี 1992 เรื่อง Sneakers และอ้างอิงจาก คลิปภาพยนตร์ ที่ตำแหน่งเวลา 0:35
  • โดยปกติ nms จะแสดงอักขระเข้ารหัสเริ่มต้นก่อน จากนั้นรอให้ผู้ใช้กดแป้นพิมพ์ แล้วจึงเริ่มลำดับการถอดรหัส
  • วิธีใช้งานหลักคือส่งข้อมูลจาก standard output ผ่านไพป์ เช่น ls -l | nms โดยมีตัวเลือกสำคัญได้แก่ ถอดรหัสอัตโนมัติ -a, มาสก์อักขระช่องว่าง -s, กำหนดสีตัวอักษร -f <color>, ล้างหน้าจอ -c, และแสดงเวอร์ชัน -v
  • โปรแกรม sneakers ที่ให้มาด้วยจะจำลองฉากที่เห็นในคลิปภาพยนตร์ และก่อนจบผู้ใช้ต้องเลือกหนึ่งตัวเลือกจากเมนู
  • การตั้งค่าพื้นฐานไม่มี dependency แต่ใช้ ANSI/VT100 terminal escape sequence เพื่อสร้างเอฟเฟ็กต์ดังกล่าว
    • มี implementation แบบ ncurses สำหรับเทอร์มินัลที่ไม่รองรับ ANSI/VT100
    • implementation แบบ ncurses รองรับเทอร์มินัลที่ไม่ใช่ ANSI แต่มีข้อจำกัดคือจะล้างหน้าจอทุกครั้งก่อนแสดงผล จึงสูญเสียความสามารถแบบ inline ไป
  • การติดตั้งจากซอร์สต้องใช้ git, gcc, make และเป้าหมายการ build แบ่งเป็น nms, sneakers ที่เป็นตัวเลือกเพิ่มเติม, และ nms-ncurses กับ sneakers-ncurses สำหรับ ncurses
  • สำหรับผู้ใช้ที่ต้องการนำเอฟเฟ็กต์เดียวกันไปใช้ในโปรแกรมบรรทัดคำสั่งอื่น ๆ มีไลบรารีภาษา C LibNMS แยกต่างหากให้ใช้งาน
  • เป็นซอฟต์แวร์เสรีที่สามารถแจกจ่ายต่อและดัดแปลงได้ภายใต้เงื่อนไขของ GNU General Public License

1 ความคิดเห็น

 
GN⁺ 2023-07-21
ความคิดเห็นจาก Hacker News
  • ชอบที่คำแนะนำการติดตั้ง ไม่ได้ตั้งสมมติฐานว่า คนที่จะติดตั้งแพ็กเกจนี้มี gcc/git/make อยู่แล้ว
    เพราะคงไม่มีใครแบบ “ฉันเป็นผู้ใช้ *nix มือใหม่สุด ๆ บนดิสโทรที่เพิ่งติดตั้งใหม่ และอยากติดตั้งคำสั่งที่จำลองเอฟเฟกต์ถอดรหัสจาก Sneakers” หรอก
    มีแพ็กเกจมากเกินไปที่ตั้งสมมติฐานแบบนี้ และถ้าเป็นแบบนั้นก็มักมีโอกาสสูงที่ข้อมูลสำคัญอื่น ๆ จะหายไปด้วย
    แถมยังดีที่มันไม่ใช่อะไรแนว npm install อีกต่างหาก

    • เกลียดอะไรแบบนี้ในเอกสารมาก
      บางทีมีแต่ชิ้นส่วนโค้ดหรือคอนฟิกที่เอาไปใช้เดี่ยว ๆ ไม่ได้ และก็ไม่ชัดว่าต้องใส่ไว้ตรงไหนหรือซ้อนอยู่ในอะไร
      บางครั้งยังใช้ import ที่เป็นชื่อซึ่งหาไม่เจอในหน้านั้นอีก
      อย่างน้อยก็ควรใส่ ตัวอย่างแบบครบถ้วน ไว้ท้ายหน้า หรือใส่ลิงก์ไปหามัน
    • เคยเสียเวลา ไปมากเหลือเกิน กับการเดาชื่อไฟล์ .h ที่หายไปแล้วลองกด make หรือค้นหา lib-$THING ใน apt
    • ตอนแรกแอบผิดหวังนิดหน่อยที่ต้อง build เอง แต่ repository เล็กและ build เสร็จใน 1 วินาที
      แบบนี้ควรเป็น ค่าปริยาย ไม่ใช่ข้อยกเว้นที่น่าประทับใจ
    • มันให้อารมณ์แบบ “ที่เหลือเป็นแบบฝึกหัดของผู้อ่าน”
      เข้าใจความหงุดหงิดแบบนี้ 100%
      อะไรที่มี make แบบ repository นี้ ฉันไม่อยากให้ไปอยู่ที่ไหนเลยในกระบวนการของเรา
      เพราะสุดท้ายมันก็จะล้มเหลว
      แต่ก็เอาเถอะ อันนี้ไม่ได้ตั้งใจให้ใช้จริงจังอยู่แล้ว มันใกล้เคียงกับ โปรเจ็กต์ของเล่น มากกว่า
    • ในทางกลับกัน อยากให้ซอฟต์แวร์ติดตั้งง่าย และการที่มีอยู่ในแพ็กเกจของดิสโทรก็สะดวกดี
      ถึงอย่างนั้น ถ้าสามารถ รันจากซอร์สได้ตรง ๆ โดยไม่มี dependency ก็คงเท่มาก และนั่นน่าจะเป็นเหตุผลว่าทำไมเครื่องมือบางอย่างยังทำด้วยเชลล์ล้วน ๆ
  • ในการโจมตีเชิงวิเคราะห์รหัสจริง มีบางประเภทที่พอรันแล้วจะดูเหมือนฉากถอดรหัสใน Sneakers เช่น CBC padding oracle, Bleichenbacher's RSA padding oracle และการโจมตี ECB แบบทีละไบต์
    จำได้ว่า Juliano Rizzo เคยเรียกสิ่งนี้ว่า Hollywood Attack
    เป็นคำที่ดี อยากให้ทุกคนใช้กัน และมันก็ช่วยให้เข้าใจภาพรวมของการโจมตีได้เล็กน้อย
    การโจมตีเชิงวิเคราะห์รหัสจำนวนมากไม่ได้จัดการกับข้อความเต็ม 128 บิตหรือ 2048 บิตพร้อมกัน แต่ทำงานโดยแยก ciphertext ออกมาทีละไบต์อย่างสร้างสรรค์

  • ชอบหนังเรื่องนี้มากจริง ๆ
    ตอนเด็กดูจาก VHS และบังเอิญว่าทุกวันฉันปั่นจักรยานผ่านฉากหลังของหนึ่งในฉากสำคัญ
    มันคือลานอิฐระหว่าง Google กับ Wharton ในตอนนี้
    ในหนังมันเป็นพื้นที่กินข้าวกลางแจ้ง และ Sidney Poitier พูดว่า “Martin, It's your mother” ขณะถือ car phone อยู่ใน Karman Ghia ของ Martin
    แล้วหลังจากนั้นพวกเขาก็เริ่มรู้ตัวว่าไม่ได้อยู่ฝ่ายเดียวกับ NSA
    ตอนนี้มีสถานีดับเพลิงที่ดูเหมือนลอยอยู่เพิ่มเข้ามา และถนนก็เปลี่ยนไปเล็กน้อย แต่ชอบที่ทิวทัศน์ยังคง คล้ายเดิมอยู่มาก เมื่อเทียบกับตอนถ่ายหนัง
    โดยรวมแล้วเป็นหนังที่ทำออกมาดีมากจริง ๆ

  • แค่ดาวน์โหลดซอร์สไฟล์ 3~5 ไฟล์แล้วพิมพ์ make ก็ build ได้เลยงั้นเหรอ?
    ไม่ต้องตั้งค่าสภาพแวดล้อม build แบบแยกออกมา ไม่ต้องดึง dependency 1600 ตัวมาสร้างจากซอร์ส ไม่ต้องติดตั้งชั้นระบบไฟล์ที่มีไลบรารี .so 1600 ตัว และไม่ต้องรันอะไรอย่าง Docker หรือ npm ด้วย?
    แถมยัง คอมไพล์เสร็จในไม่ถึง 1 วินาที อีก?
    ภาษาใหม่ที่ชื่อ C นี้ทำอะไรได้เหลือเชื่อจริง ๆ

    • ก็ไม่เชิง
      คุณต้องติดตั้ง make และ toolchain ของ C ไว้ก่อน
      ถ้ามีนั่นอยู่แล้ว ก็แทบแน่นอนว่าคุณน่าจะมี Python, Perl และอาจรวมถึง Java ที่ค่อนข้างใหม่ติดตั้งอยู่ด้วย
      MacOS อาจไม่ใช่ แต่ Linux distribution ส่วนใหญ่น่าจะเป็นแบบนั้น
      และทั้งหมดนี้ก็ทำสิ่งเดียวกันได้โดยไม่มี dependency เพิ่มเหมือนกัน
    • มันเรียกความทรงจำเก่า ๆ กลับมาเลย
      ในยุค 90 ฉันเคยเข้าใจผิดว่าถ้า include stdlib.h หรือไลบรารีอื่น ๆ แล้วโปรแกรม C จะบวม ก็เลยเขียนเมธอดเอง
      เท่ากับว่าไม่เข้าใจด้วยซ้ำว่าการลิงก์ทำงานอย่างไร
      ตัวฉันตอนอายุ 12 ถ้าเห็น NPM, pip, bundle หรือแม้แต่ Electron ทุกวันนี้คงหายใจไม่ออก
      เมื่อก่อนทำอะไรได้มากจริง ๆ ด้วยของเพียงน้อยนิด
    • ทุกภาษาก็เหมือนกัน
      ถ้าสภาพแวดล้อมติดตั้งไว้แล้วและโปรแกรมไม่มี dependency ก็แค่รันคำสั่ง build เท่านั้น
      โปรเจ็กต์นี้เองก็ต้องการ gcc, make, ncurses โดยไม่ได้ระบุเวอร์ชันไว้
    • อย่าไปโฆษณาภาษาแบบนี้มากนักจะดีกว่า
      ไม่งั้นมันอาจกลายเป็นเหมือน Python ในตอนนี้ที่น่ากลัวเหลือเกิน
      Python เคยยอดเยี่ยมและใช้งานได้แบบตรงไปตรงมาจริง ๆ
      แต่พอทุกคนรู้จักมัน, Nvidia เข้ามาเกี่ยว, แล้ว TensorFlow/PyTorch/แมชชีนเลิร์นนิงหลั่งไหลเข้ามา มันก็พัง
      เพราะมีพวก script kiddie ที่ไม่สนใจความเข้ากันได้ของแพ็กเกจ เขียนอะไรมั่ว ๆ ไว้มากเกินไป
      ชุมชนเป็นทั้งจุดแข็งที่สุดและในขณะเดียวกันก็เป็นส่วนที่ แย่ที่สุด ของภาษานี้
    • ส่วนตัวแล้วฉันเคยพิมพ์ make แล้วมันทำงานได้จริงน้อยมาก จนตอนนี้พอเห็นโปรเจ็กต์ C จะคิดว่า “เจ๋งดีนะ แต่ฉันคงคอมไพล์มันไม่ได้หรอก” แล้วก็ปิดแท็บไป
      แต่โปรเจ็กต์นี้ build ผ่านได้ดี
  • พอได้ยินคำว่า “Passport” ก็อดพูด “My voice is my passport” ไม่ได้ อย่างน้อยก็ในหัว

    • สำหรับฉันคือ “cattle”
      “cattle mutilations are up”
    • ที่คอลเซ็นเตอร์ของ HSBC มีระบบรู้จำเสียง และเหมือนจะพูดว่า “Your voice is your passport” หรือไม่ก็ “password”
      ตอนนี้เริ่มจำไม่ได้แล้วว่าคำไหนกันแน่
    • แค่ได้ยินใครสักคนพูดคำว่า passport ก็ชอบแล้ว
    • “…verify me”
      เมื่อกี้ที่ฉันทำไปไม่ง่ายเลยนะ
    • Bell เคยมีฟีเจอร์แบบนี้จริง ๆ และ The Phone Losers of America ก็เคยเอาไปใช้ในทางที่ผิด
      การแฮ็กนั้นได้แรงบันดาลใจจากหนังเรื่องนี้โดยตรง และ PLA ก็สาธิตไว้ในตอนหนึ่งของพอดแคสต์
      https://phonelosers.com/2008/05/pla-radio-episode-17-voice-a...
  • เมื่อใช้คู่กับ cool-retro-term[1] นี่คือของจำเป็นสำหรับการมี ช่วงเวลาแฮ็กเกอร์ของจริง บนคอมพิวเตอร์ของฉัน
    [1] https://github.com/Swordfish90/cool-retro-term

    • ฉันติดตั้ง cool-retro-term กับ no-more-secrets บน Chromebook ที่เปิด Linux แล้ว และมันก็ดูดีใช้ได้จริง ๆ
      https://www.youtube.com/watch?v=_gRIG_zK4SQ
    • พอเห็นหน้าจอสีอำพันนั้น ความทรงจำก็ย้อนกลับมาทันที
      งานเฮลป์เดสก์งานแรกของฉันรวมถึงการซัพพอร์ตเมนเฟรมด้วย และยังได้ใช้ IBM 4-split plasma terminal รุ่นเก่าที่ยังเหลืออยู่
      ระบบทิกเก็ตก็ยังอยู่บนเมนเฟรมเหมือนกัน เลยมีประโยชน์กับงานเฮลป์เดสก์จริง ๆ
      น่าจะเป็นรุ่นนี้หรืออย่างน้อยก็ใกล้เคียงมาก: https://www.argecy.com/ibm-3290-plasma-terminal
    • ถ้าคุณชอบอันนี้ ก็น่าจะชอบอันนี้[1] ด้วย
      [1] https://github.com/Rezmason/matrix
    • บน Mac ติดตั้งได้ง่ายด้วยคำสั่งนี้
      brew install --cask cool-retro-term
    • ของสำหรับคืนที่เหงาและน่าเบื่อ
  • น่าแปลกดีที่พอเห็นข่าวมรณกรรมของ Kevin Mitnick ฉันก็นึกถึงหนังเรื่องนี้ขึ้นมาทันที
    คิดว่าน่าจะมีหลายคนเป็นเหมือนกัน

  • สนุกเสมอ
    เมื่อหลายปีก่อนฉันเคยเขียนสคริปต์ Python ไฟล์เดียวชื่อ decrypt.py ที่ทำงานคล้ายกันแทบจะเหมือนกันเลย
    น่าเศร้าที่จนถึงตอนนี้มันยังเป็น repository ที่ได้รับความนิยมมากที่สุด ในโปรเจกต์ GitHub ของฉัน: https://github.com/jtwaleson/decrypt

  • ฉันอยากดู Sneakers ฉบับยุคใหม่จริง ๆ
    น่าจะเป็นเรื่องที่มีใครสักคนค้นพบว่า คอมพิวเตอร์ควอนตัม อาจถูกสร้างขึ้นแล้ว และถ้ามันมีอยู่จริงก็ต้องขโมยมันมา
    มันเข้ากันได้พอดีกับมีม “no more secrets” ของ Sneakers ต้นฉบับด้วย

    • ส่วนตัวคิดว่ารีเมกโดยใช้นักแสดงชุดเดิมก็น่าจะดี
      แต่ต้นฉบับเองก็เป็นหนังเกี่ยวกับความแก่และความเป็นผู้ใหญ่อยู่แล้ว ดังนั้นการปล่อยเวลาให้ผ่านไปอีกหนึ่งรุ่นอย่างเดียวคงไม่ได้ทำให้เรื่องราวน่าเชื่อถือขึ้นเท่าไร
      น่าเสียดายที่ River Phoenix กับ Sidney Poitier จากไปแล้ว และฉันถึงกับไปเช็กว่า Ben Kingsley ยังมีชีวิตอยู่ไหม
      สำหรับหนังที่แตะเรื่องเทคโนโลยี ต้นฉบับถือว่าคงทนอย่างน่าประหลาดมาก
      ส่วนหนึ่งก็คงเพราะมันอยู่ในช่วงเวลาก่อน World Wide Web พอดี และแม้แต่ในปี 2023 ระบบสำคัญก็ยังมีที่รันอยู่บน เมนเฟรม จริง ๆ
    • ใช่เลย
      ไม่รู้เหมือนกันว่าทำไมหนังที่ฉันรักตอนเด็ก ๆ ถึงไม่ถูกทำเป็นรีบูต ภาคต่อ พรีเควล หรืออย่างน้อยแม้แต่ภาคต่อห่วย ๆ บ้าง
  • นี่คือหนึ่งในหนังประจำชีวิตของฉัน
    ฉากถอดรหัสเป็นภาพจำที่โดดเด่นมากในความทรงจำ และโปรเจกต์นี้ก็ ถ่ายทอดความรู้สึกนั้นออกมาได้อย่างสมบูรณ์แบบ