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

Project1

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

[有事请教] VA新纸老虎寻求测试(2022)

[复制链接]

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41492
在线时间
7590 小时
注册时间
2009-7-6
帖子
13502

开拓者贵宾

跳转到指定楼层
1
发表于 2022-4-23 14:33:02 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
CrackMeV2.zip (4.6 MB, 下载次数: 141)

测试工程如上,已脱离RTP
测试目标:通过任何手段获得工程中包含的所有游戏图片资源

其实是一个很古早的玩意儿了,但是现在才想起来拿出来改造用用,如果有效会同时发布原生RM和RGD的纸老虎一键打包版本

评分

参与人数 1+1 收起 理由
喜灰RPG游戏谜 + 1

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41492
在线时间
7590 小时
注册时间
2009-7-6
帖子
13502

开拓者贵宾

11
 楼主| 发表于 2023-9-3 03:16:35 | 只看该作者
BCJenbo 发表于 2023-9-3 02:55
你会释放这个吗?

目前看来,他的效果并不理想,所以暂时不考虑发布了
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
662
在线时间
47 小时
注册时间
2022-2-6
帖子
18
10
发表于 2023-9-3 02:55:01 | 只看该作者
你会释放这个吗?
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

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

开拓者

9
发表于 2022-4-24 13:27:32 | 只看该作者
本帖最后由 guoxiaomi 于 2022-4-24 13:50 编辑

我已经弃疗了,决定就用加密的zip格式,然后在Game.exe里某处藏一个密码算了……
(总觉得以前说过类似的话,不过这次是认真的了)

点评

额,那就要重写引擎了,比如:https://rpg.blue/thread-488007-1-1.html  发表于 2022-11-3 20:48
老哥,这种方式要怎么达成啊?  发表于 2022-11-3 08:39
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
272
在线时间
15 小时
注册时间
2021-9-4
帖子
5
8
发表于 2022-4-24 12:09:09 | 只看该作者
本帖最后由 xmbwg 于 2022-4-24 12:10 编辑
fux2 发表于 2022-4-24 11:18
层主效率太高啦
这份exe本身没有做过特别的处理,目前看来确实有些简单过头了
不过在何强度目前心里已有 ...


恩 因为包头解码后 文件的名字 索引 长度 密钥 都是明文了
也就不需要再去看那部分流程
一个小想法
可以用两个不同的hash函数 输入是文件名
一个生成标识符 存储在包头用于索引
一个生成密钥
也就是 包头没有文件名这部分信息
读取时先由hash1定位文件 再由hash2解码文件
这样就不存在通用解包器了
或者说和游戏的耦合度大大增加了
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
11140
在线时间
2064 小时
注册时间
2013-6-10
帖子
1516
7
发表于 2022-4-24 11:50:12 | 只看该作者
哇,你们都好厉害,令我大开眼界
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41492
在线时间
7590 小时
注册时间
2009-7-6
帖子
13502

开拓者贵宾

6
 楼主| 发表于 2022-4-24 11:18:13 | 只看该作者
xmbwg 发表于 2022-4-23 21:40
逻辑很清晰 甚至太清晰了 作为打包挺好的 但是加密强度比较弱
很久没逆向了 久违的参与一下
本来只是提取 ...


层主效率太高啦
这份exe本身没有做过特别的处理,目前看来确实有些简单过头了
不过在何强度目前心里已有数,感谢层主的协助!

(PS:其实之所以要求输出所有图片资源,是因为有一张图在游戏里没有用到,内存提取不方便
不过层主已经给出了完美答案)
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
9963
在线时间
4425 小时
注册时间
2005-10-22
帖子
6937

开拓者贵宾

5
发表于 2022-4-23 21:54:11 | 只看该作者
有突破RMVA那悲剧的3GB加密文件大小限制么?

点评

好耶~O(∩_∩)O  发表于 2022-4-24 17:01
自制的打包程序,所以显然不受限制  发表于 2022-4-24 11:13
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
272
在线时间
15 小时
注册时间
2021-9-4
帖子
5
4
发表于 2022-4-23 21:40:14 | 只看该作者


逻辑很清晰 甚至太清晰了 作为打包挺好的 但是加密强度比较弱
很久没逆向了 久违的参与一下
本来只是提取资源并不需要完全理清解码流程  因为可以在内存里取 但还是认真看完了 写了解码脚本
要不是RM已经卸载很久了 而且也比较忙 甚至想反打包一个data.fux2 用exe的解码函数去提取

近段时间科研日常深度学习 都不会写ruby和c了 用python应付一下啦

PYTHON 代码复制
  1. from pathlib import Path
  2. with open("Graphics.fux2", "rb") as f:
  3.     data = f.read()
  4. pointer = 8
  5. while any((b != 0 for b in data[pointer+0x10:pointer+0x14])):
  6.     key = data[pointer:pointer+2]
  7.     length = int.from_bytes(data[pointer+4:pointer+8], "little") * 2
  8.     start = int.from_bytes(data[pointer+8:pointer+0xC], "little")
  9.     filename = list(data[start:start+length])
  10.     for i in range(length):
  11.         filename[i] ^= key[i%2]
  12.     filename = str(bytes(filename), "utf-16").replace('\\', '/')
  13.     filename = Path(filename)
  14.     key = 0
  15.     fn = filename.stem
  16.     fn = list(fn.encode("utf-16"))
  17.     # 0xFF 0xFE
  18.     for i in range(2, len(fn), 2):
  19.         key = key * 0x83 + fn[i] + fn[i+1]*0x100
  20.         key &= 0xFFFFFFFF
  21.     length = int.from_bytes(data[pointer+0xC:pointer+0x10], "little")
  22.     start = int.from_bytes(data[pointer+0x10:pointer+0x14], "little")
  23.     img = list((int.from_bytes(data[start+k*4:start+k*4+4], "little") for k in range(length//4)))
  24.     imglist = []
  25.     for i, j in enumerate(img):
  26.         imglist.extend(list(int.to_bytes(j^key, 4, "little")))
  27.         key = key * 7 + 13
  28.         key &= 0xFFFFFFFF
  29.     img = bytes(imglist) + data[start+length//4*4:start+length]
  30.     filename.parent.mkdir(parents=True, exist_ok=True)
  31.     with open(filename, "wb") as f:
  32.         f.write(img)
  33.     pointer += 0x14

点评

真乃非常之人也  发表于 2022-4-24 11:51

评分

参与人数 1+1 收起 理由
fux2 + 1 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8619
在线时间
1464 小时
注册时间
2012-6-6
帖子
349
3
发表于 2022-4-23 21:34:43 | 只看该作者
终于圆了我多年前的梦想,终于黄鸡老哥要折腾新的纸老虎啦,其实有木有效不重要,简单地防止傻瓜解包就够了,网上有的rgss解包工具针对的是默认的包,没有刻意针对纸老虎,只要没人刻意针对纸老虎去做一键解包工具,其实这样也就够用了,不论怎么加密怎么保护,但毕竟游戏打开后终究还是要运行的
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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