popdes 发表于 2023-3-30 13:34

c#程序怎么结合USB加密狗才能真正防破解?

众所周知, c#程序容易被反编译出源代码,
软件里有几个自己研究的算法目前比较好用, 不想被人看到怎么实现的, 于是考虑使用usb加密狗保护下
c#程序用vmp3.6虚拟混淆下, 程序内部如果只是简单的读取加密狗时间过期没有进行if判定,
那么有心人只需要简单的找到return false的地方, 跳转下就绕过了.
我看有人说加密狗要用好需要和狗进行交互才能真正防破解,
想问下, 这个交互应该怎么做?
应该不是简单的狗里写入一些字符, 然后程序里读出来比较吧?
如果时读出来给程序内部用, 那么应该怎么实现呢? 怎么给程序用?

psvajaz 发表于 2023-3-30 15:09

加密狗主要工作是用于授权,在C#中需要防破解或者反编译还是要考虑使用商用壳

yanaying 发表于 2023-3-30 15:34

你可以在加密狗里面写asm的二进制代码,或者弄个公式字符串。或者关键字符串之类的。

supnet 发表于 2023-3-30 15:52

矛说没有我扎不破的盾
盾说没有扎破我的矛

yzyyy 发表于 2023-3-30 16:03

没有迫不的程序

3yu3 发表于 2023-3-30 16:07

关键算法写在c++写的dll里加VMP壳。

ychdd 发表于 2023-3-30 16:23

破解与防破解,其实就是矛与盾的关系。。。。。。。。

wincao 发表于 2023-3-30 16:36

个人理解是分两部分:
首先,在C#程序中调用加密狗API,实现对加密狗的读写操作。在C#程序中添加加密狗验证逻辑,只有在加密狗存在的情况下才能运行程序。

然后,使用代码混淆器,将程序中的代码进行混淆,使得反编译后的代码难以阅读和理解。或者使用加密器,将程序中的关键代码进行加密,使得反编译后的代码无法运行。或者使用虚拟机保护程序,将程序运行在虚拟机中,使得反编译后的代码无法运行。

HAINING 发表于 2023-3-30 17:35

有矛就有盾,没有绝对的事,商用壳一样的,只能防君子

popdes 发表于 2023-3-31 11:36

wincao 发表于 2023-3-30 16:36
个人理解是分两部分:
首先,在C#程序中调用加密狗API,实现对加密狗的读写操作。在C#程序中添加加密狗验 ...

现在就是这样用的, 用论坛里提供的vmp3.6加壳,
操作的时候vmp里添加[虚拟+变异]进程, 有些进程会导致运行报错, 所以也不敢选所有进程,
加壳后的c#代码扔进dnspy确实看不到源码了,
页: [1] 2
查看完整版本: c#程序怎么结合USB加密狗才能真正防破解?