干货分享 | 在TSMaster中加载基于DotNet平台的SeedKey

2024-04-08 17:12

本文主要是介绍干货分享 | 在TSMaster中加载基于DotNet平台的SeedKey,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在UDS诊断过程中,会涉及到安全访问的问题,也就是所谓的Seed&Key。TSMaster 诊断模块支持通过.dll文件载入 Seed&Key 算法用于安全访问解锁。在最近发布的TSMaster 2024.03版本中不仅支持了C/C++,Delphi等语言封装的DLL文件,也新增支持了基于DotNet平台如C#,VB.Net等语言编写的DLL,高效兼容不同平台生成的安全访问dll,为工程师带来更便捷的使用体验。

在 TSMaster 安装目录中,提供了C++和C#两种编程语言封装 Seed&Key 算法的Visual Studio模板工程。用户基于此模板工程开发即可得到能够直接加载的 DLL 函数。

本文关键字:UDS、Seed&Key算法DLL模板工程、C++、C#

目录

Catalog

1. C++封装Seed&Key算法

2. C#封装Seed&Key算法

一、C++封装Seed&Key算法

1. 打开 TSMaster 安装目录下 Seed&Key 接口工程所在的路径(图1)。用户可以拷贝该工程添加自己的 Seed&Key 算法。

图片

图1

2. 如果使用C++封装Seed&Key 算法成DLL文件,可以选择Win32DLL->GenerateKeyEx路径下的工程并打开。

图片

图2

3. 目前,要想被 TSMaster 的诊断模块直接加载,该 DLL 必须实现工程内seedNKeyDiag.cpp文件中四种函数接口中的其中一种:

图片

图片

图3

4. 使用接口1编写测试代码(图4),选择Release模式,选择X86平台,右键项目生成解决方案。

图片

图片

图片

图4

5. 生成解决方案后,在当前工程文件夹下的x86->Release目录可以看到刚刚生成的DLL文件。

图片

图5

6. 加载生成好的DLL文件,使用DLL校验器,判断自己加载的 DLL接口是否正确。

图片

图6

二、C#封装Seed&Key算法

1. 使用C#封装Seed&Key 算法的步骤与使用C++封装的步骤类似,选择DotNet->GenerateKeyEx路径下的工程并打开。

图片

图7

2. 打开工程后,可以在uGenerateKeyExNet.cs源文件中看到目前所支持的三种C#接口类型,实现如下三种接口中的其中一个接口即可。

图片

图片

图8

3. 使用接口1编写测试代码,选择Release,再选择重新生成解决方案。

图片

图片

图9

4. 生成解决方案后,在当前工程文件夹下的bin>Release目录可以看到刚刚生成的DLL文件。

图片

图10

5.加载生成好的DLL文件,勾选DoNET选项,使用DLL校验器,判断自己加载的 DLL接口是否正确。

图片

图11

这篇关于干货分享 | 在TSMaster中加载基于DotNet平台的SeedKey的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/886141

相关文章

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