Bạn đã mất mã nguồn của một ứng dụng VB6. Đây là những gì có thể khôi phục.
Ổ đĩa hỏng, lập trình viên đã rời đi, bản sao lưu của một phiên bản quá cũ: chỉ còn lại chương trình đã biên dịch. Một trình dịch ngược (decompiler) VB6 lấy lại được từ đó nhiều hơn người ta tưởng, nhưng không phải tất cả. Trang này cho biết cụ thể là gì, trước khi bạn cài đặt bất cứ thứ gì.
Bạn có đang gặp một trong những trường hợp này?
Ổ đĩa bị hỏng
Máy phát triển đã hỏng, nhưng tệp EXE vẫn đang chạy ở chỗ người dùng.
Lập trình viên đã nghỉ
Người đó mang dự án đi, hoặc không ai biết đã lưu ở đâu.
Nhà cung cấp đã biến mất
Công ty viết ứng dụng không còn tồn tại, và mã nguồn chưa bao giờ được bàn giao.
Bản sao lưu quá cũ
Mã nguồn tìm được không còn khớp với phiên bản đang chạy thực tế.
Bạn cần gì
Chỉ cần tệp đã biên dịch: một tệp .exe, .dll, .ocx hoặc .scr do Visual Basic 5 hoặc 6 tạo ra. Không cần gì khác. Bạn không cần biết tệp được biên dịch sang P-Code hay mã gốc: VBReFormer tự nhận biết và xử lý cả hai.
- Dịch ngược P-Code, VB5 và VB6
- Dịch ngược mã gốc x86, VB5 và VB6
- Tệp nhị phân nén bằng UPX: giải nén mà không chạy
- Tiếp theo là ASPack, MPRESS và PECompact Sắp ra mắt
Những gì lấy lại được
Form và các điều khiển, với đầy đủ thuộc tính, kể cả hình ảnh: trọn vẹn, trong mọi trường hợp.
Tài nguyên, chuỗi, tham chiếu đến thư viện và điều khiển bên thứ ba, cấu trúc dự án: một tệp .vbp mở lại được trong IDE.
Mã của các thủ tục: điều kiện, vòng lặp, lời gọi, phép gán, truy cập điều khiển, được dựng lại thành Visual Basic dễ đọc, cả P-Code lẫn native. Trang độ bao phủ đo lường điều đó cụ thể ra sao, theo từng chương trình.
80%
dự án biên dịch lại trong VB6 mà không cần sửa
1.158 / 1.164
lệnh P-Code đã định nghĩa được dịch sang Visual Basic
100%
biểu mẫu và thuộc tính được khôi phục trong mọi trường hợp
Những gì không bao giờ lấy lại được, với chúng tôi hay với bất kỳ ai: tên biến cục bộ và chú thích, vì trình biên dịch không giữ lại chúng. Mã khôi phục đọc được và biên dịch lại được; nhưng không trùng khớp từng chữ với bản gốc.
SETUP1.EXE
Ai cũng kiểm chứng được: SETUP1.EXE
Một chương trình của Microsoft có mã nguồn đi kèm VB6: ai cũng có thể so sánh.
136 → 227
thủ tục được xuất, từ thế hệ 1 sang V7
22 / 24
thủ tục được chọn ngẫu nhiên và đối chiếu với nguồn: V7 trung thực hơn
Khi đã lấy lại dự án
Nó trở lại là một dự án bình thường: bạn mở, đọc và bảo trì nó trong IDE gốc.
- Sửa lỗi hoặc điều chỉnh quy tắc nghiệp vụ, rồi biên dịch lại
- Đọc mã máy bằng trình dịch ngược x86 và P-Code, có trong bản Standard
- Theo dõi chương trình từ đầu đến cuối bằng đồ thị lời gọi và tham chiếu chéo, trong bản Professional
- Lập tài liệu cho một ứng dụng không còn ai nắm toàn bộ
Cách tiến hành, miễn phí trước
- 1
Mở tệp nhị phân trong phiên bản miễn phí, hoặc thả vào studio trực tuyến mà không cần cài đặt gì. Bạn thấy cấu trúc dự án, các form đầy đủ và bản xem trước mã đã dịch ngược.
- 2
Đánh giá dựa trên bằng chứng: bản xem trước cho thấy những gì engine dựng lại từ tệp nhị phân của bạn, không phải từ một mẫu. Nếu những gì bạn thấy xứng đáng với giấy phép, hãy mua; nếu không, bạn chưa mất gì cả.
- 3
Với giấy phép, hãy xuất toàn bộ dự án và mở lại trong Visual Basic 6: khoảng 80% dự án biên dịch lại được mà không cần sửa. Giá trị mà tệp nhị phân không cho phép xác định sẽ trở thành lời gọi VBRF_ValeurInconnue(), dễ tìm lại bằng tìm kiếm.
Bài viết chi tiết: phân biệt P-Code với native, và bắt đầu từ đâu
Chi phí
Dùng thử hoàn toàn miễn phí. Bạn chỉ trả tiền nếu kết quả trên chính tệp nhị phân của mình xứng đáng.
Bản miễn phí
Biểu mẫu đầy đủ, cấu trúc dự án và bản xem trước mã
0 €
Standard
Lấy lại mã nguồn của bạn
79 € mỗi người dùng
Professional
Standard, cộng các công cụ phân tích
229 € mỗi người dùng
Câu hỏi thường gặp
P-Code và Native Code khác nhau thế nào?
VB6 biên dịch hoặc sang P-Code (mã giả do máy ảo thực thi) hoặc sang Native Code (lệnh máy x86, thiết lập mặc định). Từ thế hệ 2 (VBReFormer 7), cùng một engine dịch ngược cả hai thành mã Visual Basic dễ đọc: 1.158 trong số 1.164 lệnh P-Code được định nghĩa đã được dịch, một số liệu được công bố trên trang độ bao phủ. Thế hệ trước chỉ tái tạo Native Code.
Những gì được khôi phục từ một tệp thực thi, và những gì mất đi vĩnh viễn?
Bất cứ thứ gì Visual Basic cần khi chạy đều nằm trong tệp và được khôi phục: tên form, lớp, mô-đun và điều khiển, trình xử lý sự kiện, thành viên công khai của lớp, thuộc tính giao diện, lời gọi runtime, khai báo API. Những gì trình biên dịch đã loại bỏ thì không công cụ nào khôi phục được: chú thích, tên biến cục bộ và tham số, hằng số có tên bị thay bằng giá trị của chúng, và tên các thủ tục trong mô-đun .bas. Trung bình, 90% mã nguồn được khôi phục; phần còn thiếu chính là những yếu tố đó, vốn không có trong tệp.
Mã đã dịch ngược có biên dịch lại được trong IDE Visual Basic 6 không?
Có: trên thực tế, khoảng 80% dự án biên dịch lại được mà không cần sửa. Bản xuất ghi các phần đầu mà IDE yêu cầu (VERSION, Attribute VB_Name), thiếu chúng VB6 sẽ từ chối tệp. Một giá trị không xác định được sẽ không bao giờ bị bịa ra: nó trở thành lời gọi VBRF_ValeurInconnue(), được VB6 chấp nhận và có thể tìm thấy bằng tìm kiếm. Những gì không có trong tệp nhị phân được nêu tên và giải thích trong ghi chú xuất.
Nếu việc dịch ngược không hoạt động trên tệp nhị phân của tôi thì sao?
Đó chính là mục đích của phiên bản miễn phí: nó cho bạn thấy, trên CHÍNH tệp của bạn và trước khi mua, những gì có thể trích xuất được – form, tài nguyên, cấu trúc dự án. Chúng tôi luôn khuyên bạn dùng thử trước. Vì giấy phép là nội dung kỹ thuật số được giao ngay lập tức, mọi giao dịch bán là cuối cùng; nếu bạn gặp sự cố kỹ thuật, bộ phận hỗ trợ của chúng tôi sẽ cùng bạn tìm giải pháp.
Tệp của tôi có được lưu giữ không?
Tệp nhị phân của bạn không được lưu giữ: được phân tích rồi xóa cùng phiên
Dịch ngược một chương trình có hợp pháp không?
Có, khi bạn sở hữu quyền đối với phần mềm – trường hợp điển hình là tái tạo mã nguồn bị mất của chính bạn – hoặc trong khuôn khổ pháp lý về khả năng tương tác. Bạn phải nắm giữ các quyền cần thiết đối với chương trình được phân tích.
VBReFormer có dịch ngược .NET, VB.NET hay C# không?
Không. VBReFormer xử lý Visual Basic 5 và 6: .exe, .dll, .ocx và .scr. Một assembly .NET cần một trình dịch ngược .NET; chúng tôi so sánh một số công cụ trên blog.
Bạn muốn chúng tôi làm thay cho bạn?
Chúng tôi khôi phục dự án từ tệp nhị phân của bạn, mở lại trong IDE và bàn giao ở trạng thái sẵn sàng bảo trì, kèm báo cáo về những gì đã tìm thấy. Đánh giá tệp nhị phân miễn phí trước mọi báo giá.
Yêu cầu đánh giá miễn phí
