上古卷轴 SKSE BSA文件加密插件 作者:五块半 特别感谢: 阳光整合 旋旋整合 小原子 乜璇璇 --------提出的宝贵意见。 小原子 亡灵.冥月 南雀一梦 小刀砍不动 --------帮忙测试,辛苦了! 这是 SKSE的一个插件,可以安装到上古卷轴天际模组中,无需特意安装它,SKSE脚本扩展组件就会自动载入它。 使用它的脚手架可以加密的BSA文件,当游戏启动(出现游戏公司Bethesda Game图标之前)被加密的BSA文件在。 内存中被重新还原.以此达到保护BSA文件内的资源不被抽取。 补充:2.0 NPlugin32/64 已经支持游戏运行时的文件随机读写,并且不会占用多的内存 [测试结果]: [兼容性] 1.你需要管理员权限,对没错就是Administrator,最廉价的获得方式就是以管理方式运行。 2.NPlugin64对应SKSE64位各版本(包括最新的),它不兼容32位程序。NPlugin32.dll对应SKSE32位的各版本,对应传奇版需要NPlugin32.dll,重制版需要NPlugin64.dll。 3.SKSE插件和游戏管理器无关,取决你是否通过skse_loader.exe启动游戏。 4.使用CK加载SKSE的时候NPlugin不会启动,这意味着,的BSA文件不能被还原.游戏进程可能会被挂起(卡住)。 5.你需要关闭某些类似于360安全卫士的进程拦截程序,因为SKSE插件使用了一些技术手段会被误报。 6.需要.NET Framework 4.5.2以上支持,后面会提到。 7.你的BSA文件扩展名必须小写,且不支持BSA单文件大于2G 8.MO管理器版本小于2.0的可能不兼容,导致内存错误,实测1.3.x的管理器无法使用 [安装] 1.Mod Organizer: 当你使用Mo管理你的模组的时候(适合整合包作者),这些模组应该位于Mods目录下,SKSE 插件的dll应位于: Mo\mods\你的插件文件夹\skse\plugins\NPlugin64/32.dll 如果你是个插件创作者,你也可以将他集成到你的插件中, SKSE 插件的NPlugin64/32.dll应位于: 你的插件文件夹\skse\plugins\NPlugin64/32.dll 2.不使用管理器: 如果你不使用游戏管理,直接启动skse_loader.exe,那么SKSE 插件的NPlugin64/32.dll应位于: 游戏目录\Data\skse\plugins\NPlugin64/32.dll [脚手架] 脚手架工具共分2种,32位和64位,使用哪种取决于选择的游戏平台 FreeBSATools.exe 是免授权加密工具,此工具32和64位通用 用来生成免授权加密模块sbd(Safe Binary Data)文件,执行加密插件会在BSA文件的下生成 被加密的BSA文件/skse/plugins/sbd/XXXXXX.sbd文件 SNBSATools.exe 是授权加密工具,此工具32和64位通用 用来生成授权加密模块rbd(Registry Binary Data)文件,创建密钥, 执行加密插件会在密钥文件同目录生成授权加密文件*.rbd Client32/64.exe 是客户注册工具,传奇版,辐射3使用Client32.exe 重制版,辐射4使用Client64 选择rbd文件的目录,(自动枚举此目录下所有rbd文件),输入注册码,注册工具注册目录下所有和注册码匹配rbd文件到客户注册表中 [更新] 如果你有网络的话,工具会自动更新到最新的版本。你无需再次下载,这个动作可能引起类似360安全卫士的监视软件的拦截,请将脚手架程序加入到白名单中或干脆关闭360安全卫士。 [使用] 1.免授权模式 如果你是模组的作者,你一定对有人白票你的劳动成果感到苦恼.但我们本着开放的态度,饭可以免费吃,但不要把电饭锅带走的精神,保护版权同时又可以免费使用原则: 现在你可以将不想让别人拷贝的资料,例如剧情脚本、贴图、头膜和其他素材使用打包到BSA文件,用脚手架(FreeBSATools.exe)进行加密。加密后他会生成一个补丁文件,后缀是*.sbd,位于: BSA文件所在目录\skse\plugins\sbd\BSA文件名称.sbd 还记dll的安装位置吗?复习一下,这里*.dll应该在 BSA文件所在目录\skse\plugins\NPlugin64/32.dll 如果你没有管理器: 游戏目录\Data\BSA文件名称.bsa 游戏目录\Data\skse\plugins\NPlugin64/32.dll 游戏目录\Data\skse\plugins\sbd\BSA文件名称.sbd 进入游戏和平常没有什么不同,试试用BSA提取工具打开BSA文件,会失败! 你的BSA文件中的素材被保护了.这不影响你作品的传播,任何人可以拷贝并且使用它.但无法提取BSA中的文件.FreeBSATools写入了一个唯一随机序列号到SBD和BSA文件中,就像身份证号,使得2个文件相匹配。 所以使用RBD文件中并不依赖文件名字, RBD文件名字可以改成任意名称(尽量避免和别人重名,对于重名的文件Mo管理会存在排序和覆盖问题),因此当你对同一个BSA加密时,每次生成的SBD文件和BSA文件配对使用。 2.授权注册模式 如果你希望出售你的插件,那么你需要给客户授权(注册码),而客户需要输入注册码,并将BSA文件在还原前确认客户已注册了这个插件,否则cpluin64/32插件会跳过这个BSA文件,那么进入游戏后就能确定会发生什么情况了。 Client.exe-客户注册工具 SNBSATools.exe-加密工具 3.加密工具SNBSATools: ★CDKEY文件: 要进行授权加密,你需要先创建一个密钥,保存到文件*.cdkey中.每个CDKEY会生成一套独有的注册码,他的格式类似XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX,不分大小写,数量几乎没有上限. 注册码的算法是CDKEY的MD5枚举数,后面RBD文件注册的时候会去推算这个注册码,CDKEY文件和RBD文件是一对,就像一把钥匙开一把锁.由CDKEY加密的插件都可以使用可推算成功的注册码,注册到客户机器上,这点请牢记。 如果你不知道CDKEY就无法推算出注册码,所以CDKEY文件要妥善保存.并记清那些加密的插件使用了,这个CDKEY。 ★RBD文件: RBD文件是一个安装包,跟位置无关,他提供了客户注册工具client需要的数据,使注册工具可以把数据注册到授权客户的注册表中,放哪都可以,也可以改名字,RBD是经过AES加密过的,如果你不知道密钥, 你无法解算它。暴力未加密比直接绑架管理员问密码难多了。敲黑白,注意了下面是重点:在SNBSATools中选择一个目录(建议直接粘贴地址),SNBSATools会枚举这个目录下所有的BSA文件, 如果发现BSA没有被加密,就会加入到列表中.执行加密插件按钮,SNBSATools会加密所有在左侧列表中的BSA文件(别说我没提醒你,如果你没做备份,这个过程无法还原), 会在密钥文件CDKEY目录下生成一个同名的*.rbd文件。 4.客户注册工具client 由于小原子的强烈要求,我修改了注册工具(我更倾向与只提供具体的rbd文件),现在你必须提供*.rbd的目录,注册工具client会搜索这个目录下的,所有RBD文件,所以建议这个目录别太深了,不然会卡界面。 提供给注册工具Client注册码,我前面提到了,他会推算注册码是否属于CDKEY,如果相等,会将本机硬件特征码(涉及CPU和主板)绑定到这个注册码上,将注册数据写到客户注册表中以下位置: 支持64位的系统: 32位注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Plugin32 64位注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Plugin64 喜欢动手的朋友可以写个管理工具 5.关于一机一码 由于需要在服务器上储存注册码和机器码,所以只提供生成5个注册码免费测试.如果需要更多绑定,请赞助我的服务器。或者你自己搞个服务器,找我写一套脚手架,这样你就有专属验证系统了 如果没有服务器则无法实现一机一码的绑定。空谈算法毫无意义。注册绑定的定义是,你不能在别的机器上使用这个注册码,来注册RBD文件了.但依然可以在本机使用已绑定的注册码来注册rbd文件。 [疑难解答/常见问题] a.编码问题 由于众所周知的问题,Bethesda Game和SKSE的作者都是用的英文系统,所以他们的程序都不支持Unicode字符编码,所以需要特别注意sbd文件不能用中文名。否则不知道会发生什么错误 b.工具无法启动 *需要使用管理员权限 *.NET Framework版本低,如果你是Win7 sp1 64位/32位的,你需要升级,因为win7默认自带的.NET Framework 4.0.0,你需要升级4.5.2,建议直接安装4.6以上版本越高越好,因为4.5和4.5.2是不同的. 如果你是win10 如果1800+版本,应该已经是.NET Framework 5了,基本上可以忽略这个问题了。需要最少安装不低于 .NET Framework 4.5.2 可以在开始菜单->运行->cmd.exe 输入dotnet --version 查看本机安装的版本号,如果低于4.5.2请升级.NET Framework c.游戏无法启动或跳出 这个问题比较复杂,具体表现就是,通过skse_loader.exe启动后,游戏进程挂起.直接结束或者过一会就结束了。 如果你加载插件模组里有加密的BSA,而不加载NPlugin64/32.dll会跳出.所以为了保证加密了Bsa的插件模组加载NPlugin64/32.dll插件,为了避免错误,推荐将NPlugin64/32.dll放在每个加密的插件的目录内: 加密BSA文件所在目录\skse\plugins\NPlugin64/32.dll 以免遗忘了. 先看下SKSE的日志,确认插件工作是正常的,不管32位还是64位都在: <My Documents>\My Games\Skyrim\SKSE\NPlugin64/32.log 找到NPlugin64/32.log 文件查看日志信息。 Load Package Count:XXX 表示插件一共加载了多少个插件解密模块 HOOK_SUCCESS:OK 表示插件工作正常 如果插件是正常的,与插件无关。 *检查sbd文件是否丢失了,导致有加密的bsa文件,没有补丁无法还原。 *检查有加密的BSA文件,没有被注册,却被加载到Mo中了,原则上插件会跳过这个BSA, 但系统依然会加载它的esp和相关依赖,当游戏里读到这个空的Bsa的时候就会跳出。 d.亡灵冥月遇到的故障 无法运行任何脚手架程序,启动游戏就崩溃 WMI是英文Windows Management Instrumentation的简写,通过使用WMI,我们可以获取本地或远程服务器的性能参数和进程运行情况,以及大部分硬件信息,但前提是运行的用户要有足够的权限,如administrator组用户等。 这也是做负载均衡所需要且比较方便快捷的途径。 wmi系统服务文件被篡改,这是一种叫做wmi劫持的流氓软件造成的,它会替换wmi服务的系统文件, 劫持浏览器起始页,始你的浏览器起始页始终指向指定的网址. 解决方法: 1、右击“我的电脑”,选择“管理”菜单,依次定位到“计算机管理(本地)→服务和应用程序→服务”项,在右边窗口中找到“Windows Management Instrumentation”一项,双击打开,在弹出的窗口中单击“停止”按钮。 2、进入本地磁盘的C:Windows\System32\Wbem\Repository目录,删除该目录下的所有文件后,重新启动计算机。登录后,系统会重新在该目录拷贝建立所需要的文件,并且自动启动刚才停止的WMI服务 这样恶意软件就被清除了 [关于日志] skse插件加载日志位于<我的文档>\My Games\Skyrim Special Edition\SKSE\skse.log 查找 checking plugin F:\XXXX\Skyrim\Data\SKSE\Plugins\NPlugin32/64.dll skse检测到NPlugin32/64.dll插件 可能会有如下结果: 例如:plugin F:\XXXX\Skyrim\Data\SKSE\Plugins\\NPlugin32.dll (00000001 NPlugin32 00000002) loaded correctly 翻译过来就是 1个NPlugin32.dll 版本2.0 正确加载 例如:plugin F:\XXXX\Skyrim\Data\SKSE\Plugins\\NPlugin32.dll (00000001 NPlugin32 00000002) reported as incompatible during query 翻译过来就是 1个NPlugin32.dll 版本2.0 不兼容,CK模式会显示这样的信息 例如:plugin F:\XXXX\Skyrim\Data\SKSE\Plugins\\NPlugin32.dll (00000001 NPlugin32 00000002) disabled, fatal error occurred while querying plugin 内存溢出或内存没有对齐, 这主要是因为EXCEPTION_EXECUTE_HANDLER 异常导致的 64位的日志文件位于:<我的文档>\My Games\Skyrim Special Edition\SKSE\NPlugin64.log 32位的日志文件位于: <我的文档>\My Games\Skyrim Special Edition\SKSE\NPlugin32.log 词条解释: NPlugin64/32:OK 插件加载开始 add sbd:Alternate Start - Live Another Life.bsa 添加了免授权模式 加密过的 Alternate Start - Live Another Life.bsa 的解密模块。 add rbd:Alternate Start - Live Another Life.bsa 添加了授权模式 加密过的 Alternate Start - Live Another Life.bsa 的解密模块。 Load Package Count:1 总共加载了 1个解密包 Unregistered Plugin: Alternate Start - Live Another Life.bsa 未注册的加密Alternate Start - Live Another Life.bsa文件。 HOOK_SUCCESS:Invalid! 插件无需加载 当 Load Package Count:0的时候发生,没有负载插件自动卸载释放资源。 HOOK_SUCCESS:OK! 插件加载成功! [提出意见] 一个人考虑问题难免有不周全的地方,以上也是朋友们不断斧正的结果。希望用到的朋友多提宝贵意见。 你加我QQ我可能看不到 请发邮件给我623237824@qq.com或system@songrongtop.cn
|