No More Secrets - Tái hiện hiệu ứng giải mã trên màn hình trong phim Sneakers năm 1992
(github.com/bartobri)nmslà công cụ dòng lệnh áp dụng hiệu ứng giải mã dữ liệu trên màn hình cho văn bản ASCII hoặc UTF-8 nhận qua pipe, ban đầu hiển thị như dữ liệu đã mã hóa rồi dần lộ ra các ký tự văn bản gốc- Hiệu ứng này tái hiện cảnh giải mã dữ liệu nổi tiếng trong bộ phim hacker Sneakers năm 1992, tương ứng với hiệu ứng ở mốc 0:35 trong đoạn phim dùng để tham khảo
- Theo mặc định,
nmssẽ hiển thị các ký tự mã hóa ban đầu rồi chờ người dùng nhấn phím, sau đó mới bắt đầu chuỗi giải mã - Cách dùng chính là pipe dữ liệu đầu ra chuẩn như
ls -l | nms, và các tùy chọn tiêu biểu gồm tự động giải mã-a, che ký tự khoảng trắng-s, chỉ định màu tiền cảnh-f <color>, xóa màn hình-c, hiển thị phiên bản-v - Chương trình
sneakersđi kèm sẽ tái hiện cảnh xuất hiện trong đoạn phim, và trước khi thoát người dùng phải chọn một trong các tùy chọn menu - Cấu hình mặc định không có phụ thuộc, nhưng sử dụng chuỗi escape terminal ANSI/VT100 để tái tạo hiệu ứng
- Có cung cấp triển khai ncurses cho các terminal không hỗ trợ ANSI/VT100
- Bản triển khai ncurses hỗ trợ terminal không phải ANSI, nhưng có hạn chế là luôn xóa màn hình trước khi xuất nên mất khả năng hoạt động inline
- Cài đặt từ mã nguồn cần
git,gcc,make, và các mục tiêu build được chia thànhnms,sneakerstùy chọn, cùngnms-ncursesvàsneakers-ncursesdành cho ncurses - Với những người muốn dùng cùng hiệu ứng này trong chương trình dòng lệnh, thư viện C LibNMS được cung cấp riêng
- Đây là phần mềm tự do, có thể phân phối lại và chỉnh sửa theo các điều khoản của GNU General Public License
1 bình luận
Ý kiến trên Hacker News
Tôi thích việc hướng dẫn cài đặt không giả định rằng người muốn cài gói này đã có sẵn gcc/git/make
Dù cũng chẳng có mấy ai kiểu như “Tôi là người dùng *nix hoàn toàn mới trên một bản phân phối vừa cài xong, và tôi muốn cài một lệnh tái hiện hiệu ứng giải mã trong Sneakers”
Quá nhiều gói vẫn đưa ra giả định như vậy, và trong những trường hợp đó thì khả năng cao là các thông tin cốt lõi khác cũng bị thiếu
Thêm nữa, thật tốt vì đây không phải kiểu npm install gì đó
Chỉ có những mẩu mã hoặc cấu hình không thể tự chạy độc lập, mà cũng chẳng rõ phải đặt vào đâu hay nó lồng trong cái gì
Thậm chí còn dùng những import có tên không thể tìm thấy trên trang
Ít nhất thì cũng nên có một ví dụ hoàn chỉnh ở cuối trang hoặc một liên kết tới đó
.hbị thiếu rồi gõmake, hoặc đi tìmlib-$THINGtrong aptĐây mới nên là mặc định, chứ không nên là một ngoại lệ dễ chịu
Tôi đồng cảm 100% với kiểu bực bội này
Thứ như kho mã này, có
makedính vào, là kiểu chúng tôi không muốn đưa vào bất kỳ chỗ nào trong quy trìnhVì kiểu gì cuối cùng nó cũng sẽ fail
Dù vậy, cái này không thực sự để dùng nghiêm túc mà gần như là một dự án đồ chơi
Dù thế, nếu có thể chạy trực tiếp từ mã nguồn mà không có phụ thuộc thì sẽ rất ngầu, và có lẽ vì vậy mà một số công cụ đến giờ vẫn được viết bằng shell thuần
Trong các cuộc tấn công phân tích mật mã thực tế, có những loại khi chạy lên trông giống hệt cảnh giải mã trong Sneakers, như CBC padding oracle, RSA padding oracle của Bleichenbacher, hay tấn công ECB theo từng byte
Tôi nhớ là Juliano Rizzo từng gọi chung chúng là Hollywood Attack
Đây là một thuật ngữ hay, mong là mọi người đều dùng nó, và nó cũng giúp hình dung trực quan về kiểu tấn công này phần nào
Nhiều cuộc tấn công phân tích mật mã hoạt động không phải bằng cách xử lý cả thông điệp 128 bit hay 2048 bit cùng lúc, mà bằng cách cô lập đầy sáng tạo từng byte của bản mã
Tôi cực kỳ thích bộ phim này
Hồi nhỏ tôi xem nó trên VHS, và thật trùng hợp là mỗi ngày tôi đều đạp xe ngang qua bối cảnh của một trong những cảnh chính
Đó là sân gạch hiện nằm giữa Google và Wharton
Trong phim, nó xuất hiện như một khu ăn uống ngoài trời, và Sidney Poitier nói vào điện thoại xe của Martin trong chiếc Karman Ghia của anh ấy: “Martin, It's your mother”
Rồi sau đó họ nhận ra là họ không ở cùng phía với NSA
Giờ người ta đã thêm vào đó một trạm cứu hỏa trông như đang lơ lửng và con đường cũng hơi khác đi, nhưng tôi thích việc quang cảnh vẫn giữ được sự tương đồng với thời điểm quay phim
Nhìn chung đây thực sự là một bộ phim được làm rất tốt
Tải về 3 đến 5 file mã nguồn rồi chỉ cần gõ
makelà build xong luôn à?Không cần dựng môi trường build cô lập, không tải 1600 phụ thuộc rồi build từ source, không cài cả một tầng hệ thống file với 1600 thư viện
.so, cũng không cần chạy Docker hay npm gì hết?Mà còn biên dịch chưa đến 1 giây nữa à?
Thật đáng kinh ngạc những gì ngôn ngữ C mới mẻ này có thể làm được
Bạn vẫn phải cài
makevà bộ công cụ CNếu đã cài những thứ đó thì gần như chắc chắn bạn cũng có Python, Perl, và có khi cả Java khá mới nữa
MacOS thì không, nhưng đa số bản phân phối Linux thì có thể xem là như vậy
Và tất cả những thứ đó cũng có thể làm điều tương tự mà không cần phụ thuộc
Hồi thập niên 90, tôi từng hiểu sai rằng nếu include
stdlib.hhay thư viện khác thì chương trình C sẽ bị phình ra, nên thường tự cài đặt phương thức lấyNghĩa là lúc đó tôi cũng chẳng hiểu linker hoạt động thế nào
Tôi của năm 12 tuổi chắc sẽ thấy ngộp thở nếu nhìn vào NPM, pip, bundle, hay thậm chí là Electron ngày nay
Với rất ít thứ, ngày xưa người ta vẫn làm được rất nhiều
Nếu môi trường đã được cài và chương trình không có phụ thuộc thì chỉ cần chạy lệnh build là xong
Dự án này cũng cần gcc, make, ncurses mà không hề chỉ rõ phiên bản
Không thì nó có thể thành ra như Python kinh khủng bây giờ
Python từng tuyệt vời và thực sự cứ thế mà chạy
Rồi mọi người đổ xô vào, Nvidia nhúng tay, TensorFlow/PyTorch/học máy tràn tới và mọi thứ hỏng bét
Vì quá nhiều script kiddie viết ra mớ linh tinh mà chẳng quan tâm đến tính tương thích gói
Cộng đồng vừa là điểm mạnh nhất của ngôn ngữ này, vừa đồng thời là mặt tệ nhất rất lớn của nó
makemà nó chạy đúng quá ít lần, đến mức giờ cứ thấy dự án C là lại nghĩ “trông hay đấy nhưng chắc mình không compile nổi đâu” rồi đóng tabDự án này build rất ổn
Cứ nghe từ “Passport” là tôi không thể không nói “My voice is my passport”, ít nhất là trong đầu luôn như vậy
“cattle mutilations are up”
Giờ tôi cũng không chắc là câu nào
Vừa rồi không dễ gì đâu
Vụ hack đó lấy cảm hứng trực tiếp từ bộ phim, và PLA đã trình diễn nó trong một tập podcast
https://phonelosers.com/2008/05/pla-radio-episode-17-voice-a...
Kết hợp cái này với cool-retro-term[1] là bộ đôi không thể thiếu để tận hưởng thời khắc hacker đích thực trên máy tính của tôi
[1] https://github.com/Swordfish90/cool-retro-term
https://www.youtube.com/watch?v=_gRIG_zK4SQ
Công việc helpdesk đầu tiên của tôi có cả phần hỗ trợ mainframe, và tôi đã có dịp dùng những terminal plasma IBM chia 4 màn hình cũ vẫn còn sót lại
Hệ thống ticket khi đó cũng vẫn nằm trên mainframe, nên thực sự rất hữu ích cho công việc helpdesk
Có lẽ là mẫu này hoặc một mẫu rất giống: https://www.argecy.com/ibm-3290-plasma-terminal
[1] https://github.com/Rezmason/matrix
brew install --cask cool-retro-termThật thú vị khi đọc cáo phó của Kevin Mitnick là tôi lập tức nhớ đến bộ phim này
Chắc hẳn nhiều người cũng vậy
Lúc nào cũng vui
Vài năm trước tôi đã viết một script Python một file tên là
decrypt.py, làm điều tương tự gần như y hệtBuồn thay, đến giờ nó vẫn là kho lưu trữ phổ biến nhất trong các dự án GitHub của tôi: https://github.com/jtwaleson/decrypt
Tôi thật sự muốn xem một phiên bản hiện đại của Sneakers
Sẽ hay nếu đó là câu chuyện ai đó phát hiện ra máy tính lượng tử có lẽ đã được chế tạo, và nếu nó thực sự tồn tại thì phải đánh cắp nó
Nó cũng hoàn toàn khớp với meme “no more secrets” của bản gốc Sneakers
Nhưng bản gốc vốn đã là một bộ phim về tuổi tác và sự trưởng thành, nên chỉ thêm một thế hệ nữa có lẽ cũng không tạo thành một câu chuyện thuyết phục đến vậy
Thật đáng tiếc khi River Phoenix và Sidney Poitier đã qua đời, và tôi còn phải kiểm tra xem Ben Kingsley có còn sống không
Với một bộ phim có dính dáng khá nhiều đến công nghệ, bản gốc theo tôi vẫn trụ vững đáng ngạc nhiên
Một phần là nhờ bối cảnh ngay trước thời kỳ World Wide Web, và cũng vì đến năm 2023 vẫn còn những hệ thống quan trọng chạy trên mainframe
Tôi không hiểu vì sao những bộ phim tôi yêu thích hồi nhỏ lại không được reboot, làm sequel, prequel, hay thậm chí là một phần tiếp theo dở tệ nào đó
Đây là một trong những bộ phim yêu thích nhất đời tôi
Cảnh giải mã đó thực sự mang tính biểu tượng trong ký ức của tôi, và dự án này đã tái hiện hoàn hảo cảm giác ấy