
背景: 现在公司有一个需求,要求用前端 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#中的用处就仅仅是获取一个文件路径字符串,反编译后改掉逻辑也很简单的。 不过我感觉更科学的方式是直接换掉这个库 |