深思4加密狗问题,懂的朋友麻烦帮帮忙,分少。。。谢谢

dfgdfg火锅53的风格 dfgdfg火锅53的风格 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在写S4,在用到它的API的S4Execute时候郁闷到了!先看看我的代码
下面是移植到狗里的代码:

#include "ses_v3.h"
void main()
{ char strOpenFail[50]="open Fail";
char strReadFail[50]="read Fail";
char outBuffer[50];
HANDLE hfile;
BYTE ret=0;
ret=_open(0xa005,&hfile);
if(ret!=SES_SUCCESS)
{
_set_response(sizeof(strOpenFail),strOpenFail);
_exit();
}
ret=_read(hfile,0,50,outBuffer);
if(ret!=SES_SUCCESS)
{
_set_response(sizeof(strReadFail),strReadFail);
_exit();
}
_set_response(sizeof(outBuffer),outBuffer);
_exit();
}

下面是C#里面的S4Execute操作:

private void btnConnectS4_Click(object sender, EventArgs e)
{
S4Open(ref s);
uint ret;
byte[] Pin = { 0x31,0x32, 0x33, 0x34, 0x35,0x36, 0x37, 0x38,
0x31,0x32, 0x33, 0x34, 0x35,0x36, 0x37, 0x38,
0x31,0x32, 0x33, 0x34, 0x35,0x36, 0x37, 0x38};

//verify dev PIN
ret = S4VerifyPin(ref s, Pin, 24, S4_DEV_PIN);
if (ret == 0x00) //SUCCESS 0x00
{
MessageBox.Show("开发级权限验证成功");
}


uint ret1, BytesReturned = 0;
byte[] inBuffer = Encoding.Default.GetBytes("");
byte[] outBuffer = new byte[200];
ret1 = S4Execute(ref s, "d001", inBuffer, (uint)inBuffer.Length, outBuffer, 200, ref BytesReturned);
MessageBox.Show("返回码:" + ret.ToString() + " 返回长度:" + BytesReturned.ToString());
}

我要实现的效果是:
点击PC程序写入文件(已实现,未贴出),然后由于SES才能读取文件,所以把代码植入狗内,运行SES系统函数_read,再把结果_set_response返回给pc,但是我S4Execute是执行成功了的,返回的是0,也就是ret是0,但是BytesReturned也是0(BytesReturned是返回的值的长度)。。。郁闷啊。写入狗内的是对了的,因为我用c来写是可以获取到的,
下面是c里面的代码(IDE:vc6.0)。

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include "sense4.h"

/*bubble sort function removed. Add EliteIV invoking code. */
void call_sense4(char *,char *, int);

/*main procedure*/
void main()
{
char test[50]="";
call_sense4("d001", test, 50);
printf("%s\n",test);
}

void call_sense4(char *fid, unsigned char *buff, int len)
{
SENSE4_CONTEXT ctx = {0};
SENSE4_CONTEXT *pctx = NULL;
unsigned long size = 0;
unsigned long ret = 0;

S4Enum(pctx, &size);
if (size == 0)
{
printf("EliteIV not found!\n");

return;
}

pctx = (SENSE4_CONTEXT *)malloc(size);
if (pctx == NULL)
{
printf("Not enough memory!\n");
return;
}

ret = S4Enum(pctx, &size);
if (ret != S4_SUCCESS)
{
printf("Enumerate EliteIV error!\n");
free(pctx);
return;
}

memcpy(&ctx, pctx, sizeof(SENSE4_CONTEXT));
free(pctx);
pctx = NULL;

ret = S4Open(&ctx);
if (ret != S4_SUCCESS)
{
printf("Open EliteIV failed!\n");
return;
}

ret = S4ChangeDir(&ctx, "\\");
if (ret != S4_SUCCESS)
{
printf("No root directory found!\n");
S4Close(&ctx);
return;
}

ret = S4VerifyPin(&ctx, "12345678", 8, S4_USER_PIN);
if (ret != S4_SUCCESS)
{
printf("Verify user PIN failed!\n");
S4Close(&ctx);
return;
}

ret = S4Execute(&ctx, fid, buff, len, buff, len, &size);
if (ret != S4_SUCCESS)
{
printf("Execute EliteIV exe failed!\n");
S4Close(&ctx);
return;
}

S4Close(&ctx);

return;
}

...全文

相关推荐

深思及各种加密狗初始化及写入工具。

包里好几种实始化和写入工具,下载后自行选择安装,有深思的,也有其它的,自行试验

yanxianggang

深思4加密狗故障排查实战:驱动、授权与复制认知全解析

加密狗是软件授权体系中常见的硬件密钥容器,通过内部智能卡芯片执行加解密运算,实现比普通U盘更高级的授权保护。深思4作为国产加密锁代表,广泛应用于EPLAN、IAR嵌入式工具链及激光切割机控制软件等工业场景。其芯片具备唯一序列号与动态密钥机制,既提升了安全性,也导致故障排查时“驱动未识别”“加密狗已损坏”等报错常让人无从下手。本文从硬件防护结构与软件交互机制入手,梳理了EPLAN报错、IAR驱动安装失败、授权不匹配等典型问题的解决路径,同时厘清关于复制加密狗的技术局限与法律风险,最后给出驱动管理、物理维护及健

兴盛优选

深思4加密狗原理与故障排查:从驱动到授权全解析

USB加密锁是工业软件和开发工具中常见的授权载体,通过硬件与软件之间的动态校验保护正版授权。在EPLAN、IAR等专业工具中,加密狗工作链路涉及USB设备识别、驱动加载、运行库调用及授权状态读取,任何一环异常都会导致“设备未找到”“授权已损坏”等典型故障。掌握驱动安装、服务状态检查、授权文件备份等基础排障方法,能显著提升工业主机运维效率。从激光切割控制系统到嵌入式开发环境,加密狗管理已成为企业软件资产维护的重要部分。本文以深思4为例,梳理其基本原理、驱动异常处理、EPLAN报错排查及企业台账管理,帮助工程师

这个世界有猫饼

组态王|装深思驱动把电脑装蓝屏了,靠这一招救回了系统

安装组 态 王软件时要注意不要从官网下载,可以找技术要一下,特别系统是Win11操作系统的朋友,装深思锁驱动容易出现蓝屏。技术说是Win11专业版会出现这个问题,但我这是Win11家庭版,结果安装驱动的时候也出现了蓝屏。我哩个乖乖,可把我吓坏了,这电脑是有日子没蓝屏了,这下千万别让我重装系统啊。尝试卸载最新的质量更新,结果不行,还是进不去系统,重启后依然进入蓝屏界面。本来电脑上安装的组态王7.5 SP3版本的,是破解版,自己学习用。尝试了一下,开发态可以,结果运行项目时无法运行,于是放弃了。

雷工笔记

深思4加密狗彻底研究

淘宝300元买来的深思S4狗数据研究工具整套,有基础的可以研究一下,深思S4的底层及写锁基本就是靠这些工具提取及开发的!

精准造价2016
评论 3
收藏 已收藏
分享
返回顶部
dfgdfg火锅53的风格
C# 111,129 成员 642,538 内容