Chuyển đến nội dung
Diễn đàn CADViet
DuongTrungHuy

Bản quyền VLX

Các bài được khuyến nghị

Cũng có gì nà oai đâu bác.Việc làm key là công việc thầm lặng mà ^^

Bác thử nghiên cứu qua ví dụ này xem sao nhé

Lấy Model + Serial ổ cứng.Chú ý là mã này do nhà cung cấp đóng dấu,format kiểu j thì cũng thế.

Nhược điểm là có 1 số ít máy trả về giá trị 0 ^^

 

SerialNumber

Example: WD-WM3493798728

Windows Server 2003, Windows XP, Windows 2000, and Windows NT 4.0:  This property is not available

Cái real serial này chỉ có tác dụng trên w7 trở lên thôi mấy bác ạ. Cách tôi hay dùng là lấy MAC adress, nhưng cũng nhiều phiền phức lắm.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Có lẽ k phải bạn ạ,vì có khá nhiều khuyến cáo là nó chỉ chạy tốt trên win XP và k làm việc với SATA,nhưng mình thấy vẫn dùng được ^^

P/S : máy mình đang dùng Vista thôi,và VBA mình vẫn lấy theo mã này :D

Còn MAC address, ý bạn có phải giống như là

(Defun abc
      (/ LocatorObj ServiceObj ObjectSetObj OutList)
 (Setq LocatorObj (vlax-create-object "WbemScripting.SWbemLocator"))
 (Setq ServiceObj
   (Vlax-invoke
     LocatorObj 'ConnectServer nil nil nil nil nil nil nil nil)
 )
 (Setq ObjectSetObj
   (Vlax-invoke
     ServiceObj
     'ExecQuery
     "SELECT MACAddress FROM Win32_NetworkAdapter"
   )
 )
 (Vlax-for Obj ObjectSetObj
   (Setq OutList (cons (vlax-get Obj 'MACAddress) OutList))
 )
 (Foreach Obj (list LocatorObj ServiceObj ObjectSetObj)
   (And Obj (vlax-release-object Obj))
 )
 (Vl-remove nil OutList)
)

(defun c:MACADD()
(abc)
)

 

P/S : mấy bác Nga ngố gớm thật,cái j cũng biết ^^

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Cũng có gì nà oai đâu bác.Việc làm key là công việc thầm lặng mà ^^

Cám ơn Bạn Ketxu!

Mình đã tìm được cái Mình cần.

Một lần nữa cám ơn....

Chúc Bạn có 1 mùa Xuân vui vẻ!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Cũng có gì nà oai đâu bác.Việc làm key là công việc thầm lặng mà ^^

Bác thử nghiên cứu qua ví dụ này xem sao nhé


 (defun getHDD (/   where Dowhat ModelObject  SerialObject  Model Serial)
 (setq where (vlax-create-object "WbemScripting.SWbemLocator"))
 (setq   Dowhat
   (vlax-invoke
     where 'ConnectServer nil nil nil nil nil nil nil nil)
  )
 (setq   ModelObject (vlax-invoke
        Dowhat
        'ExecQuery
        "Select * from Win32_DiskDrive"
           )
  SerialObject (vlax-invoke
        Dowhat
        'ExecQuery
        "Select * from Win32_PhysicalMedia"
           )
 )
 (vlax-for Obj   ModelObject
   (setq Model (cons (vlax-get Obj 'Model) Model))
 )
 (vlax-for Obj   SerialObject
   (setq Serial (cons (vlax-get Obj 'SerialNumber) Serial))
 )
 (setq 
Model (vl-remove nil Model);1 
Serial (vl-remove nil Serial) ;2  
)   
)
(defun c:test()
(gethdd)
)

Cảm ơn bạn ketxu đã chia sẻ. Cho mình hỏi thêm là muốn Lấy Model + Serial của USB thì làm sao?

Hàm DiskDriveSerial có thể lấy Serial của USB, nhưng khi format USB thì số bị thay đổi liền

Một câu hỏi thêm nữa mà Tue_NV còn thắc mắc là Có hàm Lisp nào xử lý việc máy tính nhận được USB hay không?

Tức là : Khi cắm USB vào thì hàm trả về T, còn rút USB ra thì hàm trả về giá trị NIL

Liệu có hàm Lisp nào như vậy và hàm Lisp lấy Model + Serial của USB không nhỉ?

 

Lệnh MCADD cho ra 1 List gồm các phần tử String là có nghĩa gì vậy?

("00:80:AD:89:96:98" "00:80:AD:89:96:98" "6A:72:20:52:41:53"

"33:50:6F:45:30:30" "50:50:54:50:30:30")

Bạn Ketxu có thể giải thích dùm Tue_NV được không?

Thanks

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

@Bác Tuệ : Như đã PS ở trên, thực chất code trên là lấy cảu các bác Nga ngố về, em cũng chưa hiểu hết vì nó còn rất nhiều vấn đề, và với tuổi nghề của e thì...^^

Nhưng em nghĩ các vấn đề này hoàn toàn có thể giải quyết

Bác xem đoạn code dưới này và kiểm tra khi cắm USB vào nhé

 

(defun c:test () //ret serx lccon item lox objw
(vl-load-com)
(setq serx '())
(if (SETQ OBJW (VLAX-CREATE-OBJECT "wbemScripting.SwbemLocator"))
(progn
(SETQ lccon (VLAX-INVOKE
OBJW 'ConnectServer "."
"\\root\\cimv2" "" ""
"" "" 128 nil))
(setq lox (vlax-invoke
lccon
'ExecQuery
"Select SerialNumber,Tag from Win32_PhysicalMedia"))
(vlax-for item lox
(setq serx (cons (list (vlax-get item 'Tag)
(vlax-get item 'SerialNumber))
serx)))
(vlax-release-object lox)
(vlax-release-object lccon)
(vlax-release-object objW)))
(reverse serx))  

- Vấn đề của lisp này là làm sao biết USB của bác là PHYSICALDRIVE mấy trong chuỗi trả về ^^ ( sau khi hết ổ cứng nó sẽ sang USB -> CDR),nhưng để test đúng USB thì chỉ cần kiểm tra chuỗi SN có tồn tại trong kq k là được,đúng hok bác ^^

 

- Về MACADD thì e cũng hok bít nói thế nào :D Vì nó cũng là 1 dãy số đặc hiệu giống như Serial do NSX gắn vào card mạng,ý nghĩa của chúng nó ra sao thì...e k biết tại sao nữa..^^

 

- Cả mấy lisp trên đều làm việc với phương thức truy vấn cơ sở dữ liệu của máy qua các lớp Windows Management Instrumentation (WMI),trong mỗi lớp lại có vô số thuộc tính miêu tả thông tin đối tượng.2 cái trên mới dùng chủ yếu class Win32_PhysicalMedia

'ExecQuery
"Select SerialNumber,Tag from Win32_PhysicalMedia"

Số lượng chúng cũng tương đối đồ sộ,nhưng chắc chắn có cái bác cần ^^ Lúc nào rảnh bác ghé vào anh MSDN để xem các lớp và thông tin trong nó.E thì chưa đủ trình nhưng các bác thì e tin là sẽ ra thôi ^^

 

WMI class

 

Chúc bác thành công và cho e ké giùm ^^

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Có vẻ việc giữ bản quyền khiến mọi người đau đầu quá nhỉ. Nhưng tựu chung lại thì nếu lấy đc code nguồn thì vẫn bị bẻ khóa bình thường, vì thế vấn đề viết code và mã hóa code như thế nào để không thể dịch ngược, hoặc có dịch được cũng rơi vào tình trạng không thể đọc hiểu được code mới là điều quan trọng nhất.

Hiện tại mình mới biết có 4 cách mã hóa

- Mã hóa bằng thuật toán cổ xưa nhất mà loài người từng sử dụng: thay thế ký tự kiểu: tao mà hô "bài đẹp quá không biết oánh con " nghĩa là tao có 2 con J. Kiểu này một số bác ở cadviet trước từng sử dụng, đối tượng mã hóa là các biến và hàm tự định nghĩa trong code để làm cho thằng cracker hoa mắt chóng mặt khi đọc. Để thêm phần chắc ăn thì thường kết hợp cách này với 1 trong 2 cách dưới đây.

- Mã hóa bằng PROTECT tool. kiểu này đã từng khá thành công nhưng đến giờ là đồ bỏ vì đã có tool dịch ngược hoàn toàn.

- Mã hóa bằng các công cụ của Vlide để tạo ra file định dạng FAS hoặc VLX. đã có công cụ dịch ngược nhưng không fải hoàn toàn, tuy nhiên đọc vẫn hiểu. Vài bác quăng boom bẩu có sở hữu những công cụ khác đặc hiệu cho 2 định dạng này, có thể dịch đc 100%. mình chưa biết thực hư thế nào.

- Có 1 công cụ mã hóa khác nữa mà trước đây google mách cho mình (mình quên tên nó mất rồi). Cũng mã hóa 1 file LSP ra 1 file LSP (dung lượng file mới nhẹ hơn) giống như PROTECT tool. hăm hăm hở hở áp sản phẩm vào thì lại không chạy. bó tay

Ngoài ra một số công ty họ cũng tự xây dựng công cụ mã hóa và giải mã riêng cho mình bằng loại ngôn ngữ khác có tính bảo mật cao hơn nhưng chỉ lưu hành nội bộ.

Nếu các bác còn biết công cụ mã hóa nào khác thì bổ xung thêm để mình nghía qua tý :D

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Có lẽ k phải bạn ạ,vì có khá nhiều khuyến cáo là nó chỉ chạy tốt trên win XP và k làm việc với SATA,nhưng mình thấy vẫn dùng được ^^

P/S : máy mình đang dùng Vista thôi,và VBA mình vẫn lấy theo mã này :D

Còn MAC address, ý bạn có phải giống như là

P/S : mấy bác Nga ngố gớm thật,cái j cũng biết ^^

 

Chào mấy bác, mình có mấy ý kiến:

 

HDD seriallno : Serialno của nhà sản xuất, cái này có vẻ thông dụng, nhưng rất tiếc chỉ chạy tốt trên W7 (Hoặc đối với VB). Trên XP thì tịt.

Disk serialno : Volume serialno, cái này người dùng dễ dàng set lại, hoặc khi định dạng sẽ bị thay đổi

MAC ADD: Chỉ hữu trên mấy đơn, các máy nối mạng hoặc có nhiều thiết bị adapter Network thì nó sẽ cho ra một đống, và thay đổi tuỳ theo cấu hình kết nối, lúc này mấy bác phải dưạ vào product name để lựa ra cái card chuẩn. Nhưng cuộc chơi cũng lắm công phu, vì mỗi nhà sản xuất card mạng có mỗi caí productname khác nhau. Hic.

Chip ID, BIOS ID, MB ID: Chỉ đọc được với hàng Intel hay tương tự, đồ của Bác Hồ Cẩm Đào thì cái được cái không.

 

=> vấn đề bản quyền vlx (hay phần mềm ở Việt Nam nói chung): Thôi!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
=> vấn đề bản quyền vlx (hay phần mềm ở Việt Nam nói chung): Thôi!

Chào các Bạn.

Có lẽ Bạn Noob_Lisp nói đúng đó. Chúng ta đã đi quá xa.

Cám ơn các Bạn nhiều, các Bạn để sức :D để giúp các Bạn khác nhé!

Xin cảm ơn tất cả....

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Chào các Bạn.

Có lẽ Bạn Noob_Lisp nói đúng đó. Chúng ta đã đi quá xa.

Cám ơn các Bạn nhiều, các Bạn để sức :D để giúp các Bạn khác nhé!

Xin cảm ơn tất cả....

Em nghĩ là không đi quá xa đâu bác ạ

Cả 1 khu rừng kiến thức đồ sộ đang thách thức việc học hỏi

Cảm ơn bạn ketxu nhiều lắm.

Mình đang lần mò ở trong này.

Nhiều thứ lắm, cần phải có thời gian để tìm hiểu mới làm chủ nó được

Thanks

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Lại bàn về vấn đề bảo mật, theo mình thì nếu để chống Ghost bạn cho số lần sử dụng nhỏ xuống, nếu ko có liscence thì chỉ chạy được mấy lần chẳng hạn, ko lẽ ngày nào cũng bung ghost :D

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Em nghĩ là không đi quá xa đâu bác ạ

Cả 1 khu rừng kiến thức đồ sộ đang thách thức việc học hỏi

Cảm ơn bạn ketxu nhiều lắm.

Mình đang lần mò ở trong này.

Nhiều thứ lắm, cần phải có thời gian để tìm hiểu mới làm chủ nó được

Thanks

Đồng ý cả hai tay với bác, em đọc mấy lượt roài mà vẫn chưa hiểu. hX

Cái "mã hóa 1 chiều" bác NguyenHoanh nói ở trang trước là thế nào đấy ah? em chỉ nghe nói đến MD5 thôi, nhưng cũng chưa nắm được cách thức, cũng ko biết dùng lisp có xây dựng được phương thức mã hóa tương tự ko?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Chào các Bác lâu không vào không ngờ chủ đề này sôi động thế

Đồng ý cả hai tay với bác, em đọc mấy lượt roài mà vẫn chưa hiểu. hX

Cái "mã hóa 1 chiều" bác NguyenHoanh nói ở trang trước là thế nào đấy ah? em chỉ nghe nói đến MD5 thôi, nhưng cũng chưa nắm được cách thức, cũng ko biết dùng lisp có xây dựng được phương thức mã hóa tương tự ko?

Chào bạn pfievxd

Cái mã hoá ở đây chỉ đơn giản là xây dựng một thuật toán của riêng bạn mà thôi.

Ví dụ: khi bạn lấy serial của HDD được một dẫy gồm 5 chữ số. Bạn lấy số này rôid + - x : cho một số nào đó mà bạn muốn => được số mới. khi chạy thì viết điều kiện kiểm tra qua số này.

Đây chỉ là một ví dụ minh hoạ trong vô vàn các cách mã hoá cho bạn hiểu thôi.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

cho em hỏi với đoạn code sau :

(setq bbb (vlax-get-property (vlax-invoke (vlax-create-object "Scripting.FileSystemObject") 'Getdrive "c:") "SerialNumber" ))

nếu em thay ổ c = tên ổ của usb để lấy serial của usb làm mã khóa (sau này mún dùng lisp thì phải cắm usb vào để lấy serial so sánh)

nhưng vướn 1 chỗ là mỗi máy setup tên ổ usb khác nhau ví dụ máy em usb là E qua máy khác lại thành F thì coi như hỏng rồi vậy có cách nào lấy serial của usb theo tên usb (do mình đặt ví dụ pikachu, nobita cái này chuyển máy nó không đổi) không ạ

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Các bác cho em hỏi, em thấy ở trên có nhiều đoạn code lấy mã của một thiết bị rồi, làm thế nào để tạo một đoạn dịch mã tương ứng với mã vừa GET. 
Khi người dùng nhập đoạn Dịch mã đó, thì vlx mới hoạt động. 

  • Vote giảm 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
1 giờ trước, paragon123 đã nói:

Các bác cho em hỏi, em thấy ở trên có nhiều đoạn code lấy mã của một thiết bị rồi, làm thế nào để tạo một đoạn dịch mã tương ứng với mã vừa GET. 
Khi người dùng nhập đoạn Dịch mã đó, thì vlx mới hoạt động. 

Chào bạn.

Bạn có thể nói rõ hơn cái bạn cần, mình xem thử mới góp ý cụ thể dc.

 

Thân chào.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
21 giờ trước, DuongTrungHuy đã nói:

Chào bạn.

Bạn có thể nói rõ hơn cái bạn cần, mình xem thử mới góp ý cụ thể dc.

 

Thân chào.

Ví dụ: em có một lisp, em muốn đưa cho người khác sử dụng. Trong lisp này sẽ có đoạn code get Serial HDD ổ C - em đặt tên là lấy mã đăng ký ( và người khác dùng gửi mã này cho em )
Giờ làm cách nào tạo một mã trả lời, khớp với mã đăng ký đó để lisp được hoạt động. 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
54 phút trước, paragon123 đã nói:

Ví dụ: em có một lisp, em muốn đưa cho người khác sử dụng. Trong lisp này sẽ có đoạn code get Serial HDD ổ C - em đặt tên là lấy mã đăng ký ( và người khác dùng gửi mã này cho em )
Giờ làm cách nào tạo một mã trả lời, khớp với mã đăng ký đó để lisp được hoạt động. 

À

Lúc này bạn tại ra 1 danh sách. Trong danh sách đó bạn đưa mã đó vào. Sau đó bạn tạo 1 lệnh nếu mã máy của khách nằm trong danh sách thì chương trình tiếp tục. Nếu không thì quit.

Thân chào

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
19 giờ trước, paragon123 đã nói:

Ví dụ: em có một lisp, em muốn đưa cho người khác sử dụng. Trong lisp này sẽ có đoạn code get Serial HDD ổ C - em đặt tên là lấy mã đăng ký ( và người khác dùng gửi mã này cho em )
Giờ làm cách nào tạo một mã trả lời, khớp với mã đăng ký đó để lisp được hoạt động. 

Nếu đã đủ trình viết lisp thì cái này khá đơn giản.

Còn chưa thì nên học hỏi để nâng cao kiến thức đi đã. 

Chứ acc mới 3 bài viết, chưa đóng góp gì cho cộng đồng đi hỏi khóa lisp như này không ai giúp đâu.

Gợi ý bác Hoang ngắn nhưng đủ hay để làm rồi:

Nên dùng HDD serial kết hợp với registry

Lúc đăng ký

Get HDD Serial -> convert sang một số bí mật (bằng hàm 1 chiều) -> ghi vào registry

Lúc kiểm tra:

Get HDD Serial -> convert sang một số bí mật -> so sánh với số đã ghi vào registry

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Vào lúc 27/12/2020 tại 15:52, DuongTrungHuy đã nói:

À

Lúc này bạn tại ra 1 danh sách. Trong danh sách đó bạn đưa mã đó vào. Sau đó bạn tạo 1 lệnh nếu mã máy của khách nằm trong danh sách thì chương trình tiếp tục. Nếu không thì quit.

Thân chào

Chào bác, chỗ này bác có thể hướng dẫn cụ thể hơn được không ạ ! 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×