中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: C语言在DOS下读CPU加密 上一主题 | 下一主题
jerrywang6
初级用户




积分 132
发帖 13
注册 2004-3-13
状态 离线
『楼 主』:  C语言在DOS下读CPU加密

请教各位大虾及各位斑竹:
  
  我刚用C/C++开发出一套医疗设备的监护控制系统,与NAIS的FP0通讯完成,现在马上要交货了,肯定要将程序内的逻辑锁及相关的防长期使用的功能取消,但我又担心客户无限制的拷贝,请各位大虾支招。目前我知道两个方案可以做
  
  1:读CPU或采集卡CPU的序列号,但我不知道这个序列号怎么用C语言读出,
  2:加硬件狗,但没有实际操作过,不知道价钱多少,性能怎么样,
  
  以上两种方案如果能采用第一种更好,否则只有加狗了。其实我也不想这么做。
  
  我本善良,那知世道艰难,现在我和我同事搞了快三个月,没有任何银两进帐。
  急!急!急!。。。
  
  广州 王 13006881860



2004-3-17 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Kinglion
铂金会员

痴迷DOS者


积分 5792
发帖 1921
注册 2003-6-20
来自 金獅電腦軟體工作室
状态 离线
『第 2 楼』:  

你可以使用硬件代码加密方式来防止用户无限制的复制程序。如果用户将程序复制到别的机器,因为硬件代码更改,则程序无法运行。这样就即可让授权用户能长期使用,又防止盗版事情的发生。网上流行的许多共享软件就是使用的这种方法。
这个硬件代码你可以用硬盘的序列号来算出,具体方法我会将C程序代码给你发过去,请往我的信箱发一封邮件。



熟能生巧,巧能生精,一艺不精,终生无成,精亦求精,始有所成,臻于完美,永无止境!
金狮電腦軟體工作室愿竭诚为您服务!
QQ群:8393170(定期清理不发言者)
个人网站:http://www.520269.cn
电子邮件:doujiehui@vip.qq.com
微信公众号: doujiehui
2004-3-20 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (79207959)  编辑帖子  回复  引用回复
jerrywang6
初级用户




积分 132
发帖 13
注册 2004-3-13
状态 离线
『第 3 楼』:  

谢谢kinglion, 我现在也只能通过硬盘的物理序列号来完成这件事了,我想你的两个邮箱发了一份C语言的源程序,望查收,目前我能够将其读出,但我没有办法校验我读的是否正确,也希望你能够给一份您的原代码,谢谢了

2004-3-22 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Kinglion
铂金会员

痴迷DOS者


积分 5792
发帖 1921
注册 2003-6-20
来自 金獅電腦軟體工作室
状态 离线
『第 4 楼』:  

在你发的另一个帖子里,我已经将程序上传了,请看一看吧。



熟能生巧,巧能生精,一艺不精,终生无成,精亦求精,始有所成,臻于完美,永无止境!
金狮電腦軟體工作室愿竭诚为您服务!
QQ群:8393170(定期清理不发言者)
个人网站:http://www.520269.cn
电子邮件:doujiehui@vip.qq.com
微信公众号: doujiehui
2004-3-22 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (79207959)  编辑帖子  回复  引用回复
jerrywang6
初级用户




积分 132
发帖 13
注册 2004-3-13
状态 离线
『第 5 楼』:  

谢谢KINGLION,我已经看到了

2004-3-22 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jerrywang6
初级用户




积分 132
发帖 13
注册 2004-3-13
状态 离线
『第 6 楼』:  

谢谢KINGLION,我已经看到了

2004-3-22 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jerrywang6
初级用户




积分 132
发帖 13
注册 2004-3-13
状态 离线
『第 7 楼』:  

另外,请问那里有C的*.CHR文件下载,其实,就我的感觉而言,TC/BC等已经可以满足大部分工程上的央求——实时性,对硬件的可操作性,对系统的低要求,稳定性决定了TC/BC仍然有很强的生命力(包括DOS),但由于TC/BC面市较早,对很多的硬件不能支持——比如,显示器方面,不能很好的支持800X600或1024X768,256S色等(要重新从底层开发)。

