9701519 发表于 2012-5-28 21:59:31

怎么把CPU序列号替换硬盘序列号!

本帖最后由 9701519 于 2012-5-28 23:49 编辑

(defun UseLimit(/ FIND_SERIALNUMBER regNumber num regnum reg_path *error*)
(defun *error* (msg / ent count)
    (princ)
)
(defun FIND_SERIALNUMBER (DRIVE / FILSYS VAL)
    (setq FILSYS (vlax-create-object "Scripting.FileSystemObject"))
    ;;(vlax-dump-object FILSYS t)
    (setq VAL (vlax-invoke FILSYS "GetDrive" DRIVE))
    ;;(vlax-dump-object VAL t)
    (setq VAL (vl-catch-all-apply
    'vlax-get
    (list VAL "SerialNumber")
      )
    )
    (vlax-release-object FILSYS)
    (if(vl-catch-all-error-p VAL)
      (setq VAL NIL)
      VAL
    )
)

(setq reg_path "HKEY_CURRENT_USER\\Software\\VB and VBA Program Settings\\temp")
(setq regNumber (vl-registry-read reg_path "注册码"))
(if (/= regNumber
   (itoa
      (/ (atoi (rtos (atoi (rtos (FIND_SERIALNUMBER "C:"))))) 3);;;注册码=申请码/2
   )
      )
    (progn
      (alert
(strcat
    "请注册!")
      )
      (setq num (rtos (FIND_SERIALNUMBER "C:")))
      (setq regnum (itoa (/ (atoi (rtos (atoi num))) 3)));;;注册码=申请码/2
      (textscr)
      (princ
(strcat "您的申请码为: " num)
      )
      (setq regNumber (getstring "\n请输入注册码:"))
      (if (/= regNumber regnum)
(progn
    (alert "注册码无效!")
    (exit)
)
(progn
    (vl-registry-write reg_path "注册码" regnum)
    (alert "您已成功注册!")
)
      )
      T
    )
)
(princ)
)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;(vl-load-com)
;;;(vl-load-all "Register")
;;;(UseLimit)

;;;请在任何LSP文件中加入以上三行即可,注意一定要放在最前面!!!
;;;只支持AutoCAD2000及以上的版本
;;;Register.fas文件必须放在AutoCAD的支持路径下
;;;如Register.fas文件不在AutoCAD支持路径,请自行指定路径
;;;如(vl-load-all "C:/Program Files/AutoCAD 2004/Support/Register")
;;;现在的加密方式为
;;;获取物理磁盘C的序列号进行除2取整运算
;;;所以注册码=取整(申请码/2)
;;;如申请码为1550011861,则注册码=1550011861/2=775005930.5,去掉小数
;;;注册码则为775005930,即可注册成功CPU序列号代码如下:
(defun cpuid (/ str)
   (setq str
   "Set objSWbemObject = GetObject(\"winmgmts:Win32_Processor.DeviceID='cpu0'\")
   ret = objSWbemObject.ProcessorId
   'msgbox \"首枚CPU序列号:\" & ret" )
   (if (not *wsc)(setq *wsc (vlax-create-object "ScriptControl")))
   (vlax-put *wsc 'language "vbs")
   (vlax-invoke *wsc 'ExecuteStatement str)
   (vlax-invoke *wsc 'eval "ret")
    (vlax-release-object FILSYS)
    (if(vl-catch-all-error-p VAL)
      (setq VAL NIL)
      VAL
    )
)


http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 9701519的微博

朽木大师 发表于 2012-7-12 22:47:25

同求,觉得高手可能几分钟

xskfq 发表于 2014-3-3 16:32:49

顶一下~~~~

ZZXXQQ 发表于 2014-3-3 20:23:26

不明白到底要干什么。是想将CPU的序列号改成硬盘序列号呢?还是加密程序原来读的是硬盘序列号,想改用读CPU序列号。

m809289064j 发表于 2018-2-16 19:14:07

CPU的序列号怎么提取呀

mikewolf2k 发表于 2018-2-22 17:18:05

如果没猜错的话,这个获得的是磁盘序列号而不是硬盘序列号,重新格式化就变了。硬盘或者CPU序列号是硬件级别的信息,LISP没事不会把手伸到硬件领域去吧。
页: [1]
查看完整版本: 怎么把CPU序列号替换硬盘序列号!