YouMind
Đăng nhập

Cách biến Opus 5.5 thành máy dịch ngược với 8 bước (khóa học đầy đủ)

@hanakoxbt
TIẾNG ANH13 thg 10, 2026
194K
139
14
15
332

TL;DR

Hướng dẫn này trình bày chi tiết quy trình làm việc gồm 8 bước, sử dụng công cụ REA và Opus 5.5 để dịch ngược phần mềm. Nội dung bao gồm định tuyến mục tiêu, cài đặt, khảo sát, giải mã, xử lý kỹ thuật che giấu mã, phân tích theo bầy đàn, tái tạo trong môi trường sạch (clean-room) và xác minh.

Vào ngày 8 tháng 10 năm 2026, một repository mà ba tháng trước đó chẳng ai biết đến đã leo lên vị trí số một trên bảng xếp hạng trending của GitHub.

Nó có tên là REA, viết tắt của Reverse Engineer Anything (Dịch ngược mọi thứ), và nó cung cấp cho agent của bạn một trình disassembler thực thụ.

**Hãy lưu lại bài viết này - nếu bạn muốn phiên bản chi tiết hơn, khóa học đầy đủ gồm 20 bài về chủ đề này đang được phát hành tại**

reacourse.xyz

Nó sẽ đưa bạn từ một màn hình terminal trống trơn đến một bản dựng lại vượt qua chính các bài kiểm tra tương đương của nó, với mọi lệnh và prompt đều được viết ra rõ ràng. HÃY BẮT ĐẦU TỪ ĐÂY.

Phản ứng ở khắp mọi nơi trong tuần đó đều giống nhau.

Matthew Berman tóm gọn nó trong ba từ, và 3,6 triệu người đã xem bài đăng đó.

https://x.com/MatthewBerman/status/2108245653843509415

REA là một MCP server mã nguồn mở kèm theo CLI, có thể tích hợp vào Claude Code, Codex, Cursor và Gemini CLI.

Sử dụng giấy phép MIT, được xây dựng bởi morluto, phát hành lần đầu vào ngày 12 tháng 7 năm 2026, và ba tháng sau đã vượt mốc 100.000 sao trên GitHub.

Mọi thứ đều chạy cục bộ, và mỗi kết luận đều được gắn nhãn là một quan sát, một suy luận, hoặc một điều chưa xác định, kèm theo địa chỉ hoặc vị trí gọi hàm đằng sau nó.

Đây là toàn bộ lộ trình từ một file nhị phân đóng kín đến một bản dựng lại thuộc quyền sở hữu của bạn, gói gọn trong tám bước.

Hanako - inline image

Trước khi đi vào các bước: những gì người ta đã làm được với công cụ này

Công cụ không phải là câu chuyện, những gì được hoàn thành trong bốn tuần mới là điều đáng nói.

ArtCraft đã xây dựng lại bảy ứng dụng Adobe dưới dạng các giải pháp thay thế mã nguồn mở miễn phí, sau đó chuyển sang tấn công Office với WordCraft, GridCraft và DeckCraft.

Hiện đã có mười hai ứng dụng, tất cả đều được viết lại từ đầu bằng Rust, chạy native trên ba nền tảng, và ngoại trừ một ứng dụng thì tất cả đều có thể chạy ngay trên tab trình duyệt thông qua WebAssembly.

Ở mảng game, các minh chứng còn cụ thể hơn:

  • Super Mario Sunshine đã có bản port native cho PC: tốn khoảng 365 giờ hoạt động của agent và 17,3 tỷ token, sử dụng kết hợp Claude và Codex
  • Một tựa game Touhou được xây dựng lại bằng agent trên blog chính thức của REA: 697 hàm, 696 hàm khớp chính xác, chơi được sau khoảng 12 ngày
  • Ứng dụng xác thực Aegis (3.077 class) bị mổ xẻ và xây dựng lại, vượt qua toàn bộ 133 test case
  • Hàm xử lý âm thanh sound-pan của DX-Ball được viết lại bằng C, vượt qua 3.205 test case x86 gốc và tái tạo chính xác toàn bộ 63 byte đã biên dịch

Hãy chú ý xem danh sách đó không chứa điều gì.

Không ai bẻ khóa kiểm tra bản quyền, không ai công bố mã nguồn của người khác.

Mỗi dự án trong số đó đều là một hành vi được khôi phục, ghi chép lại và xây dựng lại bằng đoạn code mới.

01. Xác định loại mục tiêu trước khi mở bất cứ thứ gì

Lý do công cụ này lan truyền nhanh chóng không phải vì nó đọc tốt một thứ duy nhất. Nó đọc được gần như mọi thứ, và nó trưng ra bằng chứng cho từng nhận định mà nó đưa ra.

https://x.com/RoundtableSpace/status/2109165852578992582

Danh sách đó cũng chính là quyết định đầu tiên bạn phải đưa ra. Cách phổ biến nhất để lãng phí cả một buổi chiều là lôi disassembler ra dùng trong khi mục tiêu lại là một ứng dụng Electron với mã JavaScript nằm sờ sờ ngay đó.

Chĩa REA vào Electron và bạn sẽ nhận được các module, import cùng ranh giới IPC chỉ trong vài giây mà không cần bất kỳ engine nào, trong khi một file Mach-O hoặc ELF native sẽ mở ra cơ sở dữ liệu Hopper — con đường sâu hơn và cũng chậm hơn.

Biết mình đang ở trường hợp nào sẽ giúp bạn tiết kiệm hàng giờ đồng hồ, vậy nên hãy giao việc đó cho prompt đầu tiên của bạn.

markdown
1Tôi muốn hiểu cách [TÍNH NĂNG] hoạt động trong [ỨNG DỤNG], nằm tại [ĐƯỜNG DẪN TUYỆT ĐỐI].
2 Trước tiên hãy cho tôi biết đây là loại mục tiêu gì (native, Electron/JS, .NET, Go, APK, WASM)
3 và chọn đúng công cụ REA để mở nó. Đừng bắt đầu phân tích sâu vội.
4 Sau đó tóm tắt nó trong một đoạn văn: nó được xây dựng bằng gì, dung lượng bao nhiêu, bạn sẽ
5 tìm [TÍNH NĂNG] ở đâu đầu tiên. Hãy tách biệt các quan sát, suy luận và những điều chưa xác định.
Hanako - inline image

Phần mà hầu như không ai nhắc tới: nhiều game Unity xuất logic của chúng dưới dạng .NET, và REA đọc được .NET mà không cần thêm engine nào.

Đó là toàn bộ lý do khiến một tựa game Steam đã mua có thể chuyển từ file nhị phân sang mã C# chỉnh sửa được chỉ trong vòng nửa giờ.

Và mọi ứng dụng Electron trên máy bạn đều có thể đọc được ngay lúc này, thậm chí không cần khởi chạy nó:

bash
1# nơi chứa mã JavaScript
2macOS: /Applications/<App>.app/Contents/Resources/app.asar
3Windows: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar
4 npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

02. Cài đặt trong năm phút, sau đó thêm một engine

Thứ làm nên hiệu quả của công cụ này không phải là một prompt thông minh. Nó là một engine dịch ngược thực sự được nối dây trực tiếp vào agent, và đó chính xác là cách một nhà phát triển đã mô tả về nó.

https://x.com/techNmak/status/2108431092462338178

Quá trình thiết lập sẽ đăng ký MCP server với agent của bạn và cài đặt kỹ năng workflow tương ứng.

Nó hiển thị mọi thay đổi trước khi ghi bất cứ thứ gì và sao lưu những gì nó can thiệp vào.

node -v # Node 22.19+, 24.11+ hoặc 26+. Không hỗ trợ phiên bản 23 và 25

bash
1npx rea-agents@latest setup # đăng ký MCP server, hỏi trước khi ghi
2npm install --global rea-agents # lệnh rea ngắn gọn, dùng mãi mãi
3rea --help
4# khởi động lại agent, sau đó xác minh. doctor chỉ kiểm tra, không bao giờ thay đổi bất cứ thứ gì
5npx -y rea-agents@latest doctor --client claude_code --json

Việc khởi động lại quan trọng hơn bạn tưởng: một phiên terminal phải được bắt đầu lại từ đầu, và các ứng dụng desktop cần được thoát hoàn toàn, vì chỉ đóng cửa sổ là không đủ.

Sau đó, chỉ thêm engine cho những gì bạn thực sự muốn đọc:

Có một file rất đáng để viết trước khi bạn xử lý mục tiêu thực sự đầu tiên: luật nội bộ trong claude-md.

Chỉ phân tích những gì bạn sở hữu, gắn nhãn mọi nhận định là quan sát, suy luận hoặc chưa xác định, trích dẫn địa chỉ đứng sau nó, và đừng bao giờ coi một hành vi đã khôi phục là xong nếu chưa vượt qua bài kiểm thử.

bash
1# chương trình và game native: Ghidra 12.1.x và JDK 21 trở lên
2 export GHIDRA_INSTALL_DIR=/đường/dẫn/tuyệt/đối/tới/ghidra_12.1.4_PUBLIC
3 export JAVA_HOME=/đường/dẫn/tuyệt/đối/tới/jdk-21
4 npx -y rea-agents@latest doctor --provider ghidra --json
5
6 # Ứng dụng Android: JDK 17+ và jadx-headless-mcp 0.7.1
7 export REA_JADX_MCP_JAR=/đường/dẫn/tuyệt/đối/jadx-headless-mcp-0.7.1-all.jar
8 rea inspect-android-package /đường/dẫn/App.apk
9
10 # bytecode hợp đồng thông minh, hiện chỉ hỗ trợ Linux x64
11 rea inspect-evm-interface ./runtime.hex hex --json

03. Trinh sát: bản đồ phải có trước code

Đừng mở bất kỳ hàm nào vội.

Chỉ một lệnh duy nhất sẽ cho bạn biết file nhị phân chạy trên kiến trúc máy nào, bên trong có bao nhiêu hàm, và toàn bộ chuỗi văn bản có thể đọc được ẩn trong đó.

Đoạn văn bản đó là manh mối nhanh nhất bạn có được trong cả ngày: các endpoint, chuỗi lỗi và tên tính năng sẽ mô tả ứng dụng trước khi bạn kịp đọc bất kỳ dòng logic nào.

json
1rea.open_binary { path: "/Applications/Target.app/Contents/MacOS/Target" }
2rea.binary_overview {}
3 arch: arm64
4 functions: 1.284 đã nhận diện
5 entry: _main @ 0x1000051c0
6
7rea.search { query: "http" }
8 0x10004a2c0 "https://api.target.app/v3/sync"
9 0x10004a300 "Authorization: Bearer "
10
11rea.xrefs { address: "0x100012ab0" }
12 147 tham chiếu -> trình tải cấu hình cốt lõi, được gọi ở khắp nơi
Hanako - inline image

REA đếm số lần mỗi hàm được gọi, và con số đó chính là số lượng tham chiếu chéo.

Một hàm được gọi 147 lần chính là kiến trúc của ứng dụng, còn hàm chỉ được gọi hai lần là một hàm phụ trợ có thể để dành xử lý sau.

Hãy sắp xếp theo con số đó và làm dần xuống, đừng bao giờ làm theo thứ tự file, vì thứ tự file chính là cách người ta đánh mất cả một cuối tuần trong một file nhị phân vốn chỉ có bốn hàm thú vị.

04. Dịch ngược một hàm, sau đó để Opus đặt tên cho mọi thứ trong đó

Trình decompiler biến các chỉ thị máy thô ráp trở lại thành thứ gì đó gần giống với ngôn ngữ C.

Kết quả ban đầu khá lộn xộn: những cái tên như var_28, ép kiểu ở khắp nơi, các nhánh rẽ rối rắm, nhưng lộn xộn cũng không sao, vì chỉ cần đọc được là đủ để mô hình xử lý.

bash
1# một hàm theo địa chỉ, dưới dạng JSON để bạn có thể lưu và dùng lại
2rea decompile /path/to/Target 0x100012ab0 --provider hopper --json > fn_config.json
3
4# hoặc tìm theo tên và theo dõi các tham chiếu của nó
5rea function /path/to/Target parseConfig --provider hopper --json
6rea xrefs /path/to/Target 0x100012ab0 --provider hopper --json

Sau đó đưa output này cho Opus 5.5 và yêu cầu nó làm phần việc mà disassembler không thể làm:

markdown
1Đây là pseudocode đã dịch ngược từ một hàm có 147 tham chiếu chéo.
2
31. Đổi tên mọi biến dựa trên cách chúng được sử dụng, và nêu mục đích của chúng trong một câu.
42. Liệt kê các cấu trúc dữ liệu mà nó đọc và ghi, đồng thời gọi tên pattern mà nó tuân theo.
53. Viết lại thành đoạn code sạch, chuẩn mực bằng ngôn ngữ mà quy ước gọi hàm ngụ ý.
64. Đánh dấu bất kỳ phần xử lý lỗi, kiểm tra đầu vào hoặc kiểm tra bảo mật nào còn thiếu.
7
8Hãy suy nghĩ ở mức nỗ lực xhigh trước khi trả lời. Đánh dấu bất cứ điều gì bạn không chắc chắn.
Hanako - inline image

Opus 5.5 có năm mức nỗ lực: low, medium, high, xhigh và max.

Medium dùng để kiểm tra và điều hướng, high dùng để chú thích các hàm thông thường, max dành cho code bị làm rối và các phép toán con trỏ phức tạp.

Mức nỗ lực là nút vặn chất lượng quan trọng nhất trong toàn bộ quy trình này, nhưng hầu hết mọi người đều để mặc định rồi sau đó đổ lỗi cho mô hình.

Dịch ngược cho bạn biết đoạn code làm gì, còn mô hình cho bạn biết tại sao, cùng những cái tên để xây dựng lại nó.

05. Code bị làm rối: phá vỡ những gì đáng phá, lập ngân sách cho phần còn lại

Một số ứng dụng được sinh ra để chống lại chính xác những gì bạn đang làm: logic bị xáo trộn, chuỗi ký tự bị mã hóa, các nhánh giả được thêm vào chỉ để đánh lạc hướng bạn.

Đây là nơi duy nhất mà ngay cả mô hình tốt nhất cũng chật vật, và đã có những con số đo lường cụ thể cho việc này.

Elastic Security Labs đã chĩa Claude Opus vào trình xáo trộn Tigress qua 20 tác vụ, và hai bài học rút ra ngay lập tức.

Một lần thử thất bại tốn gấp đôi một lần thành công, vì mô hình cứ cố gắng đẩy tiếp trước khi chịu bỏ cuộc; còn việc làm rối nhiều lớp thì cho tỷ lệ thành công bằng không, nên cố đấm ăn xôi với nó là cách đắt đỏ nhất để chẳng học được gì.

Hanako - inline image

Quy tắc thực tế là lập ngân sách cho từng hàm, chứ không phải cho cả phiên làm việc.

Hãy loại bỏ phần rác trước, vì một công cụ miễn phí tên là Caveman có thể dọn dẹp khoảng 75% mớ hỗn độn sau khi dịch ngược, giúp mô hình dồn sự tập trung vào logic thực sự.

markdown
1Hàm này trông có vẻ bị làm rối. Hãy làm việc ở mức nỗ lực tối đa (max).
2
31. Xác định các kỹ thuật đang được sử dụng (làm phẳng luồng điều khiển, vị từ mờ,
4 code chết, mã hóa chuỗi, chia nhỏ hàm) và chỉ ra từng kỹ thuật ở đây.
52. Giải quyết chúng: xóa các nhánh chết, đánh giá vị từ mờ, gỡ làm phẳng
6 luồng điều phối, giải mã chuỗi inline nếu có thể khôi phục khóa. Hiển thị những gì còn lại.
73. Tự đánh giá độ tin cậy từ 1-10. Nếu dưới 6, hãy nêu tên các phần chưa chắc chắn và bối cảnh nào sẽ
8 giúp giải quyết chúng. Đừng đoán mò trong im lặng.

06. Swarm: một controller, nhiều worker

Một khung chat duy nhất không thể đọc tốt 500 hàm.

Nó sẽ quên những gì đã thấy ở bốn mươi hàm trước, đặt ba cái tên khác nhau cho cùng một struct, và bắt đầu âm thầm tự mâu thuẫn với chính mình.

Giải pháp không phải là thêm context, mà là phân chia vai trò: một controller giao việc, và các worker, mỗi worker nhận một hàm rồi dừng lại.

Hanako - inline image
markdown
1Bạn là một controller dịch ngược. Bản đồ hàm nằm trong functions.json
2(địa chỉ, tên, kích thước, xref_count).
3
41. Phân cụm các hàm theo độ gần gũi trong biểu đồ gọi hàm; sắp xếp các cụm theo xref_count.
52. Phân công mỗi cụm cho một worker. Tuyệt đối không tự phân tích bất kỳ hàm nào.
63. Tiêm các struct đã được giải quyết vào từng bản tóm tắt để tên gọi luôn nhất quán.
74. Độ tin cậy dưới 6 sẽ được xử lý lại lần hai với context từ các hàm lân cận đã giải quyết.
85. Theo dõi tổng lượng token đã tiêu thụ và báo cáo sau mỗi cụm.
9
10Bạn là một worker. Bạn nhận được một hàm đã dịch ngược và các struct đã giải quyết cho đến nay.
11Trả về chính xác: địa chỉ, mục đích, độ tin cậy (1-10), structs_used, structs_new,
12clean_source, flags. Tái sử dụng tên struct hiện có, đừng bao giờ tự bịa ra tên thứ hai cho
13một struct mà controller đã cung cấp cho bạn. Chỉ xử lý một hàm. Dừng lại khi xong.

REA cũng tích hợp sẵn các workflow có hướng dẫn trong MCP server mà hầu hết mọi người chưa từng mở ra:

  • - investigate_feature - truy vết một tính năng từ lúc phát hiện đến chính xác các hàm liên quan
  • - compare_application_versions - so sánh hai bản phát hành và xem thực sự có gì thay đổi
  • - verify_reconstruction - đối chiếu bản dựng lại của bạn với các bằng chứng đã lưu
  • - audit_residual_unknowns - liệt kê những gì vẫn chưa được chứng minh

07. Clean room: bức tường ngăn giữa hai bối cảnh chính là sản phẩm

Xây dựng lại theo phương pháp clean-room nghĩa là bạn sao chép những gì ứng dụng làm chứ không bao giờ sao chép đoạn code bên trong nó.

Làm đúng thì những gì bạn phát hành hoàn toàn thuộc về bạn, làm sai thì bạn đang mang bản quyền của người khác vào chính repository của mình.

Đây là một phương pháp đã 40 năm tuổi, không phải phát minh của năm 2026.

Đầu những năm 80, Compaq đã xây dựng lại BIOS của IBM theo cách này với chi phí khoảng 1 triệu USD, và đó là lý do duy nhất khiến PC của các thương hiệu khác tồn tại.

Năm 1992, tòa án trong vụ Sega kiện Accolade phán quyết rằng việc mổ xẻ code có thể được coi là sử dụng hợp lý khi đó là cách duy nhất để hiểu nó hoạt động ra sao; và năm 2000, Sony thua kiện Connectix với tỷ số 3-0 vì bản giả lập hoàn chỉnh không chứa bất kỳ dòng code nào của Sony.

Mặt bên kia của ranh giới cũng rõ ràng không kém: năm 2011, George Hotz đã dàn xếp với Sony và đồng ý dừng lại sau khi khóa root của PS3 bị công khai.

Hanako - inline image

Bốn quy tắc giúp bạn đứng về phía lẽ phải, và đội ngũ ArtCraft tự động kiểm tra cả bốn quy tắc này trên mỗi bản dựng:

  • - Quan sát, không sao chép. Chạy mục tiêu dưới dạng hộp đen, chỉ chụp ảnh màn hình cửa sổ của riêng nó, đừng bao giờ dán code của nó vào dự án của bạn
  • - Đặc tả, không phải mã nguồn. Định dạng file lấy từ các tiêu chuẩn công khai (OOXML là ECMA-376 / ISO 29500, cộng với các đặc tả RTF và ODF đã công bố), không bao giờ lấy từ việc đọc trình phân tích cú pháp của đối thủ
  • - Chỉ dùng tài nguyên gốc. Mọi biểu tượng, phông chữ, mẫu và âm thanh đều được vẽ bằng code, thuộc phạm vi công cộng hoặc có giấy phép mở, kèm theo một dòng trong file ghi công
  • - Tách biệt hai công việc. Một agent khôi phục hành vi và viết đặc tả, một bối cảnh khác triển khai chỉ dựa trên đặc tả đó

Quy tắc cuối cùng chính là quy tắc mọi người hay bỏ qua, và nó mới là ranh giới thực sự.

Agent điều tra của bạn, theo định nghĩa, đã bị "nhiễm", vì nó đã đọc bản dịch ngược, còn agent xây dựng của bạn thì không được phép như vậy.

markdown
1Từ bản phân tích đã hoàn thành, hãy viết một đặc tả clean-room cho việc triển khai lại.
2
3CHỈ mô tả HÀNH VI: mọi giao diện công khai, mô hình dữ liệu, từng tính năng mà người dùng nhìn thấy
4dưới dạng một yêu cầu có thể kiểm thử, các định dạng file được đọc và ghi, cách xử lý lỗi.
5
6KHÔNG ĐƯỢC đưa vào địa chỉ, offset, tên biến đã dịch ngược, mã assembly, hoặc bất cứ thứ gì
7sao chép từ bản gốc. Một nhà phát triển chưa từng thấy file nhị phân phải có khả năng
8triển khai một phiên bản tương thích chỉ dựa trên tài liệu này.
9
10Các phần: Kiến trúc, Mô hình dữ liệu, API công khai, Định dạng file, Các ca kiểm thử.

Làm việc dựa trên bản mô tả không chỉ là lá chắn pháp lý.

Nó cho phép bạn đưa ra quyết định đúng đắn cho ngôn ngữ của riêng mình thay vì kế thừa những quyết định ai đó đã đưa ra từ hai thập kỷ trước, và đó là lý do WordCraft nhanh hơn Word ở một số điểm.

08. Kiểm tra tính tương đương, sau đó phát hành qua MCP

Bạn chưa bao giờ có mã nguồn gốc, nên không thể so sánh từng dòng một.

Bạn so sánh hành vi: đưa cùng một đầu vào cho cả hai bản dựng, và nhận về cùng một đầu ra.

markdown
1Xây dựng một bộ kiểm thử hành vi để so sánh file nhị phân gốc và bản dựng lại của tôi.
2
3Tạo 50 đầu vào: 30 bình thường, 10 ngoại lệ (rỗng, kích thước tối đa, unicode), 10 lỗi
4(sai định dạng, hỏng). Chạy từng đầu vào qua cả hai, so sánh từng byte nếu có thể
5và so sánh theo ngữ nghĩa trong các trường hợp còn lại. Báo cáo tỷ lệ khớp, các điểm sai lệch và mức độ nghiêm trọng của từng điểm
6(thẩm mỹ / hành vi / nghiêm trọng). Lưu vào report.md.

"Tôi nghĩ nó khớp" không phải là bằng chứng, tỷ lệ khớp mới là bằng chứng, và bản báo cáo đó là thứ thuyết phục nhất bạn có thể đặt ở đầu bài đăng phát hành.

Sau đó, hãy phát hành bản dựng lại theo cách mà REA và các ứng dụng Craft đã làm, dưới dạng một MCP server, để agent của người tiếp theo có thể điều khiển công cụ của bạn giống như cách bạn đã điều khiển REA.

Hãy đặt cho mỗi hàm một cái tên rõ ràng và một lệnh cài đặt một dòng, để mọi hành động đều trở thành một lệnh có tên mà một cú nhấp chuột, một phím tắt và một agent đều có thể kích hoạt y hệt nhau.

bash
1claude mcp add wordcraft -- wordcraft-cli mcp
2
3> Mở report.docx, in đậm mọi tiêu đề cỡ 14pt, xuất ra PDF
4 ok select.all-headings -> 12 selected
5 ok format.font-size 14 . format.bold
6 ok export report.pdf (selectable text, bookmarks kept)

Những giới hạn, và năm sai lầm khiến bạn lãng phí cả cuối tuần

REA không thể chạm tới server, vì nó chỉ đọc những gì có trên máy bạn, còn code chạy trên server của công ty thì chưa bao giờ được gửi đến tay bạn.

Code đã dịch ngược là một bản tái tạo, không phải mã nguồn gốc, và đó là toàn bộ lý do bước 08 tồn tại.

Các file nhị phân C++ đã bị tước ký hiệu (stripped) vẫn khó nhằn hơn nhiều so với game Unity .NET, và các engine thương mại vẫn đòi hỏi giấy phép thật.

  • - Mở disassembler trên một ứng dụng Electron trong khi mã JavaScript nằm ngay đó
  • - Dump toàn bộ file nhị phân trước khi đọc bản tóm tắt, khiến logic bị chôn vùi và hóa đơn chi phí tăng vọt
  • - Đọc các hàm theo thứ tự file thay vì theo số lượng tham chiếu chéo
  • - Để mô hình sao chép code vào bản dựng lại của bạn, phá vỡ nguyên tắc clean room chỉ bằng một lần dán
  • - Phát hành mà không có báo cáo kiểm tra tính tương đương

Về mặt pháp lý, sự thật thẳng thắn là thế này, bởi một nửa mạng X đã gào thét về nạn vi phạm bản quyền suốt một tuần qua: đọc một ứng dụng trên máy tính của chính bạn là việc học hỏi, xây dựng lại một tính năng từ hành vi của nó là cách ngành công nghiệp này vận hành từ những năm 80, còn sao chép code hoặc bẻ khóa các tính năng trả phí mới là thứ khiến bạn bị kiện.

Học hỏi từ bản gốc, phát hành sản phẩm của riêng bạn.

Mỗi bước trong tám bước này đều có một bài học chi tiết tại

reacourse.xyz , kèm theo các prompt chính xác, những cách thức thất bại, và những điểm mà phương pháp này không còn hiệu quả.

Mã nguồn đóng từng có nghĩa là bạn sẽ không bao giờ biết được.

Giờ đây nó có nghĩa là hãy đưa bằng chứng ra đây.

Hầu hết mọi người sẽ tiếp tục trả phí hàng tháng cho một tính năng mà họ có thể hiểu được trong một buổi chiều và xây dựng lại trong một cuối tuần.

Số ít những người học được cách đọc phần mềm sẽ xây dựng bất cứ thứ gì họ muốn.

Theo dõi tôi và đăng ký kênh Telegram của tôi:

https://t.me/+75nMf005jRpjMDU1

Lưu một chạm

Đọc sâu bài viết viral bằng AI trong YouMind

Lưu nguồn, đặt câu hỏi tập trung, tóm tắt lập luận và biến một bài viết viral thành các ghi chú có thể tái sử dụng trong một không gian làm việc AI duy nhất.

Khám phá YouMind
Dành cho nhà sáng tạo

Biến Markdown của bạn thành bài viết 𝕏 gọn gàng

Khi bạn đăng bài viết dài của riêng mình, việc định dạng hình ảnh, bảng và khối mã cho 𝕏 rất mệt mỏi. YouMind biến cả bản nháp Markdown thành một bài viết 𝕏 gọn gàng, sẵn sàng để đăng.

Thử Markdown sang 𝕏

Thêm pattern để giải mã

Bài viết viral gần đây

Khám phá thêm bài viết viral