1:我现在在找TC/BC下的英文字体文件下载(免得写出来的程序让人一眼就看出是DOS下的软件),不知哪位DX能够提供相关下载地址。
2:我也再找DOS下中断大全的相关资料,网上的很多地址没法下载,还望指点一二。

ths

2004-3-22 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wager
初级用户




积分 120
发帖 5
注册 2004-4-4
状态 离线
『第 8 楼』:  

请给我也发一份DOS下读硬盘物理序号的程序吧,谢谢!

Wager@126.com

2004-6-6 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
profree
中级用户




积分 478
发帖 132
注册 2003-7-2
状态 离线
『第 9 楼』:  

我也在找呀,给我一份吧,
xpzsj@126.com


[此贴子已经被作者于2004-6-30 下午 05:36:59编辑过]




2004-6-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zk88
初级用户




积分 130
发帖 10
注册 2003-11-4
状态 离线
『第 10 楼』:  

电子盘没有物理序号吧,可以读特定文件的磁道号,扇区号达到同样目的(没听说过吧)。
猜猜这个软件是用dos 还是WINDOWS  http://zk888.go.nease.net

[此贴子已经被作者于2004-7-7 上午 10:34:19编辑过]




2004-7-7 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
beastie
初级用户




积分 66
发帖 80
注册 2004-7-24
状态 离线
『第 11 楼』:  

装个UNIX把。只要用more /pro/cpuinfo就可以了。

2004-7-25 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhaojinpo
初级用户




积分 183
发帖 31
注册 2002-11-30
状态 离线
『第 12 楼』:  

我有不少TC下用的字库*.CHR ,如果你需要就给我往http://zjp-vlk.vicp.net/bbs/ 留言吧!



我的论坛  http://zjp-vlk.vicp.net/bbs 我在它就在!
2004-7-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiexiaohu
中级用户




积分 365
发帖 95
注册 2004-2-28
状态 离线
『第 13 楼』:  

使用硬件代码加密方式来防止用户无限制的复制程序是UCDOS的加密方法

2004-10-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
郭恒
中级用户




积分 225
发帖 39
注册 2004-10-6
状态 离线
『第 14 楼』:  

    在工控邻域,实时性是最重要的,但WINDOWS是不实时的,对于即要“界面”又要“实时”的情况,可以在“WWW.FirstSail.b2b.Cn”网页下免费下载“WinSail”软件。可以说     DOS + WinSail  =  WINDOWS CE现在有一种“WinSail工业控制开发系统”正在业界普遍使用,其推出真正使嵌入式PC进行产品开发时,设计人员不需要在硬件、底层操作、界面、参数设置等花费太多的时间,只要把精力放在功能开发上。只要您懂C++ For DOS或Visual C++,您就能在DOS下编程,生成一个能与Windows竣美的应用系统!“WinSail工业控制开发系统”是基于DOS系统,用Borland C++3.1语言,在Large大模式下开发出来的软件开发包。虽然说完整的软件包大约只有450K左右,却能在DOS下生成的程序具有与WIN9x完全相同的界面,拥有Group、Label、Edit、ComboBox、Button、Radio、Check、ListBox、Grid、ScrollBar、Desktop、ToolsBar、StatusBar、Menu、PopuMenu、Window、Dialog、ICON、Bitmap、示波器等界面元素,支持鼠标,控件的操作99.9%与Windows兼容!可加载运行脚本对话框;支持Socket套接字编程;具有完整窗口图形界面的最小应用只有150K左右,可在只有1M的电子盘中运行;具有0.5uS微秒精确度的delay函数。可以说DOS + WinSail >= Windows CE“WinSail工业控制开发系统”目前支持:(1)         “WinSail”的API与“C++ For DOS”函数库“共存”,特别是与C语言的图形函数BGI共存。(2)       支持具有优先级的多任务,同时可达到50个任务。(注:可配置脚本文件来不需要多任务支持,使程序运行于单任务中) 。(3)         支持数据库,生成的文件与Foxpro 2.6库兼容,可在微软Office的Excel中直接打开。(4)         使用16*16的简体、繁体中文字库、8*16的英文字库,支持TrueType字库。(5)       “对话框”能在Visual C++预先做好界面,然后通过转换软件,能使Windows的对话框界面变成“WinSail”系统的对话框的界面代码源文件或脚本文件,充分利用Visual的优越性,使DOS平台的应用程序界面开发“不再难”!!!!!(6)         支持600*480*16、600*400*256、800*600*256、1024*768*256多种分辩率。(7)         支持Group、Label、Edit、ComboBox、Button、Radio、Check、ListBox、Grid、ScrollBar、Desktop、ToolsBar、StatusBar、Menu、PopuMenu、Window、Dialog、ICON、Bitmap、MessageBox、示波器、多元纵坐标示波器等界面元素。(8)       支持扩展内存--XMS、扩充内存EMS的内存访问。(9)         支持文本注册表--INI文件的读写,在写键值时,可保证在键值后面的“注释内容”仍然还存在。(10)      支持面向对象的I/O访问,屏蔽底层I/O口。(11)      具有COMM口通讯接口,支持多种校验位,包括“没有校验位”、“奇校验位”、“偶校验位”、“校验位永为1”、“校验位永为0”。后两种校验方式多用在多机通讯中区别“地址”和“数据”。(12)   支持条形码显示。包括EAN_8、UPC_A、UPC_E、EAN_13(商品码)、ISBN、ISSN、39、128、Codabar、交叉25码 (13)   窗口支持“用I/O口定义的虚拟键盘”、“窗口定时器”、“空闲时调用某函数”、“窗口刷新时调用某函数”等多种回调函数。(14)   多种常用数学运算,包括“低通”、“高通”、“带通”、“带阻”滤波器系数的产生(可加矩形窗、三角形窗、汉宁窗、海明窗、布莱克窗、Sin(x)/x窗、余弦窗、凯塞窗),滤波、插值、拟合、微积分、相关分析、FFT、DFT等。(15)      统计进程SPC和直方图、测量的可靠性和重复性GageR&R报表。(16)      支持“Bitmap”、“ICON”图像文件的显示、“Wav”声音文件的播放。(17)      支持“普通示波器”和“多纵坐标示波器”。(18)      支持Socket 套接字编程。 一、文件说明    1:文件:WinSail工控开发系统.doc------WinSail系统简要使用说明书    2:目录:WinToDos---------------------转换程序    3:目录:include2---------------------系统“头文件”和“库文件”    4:目录:Sail3000---------------------应用工程实例    5:目录:Application------------------VC++程序,里面有多个对话框 二、include2目录里面的文件说明    01:Barcode.h----------- 条形码显示/打印头文件,      类接口    02:DownComm.h---------- COMM口通讯,                 类接口    03:Foxpro.h------------ Foxpro2.6数据库,            类接口    04:GageRR.h------------ 测量的可靠性和重重性报表,   类接口    05:Graph.h------------- 示波器和多纵坐标示波器,     类接口    06:HglgPrit.h---------- 文字、BITMAP图片、ICON图标的显示,WAV声音播放,API接口    07:Kernal.h------------ 多任务,API接口    08:Listing.h----------- 双向链表,类接口    09:Memroy.h------------ XMS和EMS内存,类接口    10:Mouse.h------------  鼠标,API接口    11:MyFrame.h----------  控件和内核初始化,类和API接口    12:NewMath.h----------  数学库,API接口    13:Register.h---------  文本INI文件读写访问,类接口    14:Relay.h------------  面向对象的I/O访问,API接口    15:Spc.h--------------  进程统计控制SPC,类接口    16:SVga_Dev.h---------  800*600*256,1024*768*256分辨率图形驱动,API接口    17:Symbol.h-----------  符号定义    18:EgavgaF.Obj--------  BC31远调用驱动程序    19:Sail.Lib-----------  系统库文件 三、Sail3000目录里面的文件说明    01:Config.Sys----------- 系统驱动配置文件    02:Display.Fon---------- 8*16英文字库和16*16简体字库    02:DisplayF.Fon--------- 8*16英文字库和16*16繁体字库    03:Dwpword.Exe---------- 用户和密码观看文件(高级应用)    04:Pass.Bin------------- 用户和密码数据库,二进制    05:Mouse.Com------------ 鼠标驱动程序    06:Sail2000.Cpp--------- 用户工程的源文件示例    07:Sail2000.Prj--------- 用户工程的工程文件示例    08:Sail2000.Exe--------- 用户工程的主程序    09:a.bat---------------- 用户工程的批处理文件    10:Sys\Destop.Sys------- 用户工程的桌面配置文件    11:Sys\Manager.Sys------ 用户工程的桌面配置文件    12:Sys\Relay.Sys-------- 用户工程的I/O配置文件    13:Bmp\Computer.Bmp----- 内核使用的一幅图片    14:Bmp\Desktop.Bmp------ 内核使用的一幅图片    15:Bmp\Winnt.BMp-------- 密码框使用的一幅图片    16:Bmp\Sail200.Ico------ 窗口默认的标题栏图标    17:Bmp\BookS??.Ico------ 菜单默认的图标    18:Bmp\MsgBox??.Ico----- 信息框使用的图标    19:Bmp\Display.Ico------ 内核使用的一幅图标    20:Bmp\Net.Ico---------- 内核使和的一幅图标 四、WinToDos目录里面的文件说明    对于VC工程中的文件,只有“工程.rc”和“Resource.h”文件有价值     01:MakeDlg.Exe---------- 将VC中的资源对话框转成WinSail的对话框源程序    02:RegisterDll.Dll------ 支持MakeDlg.Exe访问文本INI注册表的DLL文件     五:DOS起动文件配置说明    假设Win的目录名称是“c:\Windows”,BC31的目录是“C:\Bc31”     C:\Config.Sys请如下配置     Device = C:\Windows\Himem.Sys/TestMem:Off     Device = C:\Windows\Emm386.Exe  Ram  HighScan     DOS    = High,Umb     Stacks = 9,256     Files  = 25     C:\Autoexec.Bat请如下配置       path C:\Windows;C:\Windows\Command;C:\Bc31\Bin          Lh   SmartDrv.Exe 六:对Main()主函数的要求    1:需包含头文件"Symbol.h"和"MyFrame.h"    2:先调用BOOL InitSystem(int argc, char** argv)内核初始化函数    3:中间写自己的代码    4:最后调用BOOL CloseSystem()内核退出函数.    5:例:       #include "Symbol.h"       #include "Myframe.h"        extern unsigned _strlen = 60u * 1024u;       void far TransrateKey(CObject* pCurObj)       {           return(0);       }        int main(int argc, char** argv)       {           //系统内核初始化           if (!InitSystem(argc, argv))           {               ::CloseSystem() ;                ::printf("\nInit System Error!" ;                return(0);           }            //用户代码开始                      //……            //用户代码结束            //退出系统内核           ::CloseSystem();           return(1);       } 七:如何创建Sail2000工程并编码    01:在C盘中安装BC31,最好目录为C:\Bc31    02:用户在自已BC31的目录中,创建"Include2"目录    03:将include2\*.*的所有文件拷贝C:\bc31的"include2"目录中。    04:在BC31集成环境中,将"include包含"路径设成"c:\bc31\include2;c:\bc31\include"    05:在BC31集成环境中,"Large"大模式;"Default for memory model"默认内存模式。    06:在BC31集成环境中,Floating Point设置成"80287/387"和Instruion Set设置成"80386"    07:在BC31集成环境中,创建一工程,假设工程名称为Sail2000.Prj    08:在工程中加入C:\BC31\include2\Sail.Lib内核库文件    09:在工程中加入C;\BC31\include2\Egavgaf.Obj图形库文件    10:在工程中,须编写void far TransrateKey(CObject* pCurObj)的默认的窗口虚拟键盘函数,一般如下所示          void far TransrateKey(CObject* pCurObj)          {              return(0);          }

2004-11-24 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: