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

Project1

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

[通用发布] 防修改器策略之一

[复制链接]

Lv2.观梦者

梦石
0
星屑
687
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

跳转到指定楼层
1
发表于 2014-1-23 00:31:24 手机端发表。 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 end55rpg 于 2014-1-23 17:50 编辑

10行的代码实现两个功能 防变速
不过应该是防菜鸟的。
RUBY 代码复制
  1. Thread.new{ loop{tt=Time.now
  2. t=Graphics.frame_rate/10;sleep t
  3. exit unless (-0.5..0.5)===Time.now-t-tt}}

由于失去焦点后取时间间隔变得异常大,而且
由于线程的sleep在RM失去焦点后仍然运作,所以和取Time一样,于是没采用sleep当time,而用信用机制,下面是正确率很高的代码:
RUBY 代码复制
  1. #防修改器变速   byEnd55rpg
  2. module Graphics
  3.   Update = method("update")
  4.   @t=Time.now
  5.   @crash=0
  6.   @cnsd=0
  7.   def self.update(*arg)
  8.     if @cnsd == Graphics.frame_rate
  9.       unless (1..1.1)===(Time.now-@t)
  10.         @crash += 100 if Time.now-@t < 10
  11.       end
  12.       if @crash > 200
  13.         exit
  14.       end
  15.       @t=Time.now
  16.       @cnsd=0
  17.     else
  18.       @crash-=2 if @crash >= 2
  19.       @cnsd+=1
  20.     end
  21.     Update.call(*arg)
  22.   end
  23. end


测试后,基本可以使用,在几秒内会结束使用变速的游戏
求讨论可行性与实际性


防止修改内存代码较复杂。。。。待讨论

评分

参与人数 1星屑 +30 收起 理由
lsu666666 + 30 塞糖

查看全部评分

Lv1.梦旅人

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
帖子
643
2
发表于 2014-1-23 22:40:07 | 只看该作者
防修改内存,只要显示的值和实际值不同就可以了
比如画面显示值是HP100,HP实际值50,到-50时才判定死亡
最近在研究XAS
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
687
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

3
 楼主| 发表于 2014-1-24 15:25:20 手机端发表。 | 只看该作者
赛露休斯 发表于 2014-1-23 22:40
防修改内存,只要显示的值和实际值不同就可以了
比如画面显示值是HP100,HP实际值50,到-50时才判定死亡 ...

但是你这种做法是修改来让数据找不到
而修改器也是从为了找到方面进化的
比如模糊查询就能破解你这种办法
所以防止力度不太强

我觉得该从检测被修改方面设防
而且你那个也不好写通用代码,无法弄成直接可用的脚本,要对指定数据处理
所以我说写出来很麻烦
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
帖子
643
4
发表于 2014-1-24 19:54:29 | 只看该作者
end55rpg 发表于 2014-1-24 15:25
但是你这种做法是修改来让数据找不到
而修改器也是从为了找到方面进化的
比如模糊查询就能破解你这种办法 ...

感觉从根本上设防很难,还是要从那些被经常改的值入手
可以做修改检查,比如定义一个专门负责监视金钱数的变量,他的值始终保持和金钱的关联(比如始终是 金钱*3+4),在每一笔增减金钱时他也跟着计算,如果有人内存修改了金钱,显然没有经过增减金钱的方法而直接内存修改,变量就能检查到不同了

点评

所以比较好的办法是这两个量一减一增,然后逻辑判断相加为常数,模糊找就找不到2个了,除非丧心病狂模糊搜寻两种  发表于 2014-1-25 11:12
那工程量不是很大,什么1号角色HPMP啊 5号角色EXP啊, 而且如果一直模糊搜到两个结果的话玩家会不会直接把两个都锁了- -。  发表于 2014-1-24 22:56

评分

参与人数 1星屑 +90 收起 理由
end55rpg + 90 我很赞同

查看全部评分

最近在研究XAS
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
帖子
2309

贵宾

5
发表于 2014-1-24 20:32:08 | 只看该作者
本帖最后由 Sion 于 2014-1-24 20:34 编辑

修改器这种玩家自己用来降低游戏性的东西,直接无视就行。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
91 小时
注册时间
2012-3-3
帖子
65
6
发表于 2014-1-24 22:53:49 | 只看该作者
Sion 发表于 2014-1-24 20:32
修改器这种玩家自己用来降低游戏性的东西,直接无视就行。

不过我觉得这种技术还是值得我们研究的{:2_273:}
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

7
发表于 2014-1-25 00:12:49 | 只看该作者
直接把能力废除是最好的选择= =
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
581
在线时间
106 小时
注册时间
2011-2-19
帖子
82
8
发表于 2014-1-25 23:29:04 | 只看该作者
只要把默认的(*2+1)改成[(*6+7)/8]不就妥了。。。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
687
在线时间
791 小时
注册时间
2011-10-20
帖子
2394

开拓者

9
 楼主| 发表于 2014-1-26 10:50:48 手机端发表。 | 只看该作者
a386881 发表于 2014-1-25 23:29
只要把默认的(*2+1)改成[(*6+7)/8]不就妥了。。。

貌似可以用模糊查出来,然后再搜一个,搜出来的两个数和实际现实的两个解一次方程组就可以找出加密匙吧

点评

记得。。。好像查看game还是哪就直接找到了这个密匙  发表于 2014-1-27 09:36
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
581
在线时间
106 小时
注册时间
2011-2-19
帖子
82
10
发表于 2014-1-26 12:48:25 | 只看该作者
end55rpg 发表于 2014-1-26 10:50
貌似可以用模糊查出来,然后再搜一个,搜出来的两个数和实际现实的两个解一次方程组就可以找出加密匙吧 ...

……好麻烦啊……要是真的用实时检测被修改的话,占用的内存可能会相当可怕。
说真的,比起研究防作弊,研究一下防破解对游戏更重要。貌似没有几个RPG游戏是有防作弊的,依然卖的很好。
即使你防止了作弊,但是人家拆了你的包,照样作弊 :( 所以防破解才是最重要的。
比较好的防破解方法是在加密你的游戏之前往Graphics文件夹里扔几个强力点的病毒(喂!太坏了!)
还是一打开文件夹自动运行的那种。
另,要是防内存修改的话比较麻烦,但是防止存档修改还是好办的。
按下存档的时候,用脚本把金钱经某种加密运算后存进某个变量,把每个变量经某种加密运算后存在另一个空变量里(就是弄个两三份加密副本)。物品也弄。
读取存档的时候逐个对金钱、变量、物品加密变量运算,与物品、金钱、变量进行比对,若不符合,则删除所有存档,跳错弹出,同时用生成TXT语句在目录下生成.bat的病毒,并运行之。
……我是不是太坏了……

评分

参与人数 1星屑 +45 收起 理由
end55rpg + 45 你太坏了

查看全部评分

不行了我得去找只猫吸一吸,你们先聊着别等我了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 06:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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