找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 90|回复: 3

Mastercam后处理按次数授权dll

[复制链接]

433

主题

5759

回帖

901万

积分

管理员

积分
9014266
发表于 2020-10-4 14:35:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
曾经有不少的圈内朋友咨询,如何限定后处理的使用次数,达到设定的次数后就失效或提示用户延长使用次数。
       这个功能通过对后处理进行二次开发确实可以达到目的,但由于该方法在实现的过程中,需要用明文的方式保存次数,如果把次数加密后保存,这样对后处理的计算量非常大,同时也需要借助vb script来辅助,这样一来,每次都需要把已经保存的数据传递给vb script解密,解密后再传回后处理,后处理对数据运算后,再传给vb script加密,在这个过程中,很容易利用工具拦截并修改数据,导致次数失效。
  H/ C" v3 \9 B, ]& [  M
      那如何才能保证这一过程安全,高效,同时确保保存的数据安全可靠呢?
     对此,本人基于NET-Hooks技术开发了相应的dll文件,后处理只需要把次数密文传递给dll,剩下的工作交由dll完成,这一过程高效,快而且相对安全。
    对于密文加密部分,通过一个exe程序来进行加密相关的数据。
后处理在第一次使用时会生成一个用户系统信息的文件,该文件需要发送给后处理制作者,后处理制作者提取相关的数据后,生成相应的密文,替换后处理中"KeyKeyKeyKeyKeyKeyKeyKeyKeyKeyKeyKeyKeyKey"字符串即可
把后处理的所有源代码除数据格式定义,换刀块等加密。
下面将进入激动人心的时刻,后处理代码部分。
1 |  {- H7 D1 d" ~$ i

6 H/ M' c# V" X9 a6 G8 m. u0 e2 V
1.首先定义dll保存返回的数据。
#-----------------------------------------------------------------------------
# Do not change below any code.
#-----------------------------------------------------------------------------
sav_arg_1 : ""
sav_arg_2 : ""
sav_arg_3 : ""
& [; _0 K& r, ~, N, K
2.定义次数,硬件,用户名等密文。
slic_int: "ktpzKs94d0ZBGlbgZWNuexxMZRlYf/67+sSKqqsfxJll6ocbpzg+kg=="
slic_ids   : "K3Ylvd7tS1ul+EKTLSsDrA==" #Use Number
slic_iqc   : "KeyKeyKeyKeyKeyKeyKeyKeyKeyKey" #Key

4 W' b' y' ^6 E/ b. Z
以下部分需要加密。
3.定义传递给dll数据的字符串。
#[startbin]
#-----------------------------------------------------------------------------
# Do not change below any code.
#-----------------------------------------------------------------------------
sDLL : "Use_time.dll"
sSPACE : " " # Contains a SPACE character
sSQ : "'"    # Contains a Single Quote character
sDQ : '"'    # Contains a Double Quote character
sARG1 : "arg1" # Load with the arg#1
sARG2 : "arg2" # Load with the arg#2
sARG3 : "arg3" # Load with the arg#3
sPARAMS : "" # This string variable will be the command line passed to the DLL.
test_ok   : 0
resultDLL : 0 # Needed for the dll() command call.

1 v8 v& w& J8 u2 Z  ]$ n6 Y
4.定义错误提示信息。+ Z5 m3 G& Q' V7 N- O1 v
serror_lic    : "Sorry, you not license use this postprocessor"
serror_dll    : "Sorry, in  "
serror_fd     : "  folder is not dll file"
serror_id     : "Invalid hardware ID, "
serror_nu     : "Time limit has expired! "
svers_limit_msg  : "This post is designed to function with Mastercam 2017 only!"

& v& H) c, \# {* K! `* E
5.dll调用开始
prunaddin  #This postblock is used to run a NET-Hook (or C-Hook) Add-In.
  sARG3 = slic_int
  sARG2 = slic_iqc
  sARG1 = slic_ids
  sPARAMS = sSQ + sDQ + sARG1 + sDQ + sSPACE + sDQ + sARG2 + sDQ + sSPACE + sDQ + sARG3 + sDQ + sSQ
  sDLL = spathpst$ + sDLL
  if fexist(sDLL),
    resultDLL = dll(sDLL, sPARAMS)
   else,
   [
     serror_dll = serror_dll + spathpst$ + serror_fd
     result = mprint(serror_dll)
     test_ok = 0
     exitpost$
   ]
  if spost_arg_1$ = "error", test_ok = 1, e$
  if spost_arg_0$ = "error", test_ok = 2, e$
  if test_ok = 1,
      [
       result = mprint(serror_id + serror_lic)
       *spost_arg_2$, e$
       pauthor_info
       psof0$
       exitpost$
     ]
  if test_ok = 2,
    [
     result = mprint(serror_nu + serror_lic)
     *spost_arg_2$, e$
     pauthor_info
     psof0$
     exitpost$
    ]
* a: G- Q+ A1 ]* W2 p* P% b" S6 C
6.定义次数失效后的相关联系方式。
pauthor_info  #- Author Info -
     "(qq:279497172)", e$
     "(ss1268@163.com)", e$
​
! B4 T% p4 E* b6 n* L" g. p

433

主题

5759

回帖

901万

积分

管理员

积分
9014266
 楼主| 发表于 2020-10-6 11:35:26 | 显示全部楼层
占位中。。。
回复

使用道具 举报

6

主题

77

回帖

102

积分

注册会员

积分
102
发表于 2022-2-24 16:17:17 | 显示全部楼层
AAA6666666
回复

使用道具 举报

3

主题

168

回帖

218

积分

中级会员

积分
218
QQ
发表于 2022-4-7 23:51:56 | 显示全部楼层
666666。这个厉害,版大辛苦了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

QQ|Archiver|手机版|小黑屋|若枫后处理论坛 ( 苏ICP备11015087号-1|苏公网安备32059002001368号 )

GMT+8, 2026-8-14 16:43 , Processed in 0.142453 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表