返回列表 发帖

[系统相关] 使用批处理获取硬件来做一机一码问题

请教一下各位,由于一个编译的文件只能通过在里面写一个批处理来实现运行时会输出这个批处理来实现对当前文件的运行,没有更好的办法来调用外部编写的程序来做到更安全的加密保护。无奈只能有批处理来实现。
正文:大致就是获取电脑主板序列号跟CPU序列号来对比当前电脑的是否一致,对比如果不一致则删除已经执行出来的文件,如果正确则结束。原理目前就是那么简单,但是有大佬说这样并不安全,可以通过拦截我的批处理来修改自身电脑硬件信息。关于批处理来做这个一机一码各位有更好的方法吗?

回复 2# flashercs
问题是比较难,因为这个编译的文件由软件触发执行,相当于dll的文件,当执行后会在目标文件夹生成一个其它格式的文件,然后由再把那个文件命名后缀为bat,最后折行这个批处理,所以这个文件会快速暴露两次出来,速度很快,看不见或者手动复制不了,用文件监控来复制就可以把这两个文件复制出来。所以即使是改名成cmd了,这个文件也是落地了

TOP

回复 5# czjt1234 那个主文件是通用文件,是二次开发的,因为不是正版软件所以没法用到官方的加密方式,只能通过写入批处理来执行,现在需要解决的是我怎么样写批处理才能防止别人通过看到里面的硬件信息后强行吧自己电脑的硬件信息写成一样达到识别效验的办法,有哪个硬件号是不能通过其它软件修改的,比如修改后电脑出现蓝屏什么的,这个方法就有效避免了这个问题。毕竟做不到很好的保护只能通过风险来避免大规模传播,我目前只通过主板序列号跟CPU序列号来比较,显然不是最好的办法,寻求更好的帮助

TOP

回复 8# czjt1234 这个参考信息不错,那就剩下for /f "tokens=2 delims==" %%a in ('wmic csproduct get UUID /value') do set "current_uuid=%%a"
for /f "tokens=2 delims==" %%a in ('wmic cpu get processorid /value') do set "current_pid=%%a"这两段写进批处理可以把这些代码先加密吗,不让显示原代码,需要做一个障眼法,不然还是可以知道硬件信息对照

TOP

返回列表