背景: 现在公司有一个需求,要求用前端 vue 调用 C#写的数字签名的 dll 库,对文件进行签名。于是我就想到了部署一个服务端程序专门干签名这个事(将 dll 放在服务端进行远程调用),但是现在遇到一个问题:调用 dll 的 signature()方法后,会弹出一个 windows 对话框选择数字证书(会有交互),但是我想在想把它变成 webapi 的形式,通过 json 传输数据。 如何把 dll 库与调用者的交互,转换成接口的形式? 1.只有一个 dll ,没有 c#的源码 2.服务端程序是什么语言都行 C# Python ...
请教各位,有实现的可能吗?
1
thinkershare 2022-01-18 15:51:45 +08:00
没啥好的办法, 反编译 DLL, 修改内部逻辑, 或者干脆自己重写写签名逻辑, 直接写在前端后端都可以, 前端也有一堆签名库
|
2
ysc3839 2022-01-18 15:53:24 +08:00
发 DLL 来看看吧
|
3
xiangyuecn 2022-01-18 15:58:09 +08:00
目测逃不过反编译,要是反编译了,基本上就不用他这个 dll 了,目测随便手写一个都比它强,就像 1 楼讲的一样🐶
|
4
cppc 2022-01-18 17:51:19 +08:00 via iPhone
技术上可行,就是用类似做游戏外挂的技术。但是你最好弄轻松这样做的法律风险,你这样就是代替用户签名了,也失去了签名的意义
|
5
iseki 2022-01-18 18:01:33 +08:00
再弄个东西帮你操作对话框~~~
|
6
thinkershare 2022-01-18 18:27:01 +08:00
使用 Windows hooks 模拟人操作也不是不行
|
7
yuzhibopro 2022-01-18 18:43:49 +08:00
这个交互按钮有没有可以直接获取。
|
8
GeruzoniAnsasu 2022-01-18 18:54:34 +08:00
这个选文件的对话框是「打开文件」对话框?
如果是跟浏览器上传文件时弹的那个「打开文件」一样的东西,那么它在 c#中的用处就仅仅是获取一个文件路径字符串,反编译后改掉逻辑也很简单的。 不过我感觉更科学的方式是直接换掉这个库 |