Đăng ký và sử dụng Tool

tuhocvba

Administrator
Thành viên BQT
Theo những gì thảo luận trên diễn đàn, các bạn đều đồng ý rằng DLL VB6 là khó dịch ngược.
Ngoài ra ở topic (Dự kiến công khai vào ngày 28/10/2021), điều này cho phép chúng ta nghĩ tới việc yêu cầu đăng ký sử dụng Tool, do thuật toán có thể cho vô DLL VB6, là nơi khó bị bẻ.

Bước 1 :
Đọc HDD serinumber :
Mã:
Sub test()
    Dim s As String
    s = GetHDD()
    ThisWorkbook.Sheets(1).Cells(1, 1).Value = s
End Sub
Function GetHDD() As String
    Dim Wmi As Object, Disks As Object, Disk As Object
    Set Wmi = GetObject("winmgmts:{impersonationLevel" & "=impersonate}!root\cimv2")
    Set Disks = Wmi.ExecQuery("Select * from Win32_DiskDrive")
    For Each Disk In Disks
    If Len(Disk.SerialNumber) > Len(GetSerialNumber) Then GetSerialNumber = Disk.SerialNumber
    Next
    Set Disk = Nothing
    Set Disks = Nothing
    Set Wmi = Nothing
GetHDD = GetSerialNumber
End Function
Tham khảo :
Mã:
https://stackoverflow.com/questions/64293004/protect-excel-of-the-method-vba-hard-drive-serial-number
Lấy được HDD serinumber, ta sẽ cho nó tìm trên file excel được cất trên google driver xem số HDD serinumber này có xuất hiện trên đó không. Nếu không có thì việc đăng ký sử dụng Tool coi như thất bại.
Nếu tồn tại, sẽ cho tiến hành đăng ký sử dụng Tool.
(Ở bước này nhất thiết yêu cầu người dùng phải có kết nối internet)

Bước 2:
Nếu hư cái số HDD serinumber này mà để lộ liễu,, thì chẳng khác nào bảo người ta, anh chỉ cần can thiệp chèn vô đó ký tự serinumber của anh vào.
Vì vậy cái số này nhất định phải được biến đổi thành một ký tự khác, khó suy luận được ra.

Function mã_hóa:
INPUT: HDD Serinumber
OUTPUT: code_mã_hóa
(Đây là bước quan trọng, có rất nhiều thuật toán để mã hóa chuỗi ký tự).

Bước 3:
Tạo ra file txt công khai mã hóa này, cất cùng thư mục Tool.
Bạn cần đăng nhập để thấy đính kèm

Trên đây là ý tưởng, tôi sẽ hiện thực hóa từng bước trong topic này.
(Còn nữa)
 
  • Like
Reactions: CRV

PTHhn

Yêu THVBA như điếu đổ
Theo tôi quy trình trên cần xem lại.
Ví dụ:
Người dùng muốn dùng tool, anh ta chuyển tiền cho tác giả.
Tiếp theo: Tác giả phải cập nhật HDD ID lên google driver.

Người dùng có khả năng thay thế đường link google drive của tác giả thành đường link google drive trỏ về file của anh ta.
Vì vậy một là sử dụng nhiều link giả như Tào Tháo cho đào mộ giả.
Hoặc quy trình như sau:

Người dùng gửi tiền cho tác giả kèm thông tin HDD ID.
Tác giả nhận HDD ID và thực hiện mã hóa trên máy tính của tác giả, tạo ra file mã hóa công khai, chuyển cho người sử dụng.
Người sử dụng copy file này vào thư mục Tool để chạy.
 
O

OnceMore

Guest
Muốn biết Ok không thì Mình test ở đây trước cho chắc chắn !
 

Euler

Administrator
Thành viên BQT
Từ bao giờ mà bà @hongphuong quan tâm tới bảo mật thế.
Có biết Smod là ai không, nick đình đám trên diễn đàn thay tên đổi họ đó. :cool:
 

hongphuong

Tôi yêu THVBA
"Có biết Smod là ai không, nick đình đám trên diễn đàn thay tên đổi họ đó. :cool:"
@Euler anh oi
Hi hi..... không phải em đâu anh oi.
 

giaiphapvba

Administrator
Thành viên BQT
Mã hóa sử dụng thuật toán phức tạp một chút.
Chẳng hạn từ chuỗi HDD Seribumber chuyển các ký tự chữ cái hay chữ số trong chuỗi này về mã accii. Mã accii này chuyển thành nhị phân hoặc hex.
Hàm mã hóa sử dụng thuật toán mã vòng. Đây là thuật toán phức tạp có nhiều biến thể chuyên dùng xử lý tín hiệu chống nhiễu.
Có nghĩa là output không ra một số cụ thể để so sánh. Ứng với mỗi input sẽ có một output khác nhau. output này phải đúng với logic mã hóa.
Kết quả tính toán này không nên làm căn cứ để cho chạy chương trình hay không, mà nếu kết quả đúng thì chạy thủ tục 1 , thủ tục 2, thủ tục 3,...
Nếu kết quả sai thì chạy thủ tục 1, thủ tục 3 (bỏ qua thủ tục 2).

Kết quả tính toán sau cùng có thể sai so với kỳ vọng phụ thuộc vào tính toán logic ở trên. Làm như vậy thì người đi bẻ sẽ khó có căn cứ biết họ bẻ thành công hay không. Vì code vẫn chạy.
Việc code đưa ra kết quả không ra kỳ vọng, thường người dùng sẽ liên hệ tác giả tool để phản hồi. Nhưng người phải có tư cách như thế nào mới có thể liên hệ tác giả tool để phản hồi. Anh không liên hệ mua bán giao dịch gì, thì sao có thể liên hệ để hỏi tại sao tool ra kết quả mà tôi thấy sai sai...
 

X-Pro

Yêu THVBA
Theo những gì thảo luận trên diễn đàn, các bạn đều đồng ý rằng DLL VB6 là khó dịch ngược.
Ngoài ra ở topic (Dự kiến công khai vào ngày 28/10/2021), điều này cho phép chúng ta nghĩ tới việc yêu cầu đăng ký sử dụng Tool, do thuật toán có thể cho vô DLL VB6, là nơi khó bị bẻ.

Bước 1 :
Đọc HDD serinumber :
Mã:
Sub test()
    Dim s As String
    s = GetHDD()
    ThisWorkbook.Sheets(1).Cells(1, 1).Value = s
End Sub
Function GetHDD() As String
    Dim Wmi As Object, Disks As Object, Disk As Object
    Set Wmi = GetObject("winmgmts:{impersonationLevel" & "=impersonate}!root\cimv2")
    Set Disks = Wmi.ExecQuery("Select * from Win32_DiskDrive")
    For Each Disk In Disks
    If Len(Disk.SerialNumber) > Len(GetSerialNumber) Then GetSerialNumber = Disk.SerialNumber
    Next
    Set Disk = Nothing
    Set Disks = Nothing
    Set Wmi = Nothing
GetHDD = GetSerialNumber
End Function
Tham khảo :
Mã:
https://stackoverflow.com/questions/64293004/protect-excel-of-the-method-vba-hard-drive-serial-number
Lấy được HDD serinumber, ta sẽ cho nó tìm trên file excel được cất trên google driver xem số HDD serinumber này có xuất hiện trên đó không. Nếu không có thì việc đăng ký sử dụng Tool coi như thất bại.
Nếu tồn tại, sẽ cho tiến hành đăng ký sử dụng Tool.
(Ở bước này nhất thiết yêu cầu người dùng phải có kết nối internet)

Bước 2:
Nếu hư cái số HDD serinumber này mà để lộ liễu,, thì chẳng khác nào bảo người ta, anh chỉ cần can thiệp chèn vô đó ký tự serinumber của anh vào.
Vì vậy cái số này nhất định phải được biến đổi thành một ký tự khác, khó suy luận được ra.

Function mã_hóa:
INPUT: HDD Serinumber
OUTPUT: code_mã_hóa
(Đây là bước quan trọng, có rất nhiều thuật toán để mã hóa chuỗi ký tự).

Bước 3:
Tạo ra file txt công khai mã hóa này, cất cùng thư mục Tool.
Bạn cần đăng nhập để thấy đính kèm

Trên đây là ý tưởng, tôi sẽ hiện thực hóa từng bước trong topic này.
(Còn nữa)
Tìm hiểu, học tập, nghiên cứu, phát triển, bảo vệ chất xám, bảo vệ bản quyền tác giả là một nhu cầu chính đáng.
Mình học văn bằng 1 là ngành Công nghệ thông tin.
Sau 5 năm đi làm, mình may mắn tiếp tục đi học văn bằng 2 ngành kế toán.
Cách đây 20 năm mình sử dụng khá thành thạo ngôn ngữ VB trong bộ Visual Studio 6.
Sau đó mình chuyển qua C++, Java (Jave applet), rồi mình lại chuyển qua VB.Net, C#.Net.
Mình cũng dấu các vấn đề quan trọng bằng cách lưu vào trong các file .dll
Vấn đề bản quyền và mã hóa công khai, hồi đó rất ít người có nhu cầu, chủ yếu là người lập trình để bảo vệ công sức, chất xám của mình.
Khoảng những năm 2007, 2008 mình cũng vô tình nghĩ ra vấn đề mã hóa công khai này, cũng xuất phát bởi nhu cầu bảo vệ bản quyền phần mềm của mình.
Tuy nhiên về sau này mình cũng đành buông xuôi, bỏ mặc vấn đề này.
Sau này mình tập trung làm sao tìm hiểu, khám phá, học tập càng nhiều thứ hơn (thủ thuật), áp dụng nhanh vào nhu cầu, giải quyết công việc.
Mình không còn nặng nhẹ chuyện bản quyền nữa.
Cách đây gần 26 năm, khi đó mình là sinh viên, mình có nói chuyện với thầy Nguyễn Nam Hải.
Mình nhớ mang máng khi đó thầy là trưởng khoa công nghệ thông tin Đại học bách khoa Hà Nội.
Thầy khuyên mình:
"Em đừng quá đặt nặng về kỹ thuật, đừng mất nhiều thời gian về nó;
Em hãy tìm hiểu xem nhu cầu của người dùng nhiều nhất là gì?
Em hãy tập thói quen tìm hiểu, làm sao đưa ra giải pháp giải quyết, đáp ứng nhu cầu người dùng số đông nhanh nhất, rẻ nhất.
Khi đó em sẽ là người chiến thắng, em mới là người thành công.
Em đừng cố giải quyết những vấn đề hóc búa, khó và phức tạp một mình, để rồi sung sướng khoái chí một mình khi giải quyết được vấn đề.
Còn vợ con và người nhà em thì khổ, họ cần tiền để sống chứ không phải là những tờ giấy khen, bằng khen em nhận được.
Em hãy học cách người Trung Quốc giải quyết vấn đề."
Mình nhớ mang máng đại ý của thầy là như vậy, nhưng mình bỏ ngoài tai.
Sau nay này mình mới cảm nhận thầy nói đúng, và cũng đã muộn.
Mình chúc admin và các bạn thành viên nhiều sức khỏe, hạnh phúc và thành công trong công việc.
Trân trọng.
 
Sửa lần cuối:
Top