tinh152003

New Member
Giới thiệu về vnReactor.


A. Giới thiệu

Để mã hóa - chống dịch ngược các ứng dụng viết trên nền NetFX, bạn có thể sử dụng SmartAssembly, .NET Reactor, ...

vnReactor là công cụ như vậy.


vnReactor (vnR) viết dựa trên nguyên mẫu .NET Reactor (NR, phiên bản 4.9) của Eziriz, được bổ xung các chức năng khác. vnReactor tách riêng thư viện (ionic/skin), không trộn (un-merge) vào chương trình chính, tối ưu code.

vnR nhỏ hơn (, nhanh hơn) so với NR. Hiện nay, viết một chương trình nhỏ, chạy nhanh không còn được ưu tiên; máy tính ngày càng mạnh và nhanh hơn trước nhiều.


Có chương trình nào là hoàn hảo, có hệ thống bảo vệ nào là tuyệt đối ? Nó giúp bạn ít nhiều về thời gian, công sức lo nghĩ về cách thức bảo vệ sản phẩm.

Cũng như bạn, tui cần chương trình biên dịch sơ cấp (C++, C#, ...) để dịch và cần chương trình biên dịch thứ cấp (SA, NR, ...) để bảo vệ code tốt hơn.

(1a) Source ====> BdSc ====> Exec

(2a) Exec ====> deAsm ====> Source


(1b) Exec ====> BdTc ===> CryptExec

(2b) CryptExec ====> deAsm ====X Source

//không kết quả, hay sinh kết quả sai.


vnR viết bằng C#, chạy trên Windows XP hay mới hơn, có NetFX 4.0.

Với phiên bản định giá, chưa đăng ký, thay vì xuất thông báo, ở các sản phẩm của nó xuất ra, khi xử dụng; vnR thay đổi thông tin version, icon hiện thị trong Windows Explorer.


Người ta thường nói : " mua của ai cũng vậy, mua của tôi, tui cám ơn". tui cần sự hợp tác, cần chi phí để phát triển, để đáp ứng được nhu cầu của bạn.


Thân.

Văn Hiền (ĐT : 0906.83.71.25, email : [email protected])

============

PS:

tui viết vnR với mục đích nghiên cứu kỹ thuật mã - giải mã. Hướng tới việc bảo vệ code tui viết, cũng như code bạn viết, tốt hơn, có thêm thời gian để làm ra sản phẩm tốt hơn trong phiên bản mới - trước khi c-r-a-c-k_er / h-a-c-k_er tìm ra được những gì chúng ta cần bảo vệ trong sản phẩm đã phát hành. Đây là cuộc chiến tranh tốt đẹp, thúc đẩy nhà sản xuất luôn phải hoàn thiện sản phẩm của họ, có lợi cho người dùng, cho cộng đồng.


tui viết vnR không nhằm sao chép, hay phục chế NR. tui tin rằng vnR có thể bị giải mã - như tui đã giải mã NR. Vấn đề ở chỗ :

- thời gian là bao lâu, như đã nói, có nhanh hơn thời gian một phiên bản tốt hơn được lưu hành.

- dành thời gian cho sản phẩm mới, giải thuật mới, kỹ thuật mới HAY dành thời gian cho sản phẩm đã phát hành. Tạo ra những phiên bản mới ít hướng tới người dùng mà chủ trọng bảo vệ giải thuật, kỹ thuật cũ bằng ngôn ngữ thấp hơn.


Cũng như bạn, tui có thể viết lại một chương trình - ví dụ vnR - bằng MsIL, bằng C, ... Công sức, thời gian viết và biên dịch chương trình không hiệu quả bằng dùng ngôn ngữ lập trình ứng dụng nhanh(rap) như VB, C#, rồi sử dụng công cụ mã hóa để biên dịch lại.


Ý tưởng dung lỗi được áp dụng : ứng dụng tạo ra có khả năng chống lại những sự tấn công, bị thay đổi. Chưa đúng, có sai - dung lỗi - vùng mờ này là môi trường bảo vệ tốt. Ai ai cũng đi qua ma trận được ? Vùng mờ này không là rào cản với chủ nhân nó, cũng như những gì mà nó bảo vệ.

Mã hóa luôn đi trước. Viết hay sử dụng công cụ mã hóa không khó bằng viết hay sử dụng công cụ giải mã. Họ dùng thuật toán nào, đặt ở đâu trong hàng chục ngàn dòng code! Ước mơ về kho báu thời niên thiếu thật đẹp. Tìm, thấy, lấy được rồi làm chủ nó gợi nhớ đến truyện "Đảo châu báu".


Quỹ thời gian còn lại có hạn, áp lực về thị trường, sự cạnh tranh của nhà sản xuất khác, chúng ta không thể tự làm tất cả! Ngược lại, người dùng tự viết chương trình cho họ dùng thì bạn và tui trở thành người thừa trong cộng đồng đang sống. Hy vọng sản phẩm của tui có ích cho bạn, đáp ứng được yêu cầu của bạn.


tui sẵn sàng hợp tác, trao đổi về lĩnh vực này : kỹ thuật mã - giải mã, bảo vệ code mà tui theo đuổi từ bấy lâu nay.


B. Link download

vnReactor_setup.exe


vnReactor.7z



C. Sử dụng

Sau khi tải về, bạn cài đặt (vnReactor_setup.exe) / xả nén (vnReactor.7z) hay copy vnR từ một PC khác.

vnReactor.exe là chương trình chính (main assembly). Nó có 2 chế độ hoạt động :

- dòng lệnh (batch mode) - xem help/exam trong sub-folder của vnR

- giao tiếp đồ họa (GUI mode)


Sau khi mở (launch), vnR sẵn sàng cho việc tạo mới / mở một dự án đã có. Để tạo mới một project, bạn kéo thả (drag-drop) netExec file (exe/dll/xap) vào comboBox "Main Assembly" hay tìm duyệt (click button "Open"). Khi netExec file có các file phụ thuộc (references) bạn cho scan/add/remove để merge/embed vào kết quả.


Bạn thay đổi tùy chọn cơ bản ở "Quick Settings" : Anti IlDasm, Obfucation, Encryption, Compress, CFO, Native EXE, ... và chi tiết ở tabPage "Settings" : Target File, unPrintable chars, Strong name, Digital certificate, ...

Để biên dịch / kiểm tra, bạn click link "Protect" bên trái trong group Tasks. Tiến trình biên dịch được báo cáo trong tabPage "Protection", phụ thuộc vào những thiết lập đã chọn. Sau khi biên dịch xong button "Browse Folder" hiện ra để mở thư mục chứa kết quả.


Bạn lưu lại / lưu khác (save as) nếu cần.


Đến thời điểm này, Ms IL Disassembler, Reflector, de4dot, ILSpy, ... đều không xem / dịch ngược được kết quả mà vnR/NR sinh ra.


Như trên đã nói, vnR viết dựa trên NET Reactor v4.9.7, các chức năng / hoạt động được giữ lại như nguyên mẫu.

- Phần giao diện, các dialog : trợ giúp ngữ cảnh (Giúp button) được kích hoạt

- Salt code được loại bỏ

- Bổ xung các chức năng khác


Các chức năng khác trong menu, trong các dialog, trong propertyGrid vui lòng xem Giúp hay trao đổi trực tiếp qua email / ĐT


Trong phiên bản này (Community Edition), tui có giới hạn một số chức năng nâng cao. Bạn có nhu cầu về bản đầy đủ (Commercial Edition) hay yêu cầu khác, liên lạc với tui qua số ĐT : 0906.83.71.25 / email : [email protected]


Văn Hiền


tui có viết đề tài này ở ddth - Công nghệ dịch ngược và kỹ thuật bảo vệ code - Cuộc chiến tranh hiện đại



//========

Nhận viết và dịch chương trình NetFx
 

Các chủ đề có liên quan khác

Top