📄 readme.chi
字号:
GS-MH 型微狗DOS16位 C 语言实模式API使用说明
--------------------------------------------------------------------
GS-MH 型微狗C语言实模式接口API适用于各种用C/C++编写的DOS实模式程序
的加密。
============
功能简介
============
GS-MH 型微狗包括硬件部分及软件部分。硬件由单片机、存储器等组成。
微狗的硬件在使用时应插在并口上。软件由对微狗硬件调用的函数组成。
GS-MH 型微狗共提供了六种功能:查询对应的微狗是否存在,读、写存储
区数据,数据变换,读流水号及禁止共享。
检查微狗存在是最快的调用,也是最简单的加密手段。
读写存储区功能用于用户在微狗存储区中存取数据。使用读写功能时,您
可以在程序中动态地写入变量,然后读出直接使用,来达到较高的加密效果;
也可以将一些配置信息写入微狗中,记录用户的使用情况。
变换功能即程序向微狗发送一串数据,由微狗计算后返回一个32位长整型
数据,发送的数据和返回的数据是一一对应的。不同系列号的微狗变换的算法
是不一样的,您也可以自己来改变变换算法。变换算法有256种。每种算法中,
又可以选择3个字节的算法因子,其变化的组合大于4000兆个变化。
读流水号功能可用于读出微狗的流水号。每一个微狗的流水号都是不同的,
流水号可用于软件开发商的客户管理。
禁止共享是专门为了对付并口共享器而设置的功能。您在程序中开始调用
此函数后,软件就不会被多台计算机通过并口共享器共享了。
综合使用以上几个功能就可以使您的软件不被非法使用,使您的权益得到
保护。关于具体加密技巧,请参阅《开发商指南》。
==========
文件清单
==========
文件名 简介
README.chi 使用说明(中文)
README.eng 使用说明(英文)
DOS16DOG.obj API目标文件
DOSSETPS.obj Set password 专用OBJ
EXAM.C 例子程序
SETPASS.C 设密码例子程序
================
已通过的测试环境
================
Turbo C 2.0
Borland C++ 3.1, 4.0, 4.5
Msc 7.0
=========
API 详介
=========
1. API定义以下函数,并输出给开发商的程序。
unsigned long far DogCheck(void) 查狗
unsigned long far ReadDog(void) 读狗
unsigned long far WriteDog(void) 写狗
unsigned long far DogConvert(void) 变换
unsigned long far GetCurrentNo(void) 取流水号
unsigned long far DisableShare 禁止共享
2. API要求调用者(即开发商应用程序)定义以下全局变量。
unsigned char Cascade 级联顺序号(0~2)
short DogAddr 首地址(0~199)
short DogBytes 操作字节数(1~200)
unsigned long DogPassword 口令,仅用于读写操作
unsigned long DogResult 变换结果
void far * DogData 输入输出数据指针
3. DogCheck()
输入参数:Cascade。
输出参数:无。
返回值:0 表示操作成功。其他值是错误码。
功能:检查是否有狗存在。只有与本OBJ的系列号对应的狗才能被检测到。
当有两个或三个同系列号的狗在同一个并口时,Cascade可指定对第
几个操作。Cascade=0,1,2分别表示第1,2,3个狗。 规定只允许
级联3个同号狗。Cascade对以下的所有命令都有相同的意义。
4. ReadDog()
输入参数:Cascade, DogAddr, DogBytes, DogData, DogPassword。
输出参数:DogData。
返回值:0 表示操作成功。其他值是错误码。
功能:从狗中读出数据。微狗有200个字节的掉电保持的存储区,ReadDog将
从微狗读出数据,起点由DogAddr指定,字节数由DogBytes指定。读
出的数据将存入DogData指向的空间。微狗将校验DogPassword。
DogPassword是存在微狗内的读写口令,由开发商用工具或
SetPassword函数设置。应用程序必须保证有足够的空间存放读出的
字节。ReadDog并不检查DogData所指的空间是否足够。
5. WriteDog()
输入参数:Cascade, DogAddr, DogBytes, DogData, DogPassword。
输出参数:无。
返回值:0 表示操作成功。其他值是错误码。
功能:向狗中写入数据。除了数据的流向与ReadDog相反外,其它的意义一
样。
6. DogConvert()
输入参数:Cascade, DogBytes, DogData。
输出参数:DogResult。
返回值:0 表示操作成功。其他值是错误码。
功能:向狗中输入数据。微狗对输入的数据求变换,变换结果是一个32位
数,存于DogResult。DogBytes指示变换的字节数,DogData指向要变换的数
据。变换的算法可以由开发商指定。存贮区的最后4字节对变换算法有影响。
第196字节选择算法,因此共有256种算法。第197,198,199共三个字节,
是每种算法的因子,有16,777,215种变化。
7. DisableShare()
输入参数:Cascade。
输出参数:无。
返回值:0 表示操作成功。其他值是错误码。
功能:当禁止共享后,狗将与机器有关,以后的读,写,变换和取流水号都
必须是插狗的机器才能正常运行。这个功能是为了防止并口共享器变
相盗用加密软件而设的。如果开发商允许最终用户共享加密软件,可
以不运行该函数即可。
8. GetCurrentNo()
输入参数:Cascade, DogData。
输出参数:DogData。
返回值:0 表示操作成功。其他值是错误码。
功能:读取微狗的流水号。每个狗都有一个唯一的流水号。即使是同号狗也
一样。同号狗是指系列号相同,可互换使用。但流水号唯一,为了让
开发商有管理加密软件的辅助手段。
9. SetPassword()
输入参数:Cascade, DogPassword, NewPassword。
输出参数:无。
返回值:0 表示操作成功。其他值是错误码。
功能:设置微狗密码。DogPassword是微狗的旧密码。NewPassword是微狗
新的密码。
注:这是由专用设置密码的 DOSSETPS.OBJ 文件专有函数。
DOSSETPS.OBJ 不能用于微型模式。
===========
错误码
===========
关于错误码的约定请参见安装目录根目录的 ERRCODE.TXT。
====================
例子程序的编译和运行
====================
本例子程序在Borland C 3.1、TC 2.0、MSC 7.0下均可调试通过。
如果在集成环境下编译,首先应建立工程文件,工程文件中包含EXAM.C和
Dos16Dog.OBJ
例子程序运行后可显示各个函数的调用结果。
例子程序仅为调用各个函数的示例,关于具体加密技巧,请参阅《开发商指南》。
=========
注意事项
=========
1 对GS-MH进行写操作时,改变200字节存储区的后四个字节会影响变换结果。
2 本软件可以对GS-MD/GS-MF操作,但不能完成GS-MH的新增功能。
调用Disableshare、GetCurrentNo两个函数时返回值无意义。
3 本软件对GS-MD/GS-MF操作时,DogCheck、DogConvert函数也与狗的口令
有关,请在调用这两个函数时首先对DogPassword赋值。
4 此版本模块暂不提供同号狗级联功能!CASCADE是为将来加入此功能预留的参
数,取值必须为零。
==========
技术支持
==========
如果遇到技术问题,请立即与金天地公司或分公司或代理商联系。联系时请说
明您使用的软件部件号。
DOS16DOG模块的部件号是GS-MH-LM-D16RINTF 1.009。
DOSSETPS模块的部件号是GS-MH-D16-PWDINT 1.009。
后面部分是版本号,可以使用 Utility\Getver.exe 得到本软件模块的版本号,
两者应该一致。不一致时以Getver.exe 的报告结果为准。版本号有助于技术支
持定位问题并解决问题。
联系地址请看 Address.txt。
====================================================================
"狗", "微狗"是北京金天地软件发展有限公司的注册商标 。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -