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

Project1

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

[原创发布] 现在我们来看看如何在MV中开启控制台

[复制链接]

Lv2.观梦者

梦石
0
星屑
581
在线时间
106 小时
注册时间
2011-2-19
帖子
82
跳转到指定楼层
1
发表于 2017-10-23 06:04:52 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
嗯众所周知,MV的Game.exe本质上是一个包了一层厚厚的套子的nwjs.exe今天翻阅MV源码的时候偶然看到这么几行


大体上意思就是如果环境是nwjs,并且运行参数中有test,那么就可以按F8开控制台。
那么如何判断命令参数中有test呢


答案是简单粗暴地把location.search去掉第一个字符,然后按照&做分割切开,依次判断是否有一项是test。
十分粗暴,可以优化。不过想想命令行一般也不会太长所以也不是很要紧。但这不是我们今天讲的内容。

我们很轻易地就能知道浏览器环境中,只要你index.html?test就可以了(虽然因为浏览器环境并不是nwjs所以无法呼出控制台。不过如果你浏览器还不自带控制台,赶紧换Firefox吧)
但是如果用Game.exe该怎么办呢。

我们很自然地知道,RMMV的编辑器的测试游戏肯定是test模式的,并且试了试确实是。
那么我写一个程序,伪装成Game.exe,然后读取一切能读取的输入(包括命令行和stdin),不就知道是编辑器是怎么操控了么。
逻辑很简单。


然后塞进来,别忘了备份原来的。



然后随便开个工程,按测试


结果如上
什么意思呢
就是说,其实可以用--url作为命令行参数去操Game.exe,从而强行指定url。
理想很丰满,事实呢?我们可以实验一下
将你steam库中的某个RMMV游戏(
)的启动选项设置为
--url=file:///www/index.html?test
然后运行
你就可以按F8呼出控制台了。
然后你就可以为所欲为为所欲为了。
嘛那就来个最简单实惠的应用吧
控制台输入
$gameParty._gold = 99999999;
然后你发现你很多钱
就是这样。
顺带,那个呼出控制台的代码,是rmmv官方自带的没错啦,但是那些开发游戏的人是真的不会去翻源码诶。
反正如果我开游戏坑的话是不会乐意让玩家改改命令行参数就能开控制台debug啦XD




不行了我得去找只猫吸一吸,你们先聊着别等我了

Lv2.观梦者

梦石
0
星屑
581
在线时间
106 小时
注册时间
2011-2-19
帖子
82
2
 楼主| 发表于 2017-10-23 09:10:43 | 显示全部楼层
fux2 发表于 2017-10-23 07:47
这倒是很早就被发现的一个问题,在库文件里把这段呼出代码去掉可以初步避免。
另外windows上

先膜鸡巨。。嘛库里留个测试功能倒是没什么,但是库里留个测试功能并且调调命令行参数就能进去就有点说不太过去了。
另外wmic似乎是检索了所有运行时的进程然后比对程序文件名,然后加载命令行?看起来好厉害啊,完全没想过还有这种东西。。。

点评

推荐 System Essentials 系列的 Process Explorer ~ 对付进程的很好用的一个小工具。  发表于 2017-10-23 18:28
起初我也不知道wmic的存在,还是靠spy++获得运行中进程的运行参数,后来某天想查实现方法的时候发现了wmic。  发表于 2017-10-23 17:06
不行了我得去找只猫吸一吸,你们先聊着别等我了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-16 02:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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