当前位置: 首页 > news >正文

长春网站建设q479185700棒代做毕网站

长春网站建设q479185700棒,代做毕网站,传动设备 技术支持 东莞网站建设,男女做暖暖的时候网站原文地址#xff1a;李浩的博客 lihaohello.top 本科期间开发过一款混凝土基本构件设计程序#xff0c;该程序是一个独立的exe可执行文件#xff0c;采用VC静态链接MFC库编制而成。近期#xff0c;需要为该程序添加用户注册验证的功能#xff0c;从而避免任何用户获取该程…原文地址李浩的博客 lihaohello.top 本科期间开发过一款混凝土基本构件设计程序该程序是一个独立的exe可执行文件采用VC静态链接MFC库编制而成。近期需要为该程序添加用户注册验证的功能从而避免任何用户获取该程序就能无限制使用的问题。 刚开始打算在网络上找可直接为单个exe文件添加“一机一码”注册功能的平台软件但该类软件基本都是付费软件且生成的加壳程序很容易被杀毒软件误差。好在“一机一码”机制并不复杂最终决定使用C#编程的方式手动实现该功能。 整体思路 新建C#控制台程序将exe嵌入C#的资源文件控制台程序启动后先进行“一机一码”校验 如果已注册直接进入第3步如果未注册则弹出注册窗口提示用户输入注册码注册成功进入第3步失败继续提示输入注册码或退出 通过代码从资源文件中释放exe并启动新进程控制台进程等待新进程执行完毕再退出 主要问题 “一机一码”的验证策略 先获取硬件CPU、硬盘等的序列号通过序列号组合成机器码通过某种加密算法从机器码计算得到注册码并把注册码写入特定的文件或注册表每次打开加壳程序时都先获取机器码计算注册码将计算得到的注册码与保存在本地的注册码进行比较如果一致就说明注册成功反之失败 以下是获取CPU和硬盘序列号的函数 public static string GetCPUId() {try {ManagementObjectCollection collection1 new ManagementClass(Win32_Processor).GetInstances();string strCpuID null;foreach (ManagementObject obj1 in collection1) {strCpuID obj1.Properties[ProcessorId].Value.ToString();break;}return strCpuID;} catch {return strCpuID;} }public static string GetDiskId() {try {ManagementObjectSearcher searcher new ManagementObjectSearcher(SELECT * FROM Win32_PhysicalMedia);String strHardDiskID null;foreach (ManagementObject mo in searcher.Get()) {strHardDiskID mo[SerialNumber].ToString().Trim();break;}return strHardDiskID;} catch {return strHardDiskID;} }释放资源获得原始文件 这里需要指定释放文件的保存路径可以选择当前用户的临时文件夹可以设置释放文件的状态为隐藏为用户拷贝该文件制造额外障碍 byte[] fileBytes Resource1.program; string fileName System.IO.Path.GetTempPath(); if (fileName.EndsWith(\\))fileName fileName program.exe; elsefileName fileName \\program.exe; using (BinaryWriter bw new BinaryWriter(new System.IO.FileStream(fileName, System.IO.FileMode.Create))) {bw.Write(fileBytes);bw.Flush();bw.Dispose(); } File.SetAttributes(fileName, FileAttributes.Hidden);执行释放程序并等待其结束 System.Diagnostics.Process myPro System.Diagnostics.Process.Start(fileName); myPro.WaitForExit();注意事项 释放exe文件后该文件必定存在于本机某个路径高级用户可以找到该路径并拷贝exe文件从而轻松破解。这是本方法的硬伤只能通过选择隐蔽路径、设置文件隐藏等方法加大定位该文件的难度。由于采用C#语言进行加壳很容易反编译得到加壳逻辑这样从机器码到注册码的算法逻辑就非常容易被破解者发现从而自己计算实现注册。解决该方法的办法是使用C 编写机器码到注册码的算法逻辑然后封装给C#程序调用或者使用C 来进行加壳或者更彻底一些将注册码计算过程部署到服务器通过网络来进行验证。软件开发者端需要额外的注册码计算程序从而实现软件分发控制。
http://www.ho-use.cn/article/10814414.html

相关文章:

  • 直播做ppt的网站有哪些公司注册查询网
  • 上海个人网站备案wordpress采集视频插件
  • 网站语言是什么五金模具技术支持 东莞网站建设
  • 做网站怎么做的怎样新建一个网页
  • wordpress漫画网站做网站的绿色背景图
  • 给公司做网站这个工作怎么样天津网站优化公司电话
  • 开源企业建站系统哪个好网络彩票建立网站
  • 保定网站模板建站企业vi设计公司上海设计公司
  • 广平专业做网站wordpress迁移后插件消失
  • 网站后台维护月薪多少湖南响应式网站哪家好
  • 北京南站附近的景点广东品牌网站建设报价表
  • 网站开发顶岗实践总结网站网站制作多少钱
  • 什么叫网页什么叫网站提供零基础网站建设教学
  • 成都网站建设:望城建设局网站
  • 县直门户网站建设管理pc网站建设意见
  • 平面设计自学网站有哪些宣传片拍摄思路
  • 有做企业网站的吗黑马it培训班出来现状
  • 404网站怎么做中山皇冠建设开发有限公司网站
  • 武进网站建设好么最便宜的域名注册商
  • wordpress导购站主题做烘焙的网站
  • 网站服务器租用一般费用腾讯云建设网站
  • 公司怎么与网站进行活动推广seo网站推广优化费用
  • 信息发布的网站怎么做广告推广代运营公司
  • 如何加强高校网站建设西安汇友网站建设
  • 网站建设期末实践报告东莞寮步伟易达电子厂
  • 南京旅游网站建设公司网站推广排名最新报价
  • 网站后台样式模板营销网站的推广
  • 贵阳监理建设网站网站建设设计理念
  • 哈尔滨营销网站建设公司哪家好红动中国免费素材网
  • 做网站笔记本2014怎样用虚拟主机建网站