Decompiler-VB.Net
VN
Đăng nhập
VBReFormer Gen2 Engine được viết lại từ đầu, hỗ trợ P-code đầy đủ, và studio trực tuyến đang ở giai đoạn beta công khai. Đọc thông báo →
Tài liệu
VBReFormer Desktop

Hướng dẫn sử dụng VBReFormer Desktop

Hướng dẫn sử dụng VBReFormer Desktop: cài đặt, kích hoạt giấy phép, đọc bảy chế độ xem, phân tích tệp nhị phân, xuất dự án VB6 mở lại được trong IDE.

Cập nhật ngày 20/09/202614 chương

Ứng dụng được cài đặt trên máy Windows của bạn. Nó mở các tệp thực thi Visual Basic 5 và 6 của bạn, tái tạo mã nguồn của chúng và trả lại cho bạn một dự án mà VB6 IDE có thể mở lại – cùng với bộ công cụ đầy đủ: byte, tài nguyên, trình thiết kế, đồ thị, tham chiếu chéo và bản vá nhị phân.

Lưu ý về bản dịch. Giao diện của ứng dụng máy tính để bàn có sẵn bằng tiếng Anh, tiếng Pháp và tiếng Tây Ban Nha; không có phiên bản tiếng Việt. Trong tài liệu hướng dẫn này, tên các menu và chế độ xem được trích dẫn bằng tiếng Anh đúng như hiển thị trong ứng dụng, kèm theo bản dịch tiếng Việt trong ngoặc đơn ở lần xuất hiện đầu tiên.

1. Cài đặt

VBReFormer Desktop được phân phối dưới dạng trình cài đặt MSI, mỗi ngôn ngữ giao diện một gói. Gói cài đặt tự chứa (self-contained): nó nhúng sẵn mọi thứ cần thiết, không có framework nào phải cài đặt trước.

yêu cầu
Hệ thống Windows 10 phiên bản 1607 trở lên, hoặc Windows 11
Kiến trúc x64
Framework không – gói cài đặt tự chứa
Kết nối cần thiết để dịch ngược và xác thực giấy phép
Ngôn ngữ giao diện tiếng Anh, tiếng Pháp, tiếng Tây Ban Nha

Windows XP, Vista, 7 và 8 không được hỗ trợ. Ứng dụng dựa trên một nền tảng đòi hỏi tối thiểu Windows 10. Nếu máy của bạn cũ hơn, VBReFormer Online hoạt động trong mọi trình duyệt, trên mọi hệ thống – đó là con đường được khuyến nghị trong trường hợp này.

Nơi engine hoạt động

Ứng dụng chạy cục bộ; tuy nhiên, việc tái tạo mã diễn ra trên máy chủ của chúng tôi. Đó chính là ý nghĩa của tên phiên bản – Desktop + Cloud. Mọi thứ được đọc từ tệp – định dạng, byte, disassembly (phân rã mã máy), tài nguyên – đều được tính toán trên máy của bạn; mọi thứ được tái tạo đều đi qua dịch vụ.

Hộp thoại Help ▸ About (Trợ giúp ▸ Giới thiệu) cho bạn biết bất cứ lúc nào phiên bản của engine được kết nối, phiên bản của hợp đồng, và danh sách capabilities served (các khả năng được cung cấp) – hữu ích khi một tính năng không xuất hiện: nếu nó không có trong danh sách đó, thì không phải giao diện từ chối nó.

2. Kích hoạt giấy phép của bạn

Không có giấy phép, ứng dụng vẫn mở và hoạt động: bạn có thể khám phá một tệp nhị phân, đọc toàn bộ disassembly, byte, tài nguyên và trình thiết kế. Những gì giấy phép mở khóa là việc tái tạo mã VB6 và việc xuất dự án.

Mỗi lần một chỗ

Một giấy phép VBReFormer mở một máy trạm tại một thời điểm. Nếu bạn đang dùng nó ở nơi khác, ứng dụng nói rõ điều đó và đưa ra hai lối thoát: chuyển giấy phép sang máy này từ tài khoản của bạn, hoặc thêm một chỗ (seat).

Đó là một sự từ chối mềm: bạn đã thanh toán, không thiếu gì cả. Thông báo nói theo cách đó thay vì trả về một lỗi kỹ thuật.

Một trình duyệt đang mở VBReFormer Online cũng được tính là một chỗ: studio web và ứng dụng máy tính để bàn dùng chung cùng một giấy phép.

