2 पॉइंट द्वारा GN⁺ 2023-07-21 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • nms एक command-line tool है जो pipe के ज़रिए मिले ASCII या UTF-8 text पर ऑन-स्क्रीन डेटा डिक्रिप्शन इफ़ेक्ट लागू करता है, जिससे शुरुआत में डेटा एन्क्रिप्टेड जैसा दिखता है और फिर मूल plain text अक्षर सामने आते हैं
  • यह इफ़ेक्ट 1992 की hacker फ़िल्म Sneakers के मशहूर डेटा डिक्रिप्शन सीन को पुनर्निर्मित करता है, और संदर्भ के लिए फ़िल्म क्लिप में 0:35 पर दिखने वाले इफ़ेक्ट से जुड़ा है
  • nms डिफ़ॉल्ट रूप से पहले शुरुआती एन्क्रिप्टेड अक्षर दिखाता है, फिर उपयोगकर्ता के key input का इंतज़ार करता है, और उसके बाद डिक्रिप्शन sequence शुरू करता है
  • इसका मुख्य उपयोग ls -l | nms की तरह standard output डेटा को pipe करके करना है, और प्रमुख options में auto decryption -a, whitespace masking -s, foreground color सेट करना -f <color>, screen clear -c, और version display -v शामिल हैं
  • साथ में दिया गया sneakers प्रोग्राम फ़िल्म क्लिप में दिखने वाले सीन को पुनर्निर्मित करता है, और बंद होने से पहले उपयोगकर्ता को menu options में से एक चुनना होता है
  • बेसिक configuration में कोई dependency नहीं है, लेकिन इफ़ेक्ट को पुनर्निर्मित करने के लिए ANSI/VT100 terminal escape sequences का उपयोग होता है
    • ANSI/VT100 को support न करने वाले terminals के लिए ncurses implementation दी गई है
    • ncurses implementation non-ANSI terminals को support करती है, लेकिन output से पहले हमेशा screen clear करती है, इसलिए inline functionality की सीमा रहती है
  • source installation के लिए git, gcc, make चाहिए, और build targets nms, वैकल्पिक sneakers, तथा ncurses के लिए nms-ncurses और sneakers-ncurses में बँटे हैं
  • command-line programs में वही इफ़ेक्ट इस्तेमाल करना चाहने वाले users के लिए C library LibNMS अलग से उपलब्ध है
  • यह GNU General Public License की शर्तों के तहत पुनर्वितरण और संशोधन की अनुमति देने वाला free software है

1 टिप्पणियां

 
GN⁺ 2023-07-21
Hacker News की राय
  • मुझे यह बात पसंद आई कि इंस्टॉलेशन निर्देश यह मानकर नहीं चलते कि इस पैकेज को इंस्टॉल करने वाले के पास पहले से gcc/git/make मौजूद हैं
    ऐसा शायद ही कोई होगा जो कहे, “मैं एक नई-नई इंस्टॉल की हुई distro का बिल्कुल शुरुआती *nix यूज़र हूँ, और Sneakers का decryption effect दोबारा बनाने वाला command इंस्टॉल करना चाहता हूँ”
    बहुत सारे पैकेज ऐसी मान्यता बना लेते हैं, और ऐसे में यह संभावना भी बढ़ जाती है कि दूसरी अहम जानकारी भी छूटी हुई होगी
    और यह भी अच्छा है कि यह कोई npm install जैसी चीज़ नहीं है

    • डॉक्यूमेंटेशन में यह चीज़ मुझे सच में बहुत नापसंद है
      कभी सिर्फ़ code या config के ऐसे टुकड़े दे दिए जाते हैं जो अपने-आप नहीं चलते, और यह भी साफ़ नहीं होता कि उन्हें कहाँ रखना है या किसके अंदर nest करना है
      कभी ऐसे import इस्तेमाल होते हैं जिनके नाम पेज पर कहीं मिलते ही नहीं
      कम से कम पेज के नीचे पूरा example या उसका लिंक तो होना ही चाहिए
    • सिर्फ़ missing .h फ़ाइल का नाम देखकर make चलाते रहने या apt में lib-$THING खोजते रहने में मैंने बहुत ज़्यादा समय गंवाया है
    • शुरू में यह देखकर थोड़ी निराशा हुई कि इसे खुद build करना पड़ेगा, लेकिन repository छोटी है और build भी 1 सेकंड में हो जाता है
      यही default होना चाहिए, कोई सुखद अपवाद नहीं
    • इसमें कुछ-कुछ “बाकी पाठक के अभ्यास के लिए छोड़ दिया गया है” वाली भावना है
      इस तरह की हताशा से मैं 100% सहमत हूँ
      इस repository की तरह जहाँ make आता है, वैसी चीज़ मैं अपने process में कहीं भी नहीं डालना चाहता
      क्योंकि आख़िर में वह fail ही करेगी
      हालाँकि इसे गंभीर उपयोग के लिए नहीं, बल्कि toy project के तौर पर देखना चाहिए
    • दूसरी तरफ़, अच्छा यही है कि software इंस्टॉल करना आसान हो, इसलिए distro package में शामिल होना सुविधाजनक है
      फिर भी अगर बिना dependency के सीधे source से चल सके तो वह शानदार होगा, और शायद इसी वजह से कुछ tools अब भी pure shell code में लिखे जाते हैं
  • असली cryptanalytic attacks में CBC padding oracle, Bleichenbacher का RSA padding oracle, और ECB byte-at-a-time attack जैसी कुछ श्रेणियाँ हैं, जिन्हें चलाने पर वे Sneakers के decryption scene जैसी लगती हैं
    मुझे याद है कि Juliano Rizzo ने इनके लिए Hollywood Attack शब्द इस्तेमाल किया था
    यह अच्छा term है; काश सब लोग इसे इस्तेमाल करें, और attack की intuition समझने में भी यह थोड़ा मदद करता है
    बहुत-से cryptanalytic attacks पूरे 128-bit या 2048-bit message को एक साथ target नहीं करते, बल्कि ciphertext के एक byte को रचनात्मक तरीके से अलग करके काम करते हैं

  • मुझे यह फ़िल्म सच में बहुत पसंद है
    बचपन में इसे VHS पर देखा था, और संयोग से इसके एक अहम scene की location के पास से मैं हर दिन साइकिल पर गुजरता हूँ
    वह अब Google और Wharton के बीच की brick courtyard है
    फ़िल्म में वह outdoor dining area के रूप में दिखता है, और Sidney Poitier Martin की Karman Ghia में carphone उठाकर कहता है, “Martin, It's your mother”
    उसके बाद उन्हें एहसास होता है कि वे NSA के साथ नहीं हैं
    अब वहाँ एक तैरती हुई-सी fire station जोड़ दी गई है और सड़क भी थोड़ी बदल गई है, लेकिन मुझे यह अच्छा लगता है कि फ़िल्म की शूटिंग के समय का दृश्य और आज का दृश्य अब भी काफ़ी मिलता-जुलता है
    कुल मिलाकर यह वाकई बहुत अच्छी बनी हुई फ़िल्म है

  • बस 3~5 source files डाउनलोड करो और make चलाओ, और यह सीधे build हो जाता है?
    न कोई isolated build environment सेटअप, न 1600 dependencies डाउनलोड करके source से build करना, न 1600 .so libraries वाली filesystem hierarchy इंस्टॉल करना, न Docker या npm चलाना?
    और ऊपर से 1 सेकंड से भी कम में compile हो जाता है?
    यह नई language C क्या-क्या कर सकती है, सच में हैरानी होती है

    • पूरी तरह सही नहीं
      make और C toolchain इंस्टॉल होना चाहिए
      अगर वह इंस्टॉल है, तो लगभग तय है कि Python, Perl, और शायद काफ़ी नया Java भी इंस्टॉल होगा
      MacOS नहीं, लेकिन ज़्यादातर Linux distros में ऐसा ही होता है
      और ये सभी भी बिना dependency के वही काम कर सकते हैं
    • इससे पुरानी यादें ताज़ा हो गईं
      90 के दशक में मैं गलतफ़हमी में stdlib.h या दूसरी libraries include करने से C program फूला हुआ हो जाता है, इसलिए methods खुद implement करता था
      यानी मुझे linking कैसे काम करती है, यह भी नहीं पता था
      12 साल का मैं आज के NPM, pip, bundle, और यहाँ तक कि Electron को देखकर घुटन महसूस करता
      बहुत कम चीज़ों से भी बहुत ज़्यादा किया जा सकता था
    • हर language में यही बात लागू होती है
      अगर environment इंस्टॉल है और program की dependencies नहीं हैं, तो बस build command चलाना होता है
      इस project को भी version बताए बिना gcc, make, ncurses चाहिए
    • ऐसी language का बहुत ज़्यादा प्रचार नहीं करना चाहिए
      नहीं तो इसका हाल आज की भयानक Python जैसा हो सकता है
      Python कभी शानदार थी और सच में बस काम कर जाती थी
      फिर सबने इस language पर ध्यान दिया, Nvidia जुड़ गया, TensorFlow/PyTorch/machine learning आ गए, और चीज़ें बिगड़ गईं
      क्योंकि package compatibility की परवाह किए बिना script kiddies ने बहुत सारा घटिया सामान लिख दिया
      community इस language की सबसे बड़ी ताकत भी है और साथ ही बहुत बड़ा सबसे खराब हिस्सा भी
    • निजी तौर पर make चलाने पर उसके सही से काम करने के मौके इतने कम रहे हैं कि अब C project देखते ही मैं सोचता हूँ, “अच्छा है, लेकिन मैं इसे compile नहीं कर पाऊँगा,” और tab बंद कर देता हूँ
      यह project अच्छी तरह build हो गया
  • “Passport” शब्द सुनते ही मैं “My voice is my passport” कहे बिना नहीं रह पाता, कम से कम अपने दिमाग में तो ज़रूर

    • मेरे लिए वह “cattle” है
      “cattle mutilations are up”
    • HSBC call center में voice recognition था, और शायद वह कहता था “Your voice is your passport” या “password”
      अब मुझे याद नहीं कि इनमें से कौन-सा था
    • किसी को सिर्फ़ passport शब्द कहते सुनना भी अच्छा लगता है
    • “…verify me”
      जो मैंने अभी किया, वह आसान नहीं था
    • Bell में वास्तव में ऐसी सुविधा थी, और The Phone Losers of America ने इसका दुरुपयोग किया था
      वह hack सीधे इस फ़िल्म से प्रेरित था, और PLA ने उसे podcast episode में दिखाया था
      https://phonelosers.com/2008/05/pla-radio-episode-17-voice-a...
  • यह और cool-retro-term[1] का कॉम्बिनेशन मेरे कंप्यूटर पर सच्चे हैकर टाइम बिताने के लिए ज़रूरी है
    [1] https://github.com/Swordfish90/cool-retro-term

    • मैंने Linux चालू Chromebook पर cool-retro-term और no-more-secrets इंस्टॉल किया, और सच में यह काफ़ी अच्छा दिखता है
      https://www.youtube.com/watch?v=_gRIG_zK4SQ
    • उस एंबर रंग की स्क्रीन को देखकर यादें ताज़ा हो गईं
      मेरी पहली helpdesk नौकरी में mainframe support शामिल था, और मैं अब भी बचे हुए पुराने IBM 4-विभाजित plasma terminal इस्तेमाल कर सकता था
      ticket system भी अभी तक mainframe पर ही था, इसलिए यह helpdesk काम में वास्तव में उपयोगी था
      शायद वही मॉडल था, या उससे बहुत मिलता-जुलता: https://www.argecy.com/ibm-3290-plasma-terminal
    • अगर यह आपको पसंद आए, तो शायद यह भी अच्छा लगे[1]
      [1] https://github.com/Rezmason/matrix
    • Mac पर इसे इस कमांड से आसानी से इंस्टॉल किया जा सकता है
      brew install --cask cool-retro-term
    • यह अकेली और उबाऊ रातों के लिए चीज़ है
  • Kevin Mitnick का obituary देखकर मुझे तुरंत यही फ़िल्म याद आना दिलचस्प लगा
    शायद बहुत से लोगों के साथ ऐसा हुआ होगा

  • यह हमेशा मज़ेदार रहता है
    कुछ साल पहले मैंने एक single-file Python script decrypt.py बनाई थी, जो लगभग यही काम इसी तरह करती है
    दुख की बात है कि यह अब भी मेरे GitHub projects में सबसे लोकप्रिय repository है: https://github.com/jtwaleson/decrypt

  • मैं सच में Sneakers का एक आधुनिक संस्करण देखना चाहूँगा
    कहानी ऐसी हो सकती है कि किसी को पता चले कि quantum computer शायद पहले ही बन चुका है, और अगर वह सच में मौजूद है तो उसे चुराना होगा
    यह मूल Sneakers के “no more secrets” meme के साथ भी पूरी तरह फिट बैठता है

    • व्यक्तिगत तौर पर मुझे लगता है कि वही मूल कलाकारों के साथ remake भी अच्छा हो सकता था
      लेकिन मूल Sneakers पहले से ही उम्र बढ़ने और परिपक्वता पर बनी फ़िल्म थी, इसलिए सिर्फ़ एक और पीढ़ी बीत जाने से यह उतनी प्रभावशाली कहानी नहीं बनती
      River Phoenix और Sidney Poitier के इस दुनिया में न रहने का अफ़सोस है, और मैंने यह भी जाँच लिया कि Ben Kingsley अभी जीवित हैं या नहीं
      तकनीक से कुछ हद तक जुड़ी फ़िल्म होने के हिसाब से, मेरे ख़याल से मूल फ़िल्म हैरान करने वाली तरह से अच्छी तरह टिकी हुई है
      कुछ हद तक इसलिए भी कि वह World Wide Web के ठीक पहले के दौर में सेट है, और 2023 में भी अब तक महत्वपूर्ण systems का mainframe पर चलना असामान्य नहीं है
    • सही बात है
      समझ नहीं आता कि बचपन में मुझे पसंद आई फ़िल्मों के reboot, sequel, prequel, यहाँ तक कि कोई खराब sequel भी क्यों नहीं बनते
  • यह मेरी ज़िंदगी की पसंदीदा फ़िल्मों में से एक है
    decryption वाला दृश्य मेरी यादों में सचमुच आइकॉनिक है, और इस project ने उस एहसास को पूरी तरह सही ढंग से पकड़ लिया है