加密狗装置的读取与应用

这个程序示例展示了如何使用加密狗设备,并获取其唯一ID。它通过DAMPlusAppApis库来查找、打开加密狗,并读取其ID。接着,它使用Netbios函数获取本地计算机的MAC地址,但未实际展示获取IP地址的函数。程序最后根据获取的数据,尝试导航到多个不同的URL,这些URL用于验证加密狗的存在并可能进行后续操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

unit untMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw, StdCtrls,DAMPlusAppApis,NB30,WinSock,
  AppEvnts,ActiveX;
type
  PASTAT = ^TASTAT;
  TASTAT = record
    adapter : TAdapterStatus;
    name_buf : TNameBuffer;
  end;
type
  Tmain = class(TForm)
    WebMain: TWebBrowser;
    ApplicationEvents1: TApplicationEvents;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
  private
    { Private declarations }
    FOleInPlaceActiveObject: IOleInPlaceActiveObject;
    Function GetMac :String;
    Function GetIP  :String;
  public
    { Public declarations }
  end;

const
  MCW_EM = DWord($133f);
var
  main: Tmain;

implementation

{$R *.dfm}

procedure Tmain.FormShow(Sender: TObject);
var
  AppID,cmd1,cmd2,cmd3,cmd4 :Integer;
  liRtn :Integer;//返回结果值
  lwID  :array [0..15] of Char;
  lsMac :String;//网卡Mac地址
  lsIP  :String;//IP地址
begin

//设置加密狗参数
  AppID := 4294967295;//应用程序ID号
  cmd1 := 6082; //代理号,十进制数,16进制为17C2
  cmd2 := 54719;//客户号,十进制数,16进制为D5BF
  cmd3 := 65535;//分组号,十进制数,16进制为FFFF
  cmd4 := 65535;//序列号,十进制数,16进制为FFFF
  //查找狗
  {liRtn :=  DAMPlusAppApis.DOGFIND(AppID);
  if liRtn = 0 then
  begin
    Application.MessageBox('请连接加密狗!','系统提示',mb_ok or mb_iconinformation);
    Application.Terminate;
    Exit;
  end;
  //打开狗
  liRtn := DAMPlusAppApis.DOGOPEN(cmd1,cmd2,cmd3,cmd4);
  if liRtn <> 0 then
  begin
    Application.MessageBox('请连接加密狗!','系统提示',mb_ok or mb_iconinformation);
    Application.Terminate;
    Exit;
  end;
  //读出狗的唯一ID
  liRtn := DAMPlusAppApis.DOGUID(lwID);
  if liRtn <> 0 then
  begin
    Application.MessageBox('读取狗标识失败!','系统提示',mb_ok or mb_iconinformation);
    Application.Terminate;
    Exit;
  end;   }
  //屏蔽delphi外壳与IE之间的错误发生
  Set8087CW(MCW_EM);
  //取出上网网卡的Mac和IP
  //lsMac := GetMac;
  //lsIP  := GetIP;
  //WebMain.Navigate('http://zhumadian.hacjr.cn:8081/weihu/hahaha.jsp?jiamigou=' +lwID+'&mac=' +lsMac+'&ip=' +lsIP);
  //WebMain.Navigate('http://192.168.0.1:7001/weihu/hahaha.jsp?jiamigou=' +lwID);
  //WebMain.Navigate('http://172.17.1.12:7001/weihu/hahaha.jsp?jiamigou=1');
  //WebMain.Navigate('http://zhumadianyz.hacjr.cn/weihu/hahaha.jsp?jiamigou=' +lwID+'&mac=' +lsMac+'&ip=' +lsIP);
  //WebMain.Navigate('http://zhumadianyz.hacjr.cn/weihu/hahaha.jsp?jiamigou=9890649DCF504148');
  //WebMain.Navigate('http://pingdingshan.hacjr.cn');
  //WebMain.Navigate('http://testzmd.hacjr.cn/weihu/hahaha.jsp?jiamigou=' +lwID+'&mac=' +lsMac+'&ip=' +lsIP);
  //D705D29AC94546CF
  //WebMain.Navigate('http://testzmd.hacjr.cn/weihu/hahaha.jsp?jiamigou=D705D29AC94546CF&mac=' +lsMac+'&ip=' +lsIP);
  //WebMain.Navigate('http://testzmd.hacjr.cn/weihu/hahaha.jsp?jiamigou=D705D29AC94546CF');
  //WebMain.Navigate('http://211.161.130.150:7001/weihu/hahaha.jsp?jiamigou=' +lwID+'&mac=' +lsMac+'&ip=' +lsIP);
  //WebMain.Navigate('http://zhengzhou.hacjr.cn:7001/weihu/pxhahaha.jsp?jiamigou=' +lwID+'&mac=' +lsMac+'&ip=' +lsIP);
  //WebMain.Navigate('http://hebi.hacjr.cn/weihu/hahaha.jsp?jiamigou=' +lwID+'&mac=' +lsMac+'&ip=' +lsIP);
  //WebMain.Navigate('http://kaifeng.hacjr.cn/weihu/hahaha.jsp?jiamigou=1&mac=' +lsMac+'&ip=' +lsIP);
  //WebMain.Navigate('http://shangqiu.hacjr.cn:8081/weihu/hahaha.jsp?jiamigou=' +lwID+'&mac=' +lsMac+'&ip=' +lsIP);
  //WebMain.Navigate('http://luoyang1.hacjr.cn/weihu/hahaha.jsp?jiamigou=1');
  //WebMain.Navigate('http://zhumadian.hacjr.cn/weihu/hahaha.jsp?jiamigou=' +lwID+'&mac=' +lsMac+'&ip=' +lsIP);
  //WebMain.Navigate('http://luohe.hacjr.cn/weihu/hahaha.jsp?jiamigou=1');
  //WebMain.Navigate('http://anyangpx.hacjr.cn/weihu/pxhahaha.jsp?jiamigou=1');
  //WebMain.Navigate('http://puyang.hacjr.cn/weihu/hahaha.jsp?jiamigou=' +lwID+'&mac=' +lsMac+'&ip=' +lsIP);
  //WebMain.Navigate('http://jiyuan.hacjr.cn/weihu/hahaha.jsp?jiamigou=1');
  //WebMain.Navigate('http://218.29.85.226:8081');
  //WebMain.Navigate('http://zhengzhou.hacjr.cn:7001/weihu/pxclienthahaha.jsp?jiamigou=1');
  //WebMain.Navigate('http://anyang.hacjr.cn:8081');
  //WebMain.Navigate('http://luoyang.hacjr.cn:8081');
  //WebMain.Navigate('http://a');
  //WebMain.Navigate('http://puyang.hacjr.cn:8081');
  //WebMain.Navigate('http://nanyang.hacjr.cn:8081/weihu/pxhahaha.jsp?jiamigou=1');
  //WebMain.Navigate('http://nanyang.hacjr.cn:8081/weihu/pxhahaha.jsp?jiamigou=1');
  //WebMain.Navigate('http://nanyang.hacjr.cn:8083');
  WebMain.Navigate('http://zhengzhou.hacjr.cn:7001/weihu/hahaha.jsp?jiamigou=1');