3. Cửa sổ

  1. Mở một tệp nhị phân. File ▸ Open a VB6 binary (Tệp ▸ Mở tệp nhị phân VB6, Ctrl+O). Các định dạng được chấp nhận là .exe, .dll, .ocx và .scr. Thanh trạng thái hiển thị quá trình phân tích đang diễn ra, rồi tên tệp và dạng biên dịch của nó – mã native hay P-code.
  2. Duyệt ngăn PROJECT (Dự án). Ở bên trái, tệp nhị phân được trình bày theo cách VB6 nhìn thấy nó: form, lớp, mô-đun và các thủ tục của chúng. Cây được điền theo yêu cầu – mở rộng một nút sẽ yêu cầu các nút con của nó; không có gì được tính toán trước, điều này giữ cho việc mở nhanh ngay cả với một tệp thực thi lớn.
  3. Chọn một thủ tục. Các chế độ xem của nút đó xuất hiện ở bên phải. Nếu không có chế độ xem nào được cung cấp cho một nút, lý do được ghi trên màn hình thay vì một ngăn trống.

Các ngăn phía dưới

tab dùng để làm gì
Output (Đầu ra) nhật ký các thao tác. Nó giữ nguyên ngôn ngữ mà mỗi dòng đã được viết, ngay cả khi bạn đổi ngôn ngữ giao diện – nhật ký là một bản ghi, không phải một màn hình hiển thị.
Diagnostics (Chẩn đoán) những gì engine đã từ chối làm, và tại sao. Phản xạ cần có ngay khi một kết quả làm bạn ngạc nhiên.
Analyser (Trình phân tích) tham chiếu chéo: các nơi gọi một thủ tục, các lần xuất hiện của một ký hiệu. Kết quả có thể nhấp vào.

Phạm vi truy cập của thành viên

Mỗi thành viên trong cây mang phạm vi truy cập (visibility) đúng như tệp nhị phân khai báo – (Public), (Private), (Friend). Đây là các từ khóa VB6: chúng không được dịch. Một thành viên mà phạm vi truy cập không đọc được không mang dấu nào cả: chúng tôi không viết những gì chúng tôi không biết.

4. Bảy chế độ xem

Chúng được sắp xếp thành ba nhóm, và sự phân chia đó cho bạn biết những gì bạn đọc đến từ đâu. Đó là điều hữu ích nhất cần hiểu.

Nhóm “Code” – được tái tạo bằng phân tích

chế độ xem hiển thị gì khi nào nên xem
Visual Basic 6 mã nguồn được tái tạo, có cấu trúc theo mặc định – đây là thứ bạn đang tìm
IR biểu diễn trung gian để xem engine đã hiểu gì
Disassembly các lệnh máy x86 để xem bộ xử lý thực thi gì
P-code các opcode của máy ảo VB6 chỉ với tệp nhị phân P-code

Đi xuống danh sách này là đi về phía máy. Khi nghi ngờ về một dòng: Visual Basic 6 nói lên ý định, Disassembly nói lên sự thật.

Nhóm “Project files” – được đọc, không phải suy luận

Designer (.frm) (Trình thiết kế), Project (.vbp) (Dự án) và Structure (Cấu trúc). Không có gì ở đây đi qua quá trình tái tạo mã: mọi thứ đều được đọc từ các bảng trong tệp nhị phân, và những gì không đọc được thì được ghi rõ bằng lời thay vì được điền vào. Đây là nhóm đáng tin cậy nhất của sản phẩm, và là nhóm không phụ thuộc vào bất kỳ suy luận nào.

Nhóm “Resources”

Xem chương 9.

5. Quá trình biên dịch giữ lại gì, và vứt bỏ gì

Chương này giải thích tại sao một số phần mã của bạn quay lại gần như nguyên vẹn còn những phần khác lại mang tên kỹ thuật. Quy tắc rất đơn giản:

Những gì Visual Basic cần lúc chạy, nó đã ghi vào tệp: VBReFormer tìm lại được. Những gì nó không còn cần sau khi biên dịch, nó đã vứt bỏ – và không ai có thể khôi phục.

Những gì còn lại: tên form, lớp và mô-đun · tên điều khiển · trình xử lý sự kiện · thành viên public của lớp · mọi thuộc tính giao diện · lời gọi đến VB runtime (635 hàm) · Win32 API (15.680 chữ ký) · cấu trúc của mã · các chuỗi.

Những gì không có trong tệp: chú thích · tên biến cục bộ · tên tham số · hằng số có tên, bị thay bằng giá trị của chúng · tên thủ tục trong mô-đun .bas · thụt lề gốc · Option Explicit và các Enum.

Hệ quả thực tế. Các form của bạn quay lại rất dễ đọc. Các mô-đun .bas của bạn quay lại đúng, nhưng với tên kỹ thuật (proc_42C506). Chức năng Rename (Đổi tên, F2) tồn tại cho việc đó, và nó lan truyền tên mới đến mọi vị trí gọi trong dự án – xem chương 7.

Hai ví dụ có thể kiểm chứng

Các đoạn trích dưới đây lấy từ SETUP1.EXE, trình hướng dẫn cài đặt đi kèm Visual Basic 6. Microsoft phân phối mã nguồn của nó trong cùng thư mục – vì vậy bạn có thể tự mình làm lại phép so sánh.

Một thủ tục trong mô-đun .bas

Mã nguồn gốc, COMMON.BAS:

Sub AddDirSep(strPathName As String)
    If Right(Trim(strPathName), Len(gstrSEP_URLDIR)) <> gstrSEP_URLDIR And _
       Right(Trim(strPathName), Len(gstrSEP_DIR)) <> gstrSEP_DIR Then
        strPathName = RTrim$(strPathName) & gstrSEP_DIR
    End If
End Sub

Do VBReFormer kết xuất:

Public Sub proc_42C506(ByRef arg_8 As String)
    If ((Right(Trim(arg_8), Len("/")) <> "/") And (Right(Trim(arg_8), Len("\")) <> "\")) <> 0 Then
        arg_8 = (RTrim$(arg_8) & "\")
    End If
End Sub

Logic giống hệt nhau, từng dòng một. Right, Trim, Len, RTrim$ được đặt tên; cách truyền ByRef được suy luận đúng. Ngược lại, tên của thủ tục và tên của tham số bị mất, và các hằng số xuất hiện dưới dạng giá trị của chúng – trình biên dịch đã thay thế chúng, không phải VBReFormer.

Một trình xử lý sự kiện

Mã nguồn gốc, BEGIN.FRM:

Private Sub cmdExit_Click()
    ExitSetup Me, gintRET_EXIT
End Sub

Do VBReFormer kết xuất:

Private Sub cmdExit_Click()
    Set var_18 = Me
    basSetup1.proc_41CE2D var_18, var_1C
End Sub

Tên của form, tên của nút và tên của trình xử lý đều nguyên vẹn; Me được nhận dạng; mô-đun được gọi có tên, cho bạn biết phải đi đâu. Chỉ có thủ tục được gọi, nằm trong một .bas, là giữ tên theo địa chỉ.

Các dấu đánh dấu

VBReFormer không bao giờ đoán. Một giá trị không thể xác lập thì được đánh dấu thay vì bịa ra – một giá trị hợp lý nhưng sai là kết quả tồi tệ nhất mà một trình dịch ngược (decompiler) có thể tạo ra.

dấu đánh dấu ý nghĩa nên làm gì
proc_42C506 thủ tục được chỉ định bằng địa chỉ đổi tên nó (F2)
var_18, arg_8 biến cục bộ hoặc tham số đọc cách nó được dùng, rồi đổi tên
vtbl_3C lời gọi qua bảng ảo chưa được phân giải Object Browser thường cho biết đó là thư viện nào
? giá trị chưa xác lập xem chế độ xem Disassembly tại cùng vị trí

Một tệp chứa ? sẽ bị VB6 IDE từ chối. Dấu đánh dấu ở đó để bạn quyết định, không phải để được biên dịch lại nguyên trạng.

6. Các công cụ phân tích

Đây là nơi phiên bản máy tính để bàn khác biệt nhất: nó cung cấp một bộ công cụ hoàn chỉnh, trong khi studio web tập trung vào việc đọc, dịch ngược và xuất.

công cụ phím tắt mang lại cho bạn gì
Analyse references (Phân tích tham chiếu) Shift+F12 các nơi gọi một thủ tục, các lần xuất hiện của một ký hiệu – kết quả có thể nhấp vào, và độ bao phủ được định lượng: những gì phân tích không thấy thì được đếm, chứ không bị bỏ qua trong im lặng
Symbol list (Danh sách ký hiệu) Ctrl+Shift+S bản kiểm kê đầy đủ, lọc được theo loại và theo phạm vi – nó phân biệt tên được đọc với tên được tổng hợp
Call graph (Đồ thị lời gọi) Ctrl+Shift+A ai gọi gì, ở ba cấp độ, với các bộ lọc nơi gọi / nơi được gọi
Control-flow graph (Đồ thị luồng điều khiển) Ctrl+Shift+G hình dạng của một thủ tục: các khối, vòng lặp, cạnh ngược, khối không thể đến được
Object Browser (Trình duyệt đối tượng) Ctrl+Shift+B “cái này được định nghĩa ở đâu?” khi câu trả lời nằm bên ngoài tệp nhị phân
API Browser (Trình duyệt API) Ctrl+Shift+P nguyên mẫu, bí danh và ghi chú của các khai báo Win32
Cited libraries (Thư viện được tham chiếu) Ctrl+K tệp nhị phân phụ thuộc vào những gì
Find VB programs (Tìm chương trình VB) Ctrl+L tìm các tệp thực thi VB trong một thư mục
Find (Tìm) Ctrl+Shift+F tìm kiếm văn bản trên các chế độ xem được cung cấp
Bookmarks (Dấu trang) Ctrl+F2 đánh dấu các vị trí, quay lại chúng (F8 / Shift+F8)
Back / forward navigation (Điều hướng lùi / tiến) Alt+← Alt+→ như trong một trình duyệt

Tại sao độ bao phủ được định lượng. Đồ thị lời gọi native thấy các lời gọi trực tiếp; nó không thấy các lời gọi qua bảng ảo hay con trỏ hàm. Thay vì trình bày một danh sách không đầy đủ như thể đầy đủ, VBReFormer hiển thị những gì nó bỏ sót, có đếm. Khi đó bạn biết nên tin kết quả đến mức nào.

7. Đổi tên

Đó là thao tác trung tâm khi làm việc trên một tệp nhị phân: trình dịch ngược trả lại cho bạn logic, bạn trả lại cho nó các tên. F2 trên một ký hiệu, hoặc từ danh sách ký hiệu.

Hộp thoại hiển thị ba điều mà các trình dịch ngược thường che giấu:

  • nguồn gốc của tên hiện tại – do bạn đặt, do trình dịch ngược suy luận, hoặc được tái tạo;
  • các đề xuất của trình dịch ngược, mỗi đề xuất kèm độ ưu tiên và nguồn mà nó đến từ;
  • tên gốc, mà bạn luôn có thể quay lại.

Đổi tên có tính toàn cục. Đổi tên một thủ tục một lần, và các vị trí gọi trong các mô-đun khác sẽ theo sau – kể cả những mô-đun bạn chưa mở.

Một lần đổi tên bị từ chối luôn bị từ chối kèm lý do. Hai trường hợp thường gặp: engine không công bố khả năng đổi tên trên tài liệu này, hoặc chế độ xem hiện tại chỉ mang các mảnh từ vựng – đủ để tô màu văn bản, không đủ để chỉ định một thực thể. Trong cả hai trường hợp, thông báo nói rõ điều đó, thay vì không làm gì cả.

8. Byte và bản vá nhị phân

Navigate ▸ Show bytes (Điều hướng ▸ Hiển thị byte, Ctrl+Shift+H) mở chế độ xem hex có chú giải: nó không chỉ hiển thị các byte, nó cho biết mỗi vùng đại diện cho gì. Go to address (Đi tới địa chỉ, Ctrl+G) đưa bạn thẳng đến đó.

Sửa đổi tệp thực thi

Chế độ “raw” (thô) cho phép bạn ghi byte và tạo ra một tệp thực thi đã sửa đổi. Nó được đóng khung bởi bốn sự từ chối, và mỗi sự từ chối bảo vệ một điều gì đó:

từ chối tại sao
Tệp được phân tích không bao giờ là đích đến engine không bao giờ mở nó để ghi; giao diện không phá bỏ bảo đảm đó
Ghi đè một tệp hiện có phải được xác nhận “việc này không thể hoàn tác”
Chữ ký Authenticode sẽ bị gỡ bỏ sự đồng ý của bạn được hỏi trước; bạn có thể ký lại bằng chứng chỉ của riêng mình
Một bản vá bị từ chối không ghi gì cả không có tệp ghi dở

Studio web không cung cấp bản vá nhị phân hay chế độ xem hex: đây là hai chức năng riêng của phiên bản máy tính để bàn.

9. Tài nguyên và trình thiết kế

Tài nguyên của tệp nhị phân

Biểu tượng, con trỏ chuột, bitmap, bảng chuỗi, thông tin phiên bản: mọi thứ mà một tệp .res đáng lẽ sẽ mang. Mỗi mục hiển thị loại, kích thước và những gì có thể làm với nó, và việc trích xuất có thể thực hiện theo từng mục hoặc toàn bộ.

Một tài nguyên mà sản phẩm không biết cách vẽ vẫn được liệt kê và được hiển thị dưới dạng byte: nó không bao giờ bị ẩn. Và nếu các mục của thư mục tài nguyên không thể lần theo được, một cảnh báo nói rõ điều đó – khi đó bạn biết danh sách ngắn hơn những gì tệp nhị phân mang.

Trình thiết kế form

Bề mặt của form được vẽ theo cách VB6 đã hiển thị nó, từ các thuộc tính đọc được trong tệp nhị phân, theo đúng thứ tự vẽ. Hình ảnh của form có thể được xuất (Ctrl+I).

Các thuộc tính là chỉ đọc: VBReFormer biết cách đọc bề mặt của một form, nó chưa biết cách ghi lại bề mặt đó vào tệp thực thi đã biên dịch. Xem chương 13.

10. Xuất dự án

  1. Kiểm tra ngăn Diagnostics trước. Nó cho biết những gì không thể làm được. Đọc nó trước khi xuất giúp bạn khỏi phải tìm kiếm sau này tại sao một phần tử bị thiếu.
  2. File ▸ Export the VB6 project (Tệp ▸ Xuất dự án VB6). Chọn một thư mục đích trống.
  3. Đọc các ghi chú xuất. VBReFormer ghi lại những gì nó không thể khôi phục, và tại sao. Một số thông tin – tham chiếu bên ngoài, tùy chọn biên dịch, chế độ khởi động – không nằm trong bất kỳ cấu trúc nào của tệp nhị phân: chúng không bị xóa, chúng chưa bao giờ ở đó. Chúng được đánh dấu thay vì bịa ra.
  4. Mở tệp .vbp trong Visual Basic 6. Các phần đầu mà IDE yêu cầu (VERSION, Attribute VB_Name) được ghi. Nếu thiếu một tham chiếu, hãy thêm nó qua Project ▸ References (Dự án ▸ Tham chiếu).

Hai sự từ chối ghi bảo vệ bạn. Các tệp VB6 được ghi bằng ANSI 1252. VBReFormer từ chối ghi nếu bộ ký tự đó không có sẵn trên máy – ghi bằng một bộ ký tự khác sẽ tạo ra một tệp sai một cách âm thầm – hoặc nếu một ký tự trong mã của bạn không tồn tại trong bộ đó, trong trường hợp này nó cho bạn biết ký tự nào và điểm mã của nó.

11. Các tùy chọn

cài đặt tác dụng
Indentation width (Độ rộng thụt lề) chỉ áp dụng cho mã được tái tạo: disassembly, IR, P-code, khối trình thiết kế và .vbp không được định dạng bởi trình soạn thảo này.
Code page (designer) (Trang mã, trình thiết kế) trang mã dùng để đọc các tiêu đề và văn bản của trình thiết kế. Một tệp nhị phân VB6 không khai báo trang mã của chính nó ở bất cứ đâu – đo trên 236 tệp nhị phân. Nếu các nhãn của một form hiện ra thành các ký tự không nhất quán, đây là cài đặt cần thay đổi.
Group under With…End With (Nhóm dưới With…End With) tắt theo mặc định. Đầu ra được định danh đầy đủ (Frame1.Caption), vì trình biên dịch đã hòa tan các khối With và việc dựng lại chúng sẽ là một phỏng đoán. Bật lên nếu bạn thích tính dễ đọc hơn tính nguyên văn.
Syntax colouring (Tô màu cú pháp) một vai trò, một màu – các vai trò đến từ engine, engine cho biết mỗi mảnh là gì. Ký hiệu #RRGGBB; một bảng màu không hợp lệ không được áp dụng nửa chừng.
Interface language (Ngôn ngữ giao diện) tiếng Anh, tiếng Pháp, tiếng Tây Ban Nha – thay đổi có hiệu lực ngay lập tức.

Cài đặt kết xuất đi kèm với mỗi yêu cầu hiển thị; chúng không bao giờ được đặt làm trạng thái phiên. Do đó, thay đổi thụt lề không phân tích lại gì cả.

12. Phím tắt

phím tắt hành động
Ctrl+O Mở một tệp nhị phân VB6
F2 Đổi tên ký hiệu dưới con trỏ
Shift+F12 Phân tích tham chiếu
Ctrl+Shift+F Tìm trong dự án
Ctrl+G Đi tới địa chỉ
Ctrl+Shift+H Hiển thị byte
Ctrl+Shift+S Danh sách ký hiệu
Ctrl+Shift+B Object Browser
Ctrl+Shift+P API Browser
Ctrl+Shift+G Đồ thị luồng điều khiển
Ctrl+Shift+A Đồ thị lời gọi
Ctrl+K Thư viện được tham chiếu
Ctrl+L Chương trình VB trong một thư mục
Ctrl+F2 Bật/tắt dấu trang
F8 / Shift+F8 Dấu trang tiếp theo / trước đó
Ctrl+Shift+F2 Danh sách dấu trang
Alt+← / Alt+→ Điều hướng lùi / tiến
Ctrl+I Lưu hình ảnh form

13. Giới hạn đã biết

Sửa đổi giao diện của một tệp thực thi đã biên dịch

VBReFormer đọc bề mặt của một form và tất cả các thuộc tính của nó – nó chưa biết cách ghi lại chúng vào tệp thực thi. Thay thế một tài nguyên nhúng và thêm một thuộc tính ẩn mà không biên dịch lại là không khả dụng. Bản vá nhị phân – ghi byte tại một địa chỉ – thì có (chương 8).

Tài nguyên .ctx của UserControl

Không có tệp .ctx nào được ghi khi xuất. Nếu dự án của bạn chứa các UserControl với tài nguyên được lưu bền, phần đó cần được dựng lại.

Windows trước 10

Hãy dùng VBReFormer Online: một trình duyệt là đủ, bất kể hệ thống nào.

Những gì không trình dịch ngược nào vượt qua được

Chú thích, tên biến cục bộ, hằng số có tên: chúng không có trong tệp. Xem chương 5.

14. Câu hỏi thường gặp

Một chức năng trong menu không phản hồi. Tại sao? Mở Help ▸ About và xem danh sách capabilities served. Nếu chức năng đó không có trong danh sách, thì không phải giao diện từ chối: engine không cung cấp nó cho tài liệu này. Các thông báo của ứng dụng cũng nói rõ điều đó.

Mã được xuất có biên dịch lại nguyên trạng không? Thường là có: trên một bộ thử nghiệm gồm 149 dự án, 121 dự án biên dịch lại mà không cần chỉnh sửa. Số còn lại cần thêm một tham chiếu hoặc xử lý một vài dấu đánh dấu.

Các nhãn trên form của tôi không đọc được. Đó là trang mã. Một tệp nhị phân VB6 không khai báo ở đâu trang mã của các văn bản trong trình thiết kế – hãy đặt nó trong Tùy chọn (chương 11).

Tại sao các form của tôi dễ đọc hơn các mô-đun? Vì VB6 giữ tên của các điều khiển và sự kiện để hoạt động, trong khi nó phân giải các thủ tục trong mô-đun thành địa chỉ thuần túy. Xem chương 5.

Tệp thực thi của tôi được đóng gói (packed). Có vấn đề gì không? Có: nó phải được giải nén trước, nếu không các cấu trúc VB6 không hiện ra trong tệp.

Có thể dịch ngược một .ocx hay một .dll ActiveX không? Có, và bản kiểm kê các thành viên public ở đó nhìn chung phong phú hơn, vì COM đòi hỏi phải đặt tên cho chúng.

Tệp nhị phân của tôi có được gửi đi đâu không? Việc đọc định dạng, byte, disassembly và tài nguyên được xử lý trên máy của bạn. Việc tái tạo mã diễn ra trên máy chủ của chúng tôi – đó là ý nghĩa của phiên bản Desktop + Cloud.

Có hợp pháp không? Điều đó phụ thuộc vào quyền tài phán của bạn và quyền của bạn đối với tệp nhị phân. Mục đích sử dụng dự kiến là khôi phục mã của chính bạn, hoặc mã mà bạn nắm giữ quyền hoặc được ủy quyền.