设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2814|回复: 13
打印 上一主题 下一主题

[已经解决] 大佬们,用Steam发行游戏的时候怎么验证exe程序

[复制链接]

Lv2.观梦者

梦石
0
星屑
941
在线时间
66 小时
注册时间
2019-7-28
帖子
117
跳转到指定楼层
1
发表于 2020-7-18 12:33:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 我妻寒十 于 2020-7-18 12:43 编辑

如题,求助一下有没有大佬知道应该怎么做。可能这个很少有人知道吧……但还是不想放弃希望,想来问问。
大概就是用脚本验证exe文件的大小,否则别人换个exe就可以照样在脱离steam库的情况下运行游戏。

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
发表于 2020-7-18 17:39:49 | 只看该作者
本帖最后由 guoxiaomi 于 2020-7-18 17:49 编辑

想起了:https://rpg.blue/thread-476906-1-1.html
如果脚本不被攻破你可以对Game.exe进行crc32计算:
  1. File.open("Game.exe", "rb") do |f|
  2.   contents = f.read
  3.   size = contents.size
  4.   check_sum = Zlib.crc32(contents)
  5. end
复制代码

点评

好的谢谢大佬……TvT我现在就这么一个大腿可以抱了……  发表于 2020-7-19 21:59
晚上回复你……  发表于 2020-7-19 19:29
噗……能请大佬指点一下怎么用吗?我就是个脚本白痴,能帮我解决一下的话,万分感谢。  发表于 2020-7-19 12:19
不是……而且换exe如果还是载入了steam_api.dll也是无法脱离steam的  发表于 2020-7-18 20:22
谢谢大佬。只不过我脚本白痴……就想确认一下,这些我是直接新建一个脚本页丢进去就可以了吗?T_T  发表于 2020-7-18 18:14
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
941
在线时间
66 小时
注册时间
2019-7-28
帖子
117
3
 楼主| 发表于 2020-7-20 10:36:04 | 只看该作者
顶帖……
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

4
发表于 2020-7-21 03:54:51 | 只看该作者
本帖最后由 guoxiaomi 于 2020-7-21 04:06 编辑

来了,先说一下怎么验证exe程序。首先看这段代码:
  1. File.open("Game.exe", "rb") do |f|
  2.   contents = f.read
  3.   p size = contents.size
  4.   p check_sum = Zlib.crc32(contents)
  5. end
复制代码
加入到脚本里执行,可以得到size和check_sum,我这是RGDv1.5.4:

然后把代码改成:
  1. File.open("Game.exe", "rb") do |f|
  2.   contents = f.read
  3.   size = contents.size
  4.   check_sum = Zlib.crc32(contents)
  5.   if size != 482304 || check_sum != 1873674028
  6.     msgbox("NMSL")
  7.     exit()
  8.   end
  9. end
复制代码
如果size和check_sum不一样就弹窗然后直接退出游戏。这代码你也可以写到事件脚本里,给玩家一个惊喜。

然后说一下黄鸡的代码怎么用:https://rpg.blue/thread-476906-1-1.html
首先你把它的代码复制到你的脚本里,然后在后面补上一行:
  1. p Fux2::SteamTools.get_dll_checksum("steam_api.dll")
复制代码

记下这个输出的数据,比如是12800700。然后同样的做法,把刚刚那一行改成
  1. check_sum = Fux2::SteamTools.get_dll_checksum("steam_api.dll")
  2. if check_sum != 12800700
  3.   msgbox("NMSL")
  4.   exit()
  5. end
复制代码

当然你也可以伪装成找不到文件报错,或者打开一个开关自动执行公共事件,把玩家传送到监狱里……
  1. Bitmap.new("NMSL")
复制代码

点评

msgbox("We got a big bug here!")  发表于 2020-7-23 10:52
谢谢大佬!现在我还在搞DRM验证,第一步完事了就来试这个。到时候如果有问题……呃……我就再来问……orz(被打)  发表于 2020-7-21 06:49
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
941
在线时间
66 小时
注册时间
2019-7-28
帖子
117
5
 楼主| 发表于 2020-7-23 10:20:18 | 只看该作者
guoxiaomi 发表于 2020-7-21 03:54
来了,先说一下怎么验证exe程序。首先看这段代码:
加入到脚本里执行,可以得到size和check_sum,我这是RGD ...

对不起大佬,我太笨了。
在第一步就已经卡住了……
我把第一段代码不管放到哪里都没能像你提供的截图那样,获得这两个数据
是我什么地方做错了吗?

点评

卧槽好的,谢谢大佬TVT  发表于 2020-7-23 12:34
你需要在工程数据库打开控制台  发表于 2020-7-23 10:55
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 09:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表