end;


procedure Tmain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  DAMPlusAppApis.DOGCLOSE;
  Action := caFree;
end;

function Tmain.GetMac: String;
var
  ncb : TNCB;
  s:string;
  adapt : TASTAT;
  lanaEnum : TLanaEnum;
  i, j, m : integer;
  strPart, strMac : string;
begin
FillChar(ncb, SizeOf(TNCB), 0);
  ncb.ncb_command := Char(NCBEnum);
  ncb.ncb_buffer := PChar(@lanaEnum);
  ncb.ncb_length := SizeOf(TLanaEnum);
  s:=Netbios(@ncb);
  for i := 0 to integer(lanaEnum.length)-1 do
  begin
    FillChar(ncb, SizeOf(TNCB), 0);
    ncb.ncb_command := Char(NCBReset);
    ncb.ncb_lana_num := lanaEnum.lana[i];
    Netbios(@ncb);
    Netbios(@ncb);
    FillChar(ncb, SizeOf(TNCB), 0);
    ncb.ncb_command := Chr(NCBAstat);
    ncb.ncb_lana_num := lanaEnum.lana[i];
    ncb.ncb_callname := '*               ';
    ncb.ncb_buffer := PChar(@adapt);
    ncb.ncb_length := SizeOf(TASTAT);
    m:=0;
    if (Win32Platform = VER_PLATFORM_WIN32_NT) then
    m:=1;
    if m=1 then
    begin
    if Netbios(@ncb) = Chr(0) then
      strMac := '';
      for j := 0 to 5 do
      begin
        strPart := IntToHex(integer(adapt.adapter.adapter_address[j]), 2);
        strMac := strMac + strPart + '-';
      end;
      SetLength(strMac, Length(strMac)-1);
    end;
  if m=0 then
    if Netbios(@ncb) <> Chr(0) then
    begin
      strMac := '';
      for j := 0 to 5 do
      begin
        strPart := IntToHex(integer(adapt.adapter.adapter_address[j]), 2);
        strMac := strMac + strPart + '-';
      end;
      SetLength(strMac, Length(strMac)-1);
    end;
  end;
  result:=strmac;

end;

function Tmain.GetIP: String;
type
    TaPInAddr = array [0..10] of PInAddr;//定义内存地址类地数据对象
    PaPInAddr = ^TaPInAddr; //分配内存
var
  phe  : PHostEnt;//声明对象
  pptr : PaPInAddr; //声明对象
  Buffer : array [0..63] of char; //定义数组,为缓冲区
  I    : Integer; //临时整型变量
  GInitData      : TWSADATA; //声明对象
begin
  WSAStartup($101, GInitData);
  Result := '';
  GetHostName(Buffer, SizeOf(Buffer));
  phe :=GetHostByName(buffer);
  if phe = nil then Exit;
  pptr := PaPInAddr(Phe^.h_addr_list);
  I := 0;
  while pptr^[I] <> nil do begin
    if i=0
    then result:=StrPas(inet_ntoa(pptr^[I]^))
    else result:=result+':'+StrPas(inet_ntoa(pptr^[I]^));
    Inc(I);
  end;
  WSACleanup;

end;


procedure Tmain.FormCreate(Sender: TObject);
begin
    Application.OnMessage := ApplicationEvents1Message;
end;

procedure Tmain.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
const
   DialogKeys: set of Byte = [VK_LEFT, VK_RIGHT, VK_BACK, VK_UP, VK_DOWN,
   $30..$39, $41..42, $44..$55, $57, $59..$5A];
var
   iOIPAO : IOleInPlaceActiveObject;
   Dispatch : IDispatch;
begin
   if (webmain = nil) then
   begin
     Handled := System.False;
     Exit;
   end;

   Handled := (IsDialogMessage(webmain.Handle, Msg) = System.True);

   if (Handled) and (not webmain.Busy) then
   begin
     if FOleInPlaceActiveObject = nil then
     begin
       Dispatch := webmain.Application;
       if Dispatch <> nil then
       begin
         Dispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO);
         if iOIPAO <> nil then
           FOleInPlaceActiveObject := iOIPAO;
       end;
     end;

     if FOleInPlaceActiveObject <> nil then
     begin
       if ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP)) and
       (Msg.wParam in DialogKeys) then
         // nothing - do not pass on the DialogKeys
       else
         FOleInPlaceActiveObject.TranslateAccelerator(Msg);
     end;
   end;

 

end;


initialization
OleInitialize(nil);

finalization
OleUninitialize;

 

end.

usb通用加密狗型号查看工具,读狗插件,部分 加密狗/加密锁 VID识别加密狗具体型号USB\\VID_096E&PID;_0001 飞天诚信(ftsafe) 飞天4有驱型 加密锁 ROCKEY 4 Rockey4 R4HID\\VID_096E&PID;_0006 飞天诚信(ftsafe) 飞天4无驱型 加密锁 rockey 4 nd ROCKEY4ND R4ndUSB\\VID_096E&PID;_0201 飞天诚信(ftsafe) 飞天2无驱型 加密锁 rockey 2 ROCKEY2 R2USB\\VID_096E&PID;_0304 坚石诚信(Rockey) ET199 Token ET199USB\\VID_096E&PID;_0303 坚石诚信(Rockey) ET99 Token ET99USB\\VID_096E&PID;_0201 飞天诚信(FTSafe) Rockey 2 加密狗,无驱型USB\\VID_096E&PID;_0202 飞天诚信(FTSafe) Rockey 3 智能狗,无驱型USB\\VID_096E&PID;_0205 飞天诚信(FTSafe) Rockey 1 智能狗,无驱型USB\\VID_096E&PID;_0207 飞天诚信(FTSafe) Rockey 1 智慧型,无驱型USB\\VID_096E&PID;_0209 坚石诚信(FTSafe)    ARM 时钟智能狗USB\\VID_096E&PID;_0403 飞天诚信(ftsafe) 飞天6无驱型 加密锁 rockey6 smart R6USB\\VID_83D3&PID;_3773 域天(域之天) 域之天 域天 专业型/经济易用型 加密锁 USB\\VID_3689&PID;_8762 域天(域之天) 域之天 域天 密码型 加密锁 USB\\VID_1199&PID;_8282 域天(域之天) 域之天 域天 简单型 加密锁 USB\\VID_1BC0&PID;_1001 深思洛克(SenseLock) 灵锐 I(Living) 加密狗,无驱型USB\\VID_1BC0&PID;_8101 深思洛克(SenseLock) 灵锐 定制加密狗,无驱型USB\\VID_04B4&PID;_4A58 深思洛克(SenseLock) 深思 3(sense3)加密狗,无驱型USB\\VID_04B4&PID;_4A59 深思洛克(SenseLock) 深思 3(sense3)加密狗,有驱型USB\\VID_1BC0&PID;_8013 深思洛克(SenseLock) 精锐 E(Elite-E)智能狗,无驱型USB\\VID_0471&PID;_485D 深思洛克(senseLock) SenseIV2.x 深思洛克 sense4 senseIV 深思4 有驱USB\\VID_0471&PID;_485E 深思洛克(senseLock) SenseIV2.x 深思洛克 sense4 senseIV 深思4 无驱USB\\VID_1312&PID;_2012 域天(域之天)域之天 域天 32位智能型 易用型智能锁 加密锁 无驱USB\\VID_1312&PID;_1912 域天(域之天)域之天 域天 32位智能型(有驱型)USB\\   VID_1312&PID;_2012 域天(域之天)域天(域之天)简单智能型USB\\VID_3689&PID;_3689 EncryptPE 订制型(域天)EPE OEM加密狗 域天密码型 EncryptPE订制型 USB\\VID_5042&PID;_FFFF 安全芯 schip 安全芯UKF-002USB\\VID_08E2&PID;_0002 赛孚耐(SafeNet) safenet microdog UMI 彩虹加密狗 微狗USB\\VID_08E2&PID;_0004 赛孚耐(SafeNet) safenet softdog UDA 彩虹加密狗 软件狗USB\\VID_08E2&PID;_0005 赛孚耐(SafeNet) 精灵狗UGA(GeniusDog),有驱型USB\\VID_08E2&PID;_0006 赛孚耐(SafeNet) safenet GrandDog 宏狗UGRAUSB\\VID_08E2&PID;_0008 赛孚耐(SafeNet) safenet SuperDog 超级狗USB\\VID_04B9&PID;_0300.DeviceDesc="SafeNet USB SuperPro/UltraPro" USB\\VID_04B9&PID;_0301.DeviceDesc="SafeNet USB Security Security Token" USB\\VID_04B9&PID;_0302.DeviceDesc="SafeNet USB Security Security Token" USB\\VID_04B9&PID;_0303.DeviceDesc="SafeNet USB Security Security Token&   quot; USB\\\\VID_04B9&PID;_0304.DeviceDesc="SafeNet USB Security Security Token" USB\\VID_04B9&PID;_8000.DeviceDesc="SafeNet Sentinel Hardware Key" USB\\VID_04B9&PID;_8001.DeviceDesc="SafeNet Sentinel Hardware Key RTC" USB\\VID_04B9&PID;_8002.DeviceDesc="SafeNet Sentinel Hardware Key Mega-Memory" USB\\VID_04B9&PID;_8003.DeviceDesc="SafeNet Sentinel Hardware Key Mega-Memory RTC" USB\\VID_04B9&PID;_8004.DeviceDesc="SafeNet Sentinel Dual Hardware Key" USB\\VID_04B9&PID;_8005.DeviceDesc="SafeNet Sentinel Dual Hardware Key RTC"USB\\VID_0925&PID;_A508 北京磐石诚信NT系列加密狗USB\\VID_7F5E&PID;_DE5D 广州飞盾NT系列加密锁USB\\VID_5042&PID;_???? 江波龙(NetCom) 安全芯(SChip) 加密狗,有驱型USB\\VID_5149&PID;_???? 江波龙(NetCom) 易锁(SimpleKey)加密狗,无驱型   USB\\VID_0925&PID;_7816 世纪龙脉(Century Longmai) NOX 时钟狗,无驱型USB\\VID_0925&PID;_9627 世纪龙脉(Century Longmai) NOX+ 单机狗,无驱型USB\\VID_0925&PID;_7A13 世纪龙脉(Century Longmai) DAM2+网络狗,无驱型USB\\VID_0925&PID;_5906 世纪龙脉(Century Longmai) NOX 定制狗,无驱型USB\\VID_0925&PID;_6B05 世纪龙脉(Century Longmai) NOX 加密狗,无驱型USB\\VID_0925&PID;_7A21 世纪龙脉(Century Longmai) NOX2 加密狗,无驱型USB\\VID_0925&PID;_7122 世纪龙脉(Century Longmai) DAM2+加密狗,无驱型USB\\VID_0925&PID;_5624 世纪龙脉(Century Longmai) DAM2 加密狗,无驱型USB\\VID_0925&PID;_8705 世纪龙脉(Century Longmai) NOX5 加密狗 智能狗,无驱型USB\\VID_0925&PID;_7504 世纪龙脉(Century Longmai) NOX5 主锁USB\\VID_0529&PID;_0001 阿拉丁(Aladdin) HASP HL Time 有驱型USB\\VID_0529&PID;_0001 阿拉丁(Aladdin) HandLock 有驱型USB\\VID_0830&PID;_2002 和升达 SK-USB180 无驱型USB\\VID_5149&PID;_EACE 杭州唯赛 易锁(Simple Key) 无驱型USB\\VID_   6A75&PID;_9801 上海十条电子 JSP-C USB Key 有驱型USB\\VID_10F7&PID;_8469 MegaLock 无驱型USB\\VID_064F&PID;_0BD8 WIBU WIBU RU+加密狗,有驱型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值