磐石加密狗NT88管理层API
磐石加密狗NT88管理层API
直接贴代码了

1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4 using System.Runtime.InteropServices;
5
6 //class NT88API
7 //{
8 ////查找加密锁
9 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
10 // public static extern int NTFindFirst(string NTCode);
11
12 ////查询硬件ID
13 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
14 // public static extern int NTGetHardwareID(StringBuilder hardwareID);
15
16 ////登录加密锁
17 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
18 // public static extern int NTLogin(string NTpassword);
19
20 ////存储区数据读取
21 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
22 // public static extern int NTRead(int address, int Length, byte[] pData);
23
24 ////存储区数据写入
25 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
26 // public static extern int NTWrite(int address, int Length, byte[] pData);
27
28 ////3DES解密
29 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
30 // public static extern int NT3DESCBCDecrypt(byte[] vi, byte[] pDataBuffer, int Length);
31
32 ////3DES加密
33 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
34 // public static extern int NT3DESCBCEncrypt(byte[] vi, byte[] pDataBuffer, int Length);
35
36 ////验证许可证
37 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
38 // public static extern int NTCheckLicense(int licenseCode);
39
40
41
42
43 ////登出加密锁
44 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
45 // public static extern int NTLogout();
46
47 // #region 管理员API
48
49
50 ////验证管理员密码
51 // [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
52 // public static extern int NTCheckSuperPin(string superPin);
53
54
55 // #endregion
56
57
58 //}
59
60
61 class NT88API
62 {
63
64 #region 管理员用法
65 //查找所有加密锁,只有找到加密锁才能其他操作,NTFindAll必须第一个执行
66 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
67 public static extern int NTFindAll(int[] NTHandle, int[] nKeyNum);
68
69 /// <summary>
70 /// 获取加密锁硬件属性
71 /// </summary>
72 /// <param name="NTHandle">加密锁handle</param>
73 /// <param name="keyMode">加密锁型号</param>
74 /// <param name="keyVersion">硬件版本</param>
75 /// <param name="e2size">存储区大小</param>
76 /// <param name="ramSize">内存区大小</param>
77 /// <param name="prouctionTime">生产日期</param>
78 /// <returns></returns>
79 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
80 public static extern int NTGetDevCaps(int NTHandle, int[] keyMode, int[] keyVersion, int[] e2size, int[] ramSize, byte[] prouctionTime);
81
82 //获取硬件序列号
83 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
84 public static extern int NTGetHarddwareID(int NTHandle, string hardwareID);
85
86 //检测管理密码
87 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
88 public static extern int NTCheckSuperPin(int NTHandle, string superin);
89
90 //修改加密锁管理密码
91 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
92 public static extern int NTSetSuperPin(int NTHandle, string newSPin);
93
94
95 //修改加密锁登录密码
96 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
97 public static extern int NTSetUserPin(int NTHandle, string superin, string seed, StringBuilder userPin);
98
99 //修改加密锁识别码
100 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
101 public static extern int NTSetAppName(int NTHandle, StringBuilder NTCode);
102
103 //获得加密锁识别码
104 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
105 public static extern int NTGetAppName(int NTHandle, StringBuilder NTCode);
106
107 //读取存储区数据
108 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
109 public static extern int NTRead(int NTHandle, int address, int length, byte[] pData);
110
111 //读写存储区数据
112 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
113 public static extern int NTWrite(int NTHandle, int address, int length, byte[] pData);
114
115 //获取许可证标识及验证码
116 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
117 public static extern int NTGetLicenseSettings(int NTHandle, byte[] licenseOption, int[] licenseCode, int licOptionNumber);
118
119 //设置许可证标识,同时计算出验证码
120 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
121 public static extern int NTGenLicenseCodes(int NTHandle, byte[] licenseOption, int[] licenseCode, int licOptionNumber);
122
123 //验证许可证,输入相应额验证码进行验证
124 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
125 public static extern int NTCheckLicense(int NTHandle, int licenseCode);
126
127 //3DES加密
128 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
129 public static extern int NT3DESCBCEncrypt(int NTHandle, byte[] iv, byte[] pDataBuffer, int length);
130
131 //3DES设置
132 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
133 public static extern int NTSet3DESKey(int NTHandle, byte[] key);
134
135 //3DES解密
136 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
137 public static extern int NT3DESCBCDecrypt(int NTHandle, byte[] iv, byte[] pDataBuffer, int length);
138
139
140 //查询硬件ID
141 [DllImport("NT88Mgr.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
142 public static extern int NTGetHardwareID(int NTHandle, StringBuilder hardwareID);
143
144
145 #endregion
146
147
148 /*****************************************/
149
150
151 #region 应用层
152 //查找加密锁
153 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
154 public static extern int NTFindFirst(string NTCode);
155
156 //查询硬件ID
157 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
158 public static extern int NTGetHardwareID(StringBuilder hardwareID);
159
160 //登录加密锁
161 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
162 public static extern int NTLogin(string NTpassword);
163
164 //存储区数据读取
165 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
166 public static extern int NTRead(int address, int Length, byte[] pData);
167
168 //存储区数据写入
169 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
170 public static extern int NTWrite(int address, int Length, byte[] pData);
171
172 //3DES解密
173 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
174 public static extern int NT3DESCBCDecrypt(byte[] vi, byte[] pDataBuffer, int Length);
175
176 //3DES加密
177 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
178 public static extern int NT3DESCBCEncrypt(byte[] vi, byte[] pDataBuffer, int Length);
179
180 //验证许可证
181 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
182 public static extern int NTCheckLicense(int licenseCode);
183
184
185
186
187 //登出加密锁
188 [DllImport("NT88.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
189 public static extern int NTLogout();
190
191
192 #endregion
193 }

以上涉及到的 NT88Mgr.dll 文件可以在磐石公司提供的开发资料中查找 ,也可以点击此处下载附件
磐石加密狗NT88管理层API的更多相关文章
- 加密狗的管理层API(C#代码)
using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServi ...
- 模拟美萍加密狗--Rockey2虚拟狗(二)
按好了WDK,看了一天的DSF例子GenericHID,直接头大了,就能改个VID,PID让美萍识别成R2的狗.其他的什么各种描述符,根本无从下手,怪不得网上没有驱动模拟的加密狗,确实太复杂了,特别像 ...
- 模拟美萍加密狗--Rockey2虚拟狗(三)
几经挣扎,我最终还是选择了虚拟设备的方法来模拟Rockey2加密狗.HID.DLL劫持+API劫持的办法技术上虽然简单些,但太繁琐了,不仅要转发大量的函数,还要Hook好几个API,向我这么懒的人可干 ...
- 模拟美萍加密狗--Rockey2虚拟狗(一)
目录(?)[+] 最近受朋友之托做了一个美萍智能电源控制的插件.美萍茶楼从2010版开始支持智能电源控制设备,就是开单.结账时自动开关相应房间的电器,不过官方的设备是有线的.朋友的店已经开了一段时 ...
- 使用USB Key(加密狗)实现身份认证
首先你需要去买一个加密狗设备,加密狗是外形酷似U盘的一种硬件设备! 这里我使用的坚石诚信公司的ET99产品 公司项目需要实现一个功能,就是客户使用加密狗登录, 客户不想输入任何密码之类的东西,只需要插 ...
- Rockey 4加密狗介绍
Rockey 4加密狗介绍 特点:该加密狗是单片机加密狗时代飞天公司的主力产品,R4一样继承了R2的硬件特征,具有全球唯一性硬件ID.R4内置了硬件随机数生成器,可以进行一些抗跟踪,或在硬件算法中参与 ...
- 老王教您怎么做cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗
cass7.1 8.0 9.1所有系列的复制狗 加密狗 破解狗本来是出于好奇看到网上有这样的东西,学了下感觉挺简单的,如果你是cass的初学者想仅仅是想学习这个软件,不想花大价格购买正版的,这个是可以 ...
- 模拟美萍加密狗--Rockey2虚拟狗(五)
虚拟狗开源后很多网友询问有关使用方法的问题,其实看我前四篇文章就应该了解怎样使用了,但还是写篇教程吧 [一].安装DSF (驱动模拟环境): 运行DSFx86Runtime.msi 如需改变安装目录请 ...
- .Net中Web增加加密狗管理
由于业务中最近需要使用到加密狗,增加对Web代码的管控,所以需要进行加密狗使用的研究 首先,对于没有接触使用过加密狗的人需要有个大致的认识,加密狗分为 MasterDog, 1.下载加密狗的开发套件, ...
随机推荐
- Android安全问题 抢先开机启动
导读:我们以如何抢先开机启动为例,来说明接收无序广播的静态广播接收器的接收顺序 (注意,文本只是陈述结果,所以叫结果篇,之后的文章再给出源码分析) 首先先说一下android中的广播和广播接收器 广播 ...
- 配置MySQL使用HugePages
前言:对于有Oracle运维经验的童鞋来说,如果服务器内存很大,一般都会设置HugePages,是因为如下原因:对于 Linux 操作系统,通过 Linux kswapd 进程和页表内存结构(针对系统 ...
- java的Serialization 机制
基本使用方法 Serialization是指把类或者基本的数据类型持久化(persistence)到数据流(Stream)中,包括文件.字节流.网络数据流. ...
- hdu 4502 吉哥系列故事——临时工计划(dp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4502 思路:一个简单的dp ,比赛时没做出来呢..... d[i]代表 到第i天时的最大值 #includ ...
- poj 1416 Shredding Company( dfs )
我的dfs真的好虚啊……,又是看的别人的博客做的 题目== 题目:http://poj.org/problem?id=1416 题意:给你两个数n,m;n表示最大数,m则是需要切割的数. 切割m,使得 ...
- LeeCode Algorithm #3 Longest Substring Without Repeating Characters
一开始以为是不连续的,其实要求子串是连续的.想法:two-pointer O(n)时间,再借助256大小的int数组.两个下标i,j(i<=j).对于i=0,找到最右侧的字符不重复的下标的后一位 ...
- bzoj1058: [ZJOI2007]报表统计
set.操作:insert(u,v)在u后面插入v,若u后面已插入过,在插入过的后面插入.mingap求出序列两两之间差值的最小值.minsortgap求出排序后的序列两两之间的最小值.用multis ...
- 高性能PHP支持静态类型
PHP+QB是一个可选的PHP虚拟机,它声称在性能上提供了数量级的提升.而负面影响就是它需要所有的内容都必须是静态类型,同时也对数组做了一些限制. 静态 类型声明 是通过PHPDoc语法的一个扩展添加 ...
- SGU 438 The Glorious Karlutka River =) ★(动态+分层网络流)
[题意]有一条东西向流淌的河,宽为W,河中有N块石头,每块石头的坐标(Xi, Yi)和最大承受人数Ci已知.现在有M个游客在河的南岸,他们想穿越这条河流,但是每个人每次最远只能跳D米,每跳一次耗时1秒 ...
- show slave status中的log_file / log_pos
在MySQL的master-slave或dual master的架构中,我们经常使用show slave status命令来查看复制状态. 这里涉及几个重要的日志文件和位置: Master_Log_F ...