超纯锑 发表于 2023-8-6 21:48

难怪修改游戏能挣钱

买的单机游戏更新DLC后原来的cheat table文件部分功能失效
该修改文件的原作者很久没更新了,我想着试试把他的文件改成适用于新版的
我对修改游戏的印象还停留在最基本的搜索特定内存地址上
于是发现cheat table里面写的东西,彻底看不懂
搜了搜才知道,不止需要指针等知识,还得懂点汇编语言
指针之类内容,本科计算机语言基础课多多少少还教过(虽然全忘了)
可汇编语言这样的知识,非计算机专业的人,一般就很少会接触了吧
难怪新闻经常看见,日本又逮了修改游戏数据获利的人
如果修改游戏都需要这么多前置知识,那选择花钱省心确实看起来挺有吸引力的

火焰的攻击 发表于 2023-8-6 21:51

RyuguRena 发表于 2023-8-6 22:10

其实吧,主要还是前驱工作找基址,至于汇编不需要多复杂的知识

灼眼艾莉亚 发表于 2023-8-6 22:21

纯体力活啊,
那点指针和汇编语言知识你问chatgpt就行

Tring 发表于 2023-8-6 22:26

本帖最后由 Tring 于 2023-8-6 22:29 编辑

只要你愿意,花2个小时就能学会的东西,我不想叫他专业知识。

花钱去给手游打工,然后再花钱把手游花的时间节省回来,现代游戏人的浪漫。

trentswd 发表于 2023-8-7 08:40

偷偷告诉你一个事情,计算机专业码农很多人从毕业开始就没碰过汇编了,你让他们去写这个他们也不会()

—— 来自 Xiaomi 2304FPN6DC, Android 13上的 S1Next-鹅版 v2.5.4

Lisylfn 发表于 2023-8-7 08:47

但是修改游戏赚钱那些大多数也就是拿别人做好的表来用吧

—— 来自 S1Fun

和菜头 发表于 2023-8-7 08:52

从来没听说过存档用汇编语言存的,可以告诉我这两者有什么关系吗

纯战士 发表于 2023-8-7 08:55

不熟悉的东西,自己学了弄,首先你都不知道最后是不是一定能成,很可能浪费了时间最后还不行。即便是一定能成,也之需要学两小时,那还有你愿不愿意学这鬼东西的问题,以及两小时你的劳动时间其实价值比找人弄还高的问题。
这一切,花钱立刻解决了,既不用费时间,还不用研究你根本不想学的东西,其实非常值得,那当然有市场了。

Viteeee 发表于 2023-8-7 09:05

yurejian_2 发表于 2023-8-7 09:27

你要是找的人会给你修改还算好的,但很有可能对方根本就是个什么屁都不懂的二道贩子~当然了,其实也无所谓,什么时间宝贵、浪费钱的都是屁话,玩游戏最重要的还是要自己开心就好,想那么多有的没的才是真的浪费人生。

maidmiku 发表于 2023-8-7 11:38

和菜头 发表于 2023-8-7 08:52
从来没听说过存档用汇编语言存的,可以告诉我这两者有什么关系吗

内存下断锁血之类的,不是修改数值,而是直接把扣生命那段直接给注释掉

sodr 发表于 2023-8-7 17:11

话是没错的,91WII出的教程连IDAPRO都用上了,这属实大炮打蚊子了

wasian 发表于 2023-8-7 17:26

我可以很确定告诉你,卖修改的人99%没有学过相关专业知识也没有亲自制作过修改软件,而且100%全都是二道贩子

ArthurFyc 发表于 2023-8-7 17:38

trentswd 发表于 2023-8-7 08:40
偷偷告诉你一个事情,计算机专业码农很多人从毕业开始就没碰过汇编了,你让他们去写这个他们也不会()

—— ...

我澄清一下,毕业前也不写

超纯锑 发表于 2023-8-7 19:31

Tring 发表于 2023-8-6 22:26
只要你愿意,花2个小时就能学会的东西,我不想叫他专业知识。

花钱去给手游打工,然后再花钱把手游花的时 ...

你是天才咯,2小时就能零基础学会。
我搜到b站讲 商店物品数量修改的实例,2小时对我来说是不够理解其中内容的。
考虑到只有不足一成网民接受过本科教育,我认为大部分零基础的普通人,做不到2小时就掌握如此复杂的修改技术。

超纯锑 发表于 2023-8-7 19:40

和菜头 发表于 2023-8-7 08:52
从来没听说过存档用汇编语言存的,可以告诉我这两者有什么关系吗

我也没说讨论的只有修改存档。
你看的日本逮捕牟利者的新闻,其中有些是修改存档的,但还有许多修改不是靠改存档实现,比如怪打主角不扣血、主角对怪一击必杀等,除了搜内存修改血或攻击力之外,还有其他方法。这些方法中有一些可能用到了汇编知识。

Tring 发表于 2023-8-7 19:45

超纯锑 发表于 2023-8-7 19:31
你是天才咯,2小时就能零基础学会。
我搜到b站讲 商店物品数量修改的实例,2小时对我来说是不够理解其中 ...

你看的教程搞不好都是高中生出的呢。
这东西要是能和本科教育挂钩,那淘宝还真不可能有这么多卖的。

唐二想吃火锅 发表于 2023-8-7 19:48

借楼问一下,有一些unity做的游戏,已经有多国语言本地化了,我想提取翻译的文本信息自己修改润色一下,但用AssetStudio查不到相关资源,Assembly-CSharp.dll和metedata里也没有………是因为加密了吗?我明明觉得这是最简单的修改了

超纯锑 发表于 2023-8-7 19:50

wasian 发表于 2023-8-7 17:26
我可以很确定告诉你,卖修改的人99%没有学过相关专业知识也没有亲自制作过修改软件,而且100%全都是二道贩 ...

你说的这个是渠道方面了,我知道有无良商家举报其他资源好自己占据渠道,不过我感慨的是另一回事,patreon站上修改表的原作者(应该有相关知识)没时间更新,他写的东西有门槛,我这种外行想抄作业也得先学前置技能。

Tring 发表于 2023-8-7 19:54

超纯锑 发表于 2023-8-7 19:50
你说的这个是渠道方面了,我知道有无良商家举报其他资源好自己占据渠道,不过我感慨的是另一回事,patreo ...
一篇煎牛排教程里大谈特谈美拉德反应,虽然能增加教程的专业性,但是对一般人煎出好吃的牛排没有任何帮助。

你借此说厨师需要先点满有机化学作为前置技能,就没啥意思了。

AlerHugues 发表于 2023-8-7 19:56

唐二想吃火锅 发表于 2023-8-7 19:48
借楼问一下,有一些unity做的游戏,已经有多国语言本地化了,我想提取翻译的文本信息自己修改润色一下,但 ...

dll里面是怎么设置文本的,多国语言本地化照理来说应该是用的键值对,反编译出完整项目文件,再全局搜索localization language之类的试试,大部分情况都肯定存在assetstudio里面了

—— 来自 S1Fun

Zuranium 发表于 2023-8-7 19:58

ce也是有简单的和困难的吧,困难的ce需要写脚本,简单的改下数值就好了

昵称怎么起 发表于 2023-8-7 20:18

唐二想吃火锅 发表于 2023-8-7 19:48
借楼问一下,有一些unity做的游戏,已经有多国语言本地化了,我想提取翻译的文本信息自己修改润色一下,但 ...

每个开发组习惯放的地方不一样,实在找不到就steam讨论组/评论或者直接发邮件问开发组。

超纯锑 发表于 2023-8-7 20:24

Tring 发表于 2023-8-7 19:54
一篇煎牛排教程里大谈特谈美拉德反应,虽然能增加教程的专业性,但是对一般人煎出好吃的牛排没有任何帮助 ...

我觉得你是用最简单的,类似我以前对修改的刻板印象,“查找血量的特定内存地址,然后锁定它”的难度,当做我认为门槛高的那些了。
我看到一些复杂修改,已经接近制作mod了。高中生也可以做,但想做出达到目标的mod或修改表,前置训练并不是2小时能搞定的。


超纯锑 发表于 2023-8-7 20:35

Zuranium 发表于 2023-8-7 19:58
ce也是有简单的和困难的吧,困难的ce需要写脚本,简单的改下数值就好了

是的。比如我遇到一个失效脚本,大致这样:

{$lua}
if (process ~= nil) then
if not loadingmono then
    loadingmono=true
    LaunchMonoDataCollector()
end
while not monoSymbolList do sleep(10) end --monoSymbolList could be nil
while not monoSymbolList.FullyLoaded do sleep(10) end
end
{$asm}
NightScene.EventUtility.EventManager.LoseAllCombo:
db 90 C3
aobscanmodule(Combo_Get_AOB,GameAssembly.dll,8B 6E 20 8B DD) // should be unique
alloc(newmem,$1000,Combo_Get_AOB)
label(code)
label(return)
newmem:
cmp ,#76
jge code
mov ,#76
code:
mov ebp,
mov ebx,ebp
jmp return
Combo_Get_AOB:
jmp newmem
return:
registersymbol(Combo_Get_AOB)

NightScene.EventUtility.EventManager.LoseAllCombo:
db 40 56
Combo_Get_AOB:
db 8B 6E 20 8B DD
unregistersymbol(Combo_Get_AOB)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll.il2cpp+2E40A6
GameAssembly.dll.il2cpp+2E4093: 48 8D 0D CE 6E 86 02- lea rcx,
GameAssembly.dll.il2cpp+2E409F: C6 05 1E 7A A1 02 01- mov byte ptr ,01
// ---------- INJECTING HERE ----------
GameAssembly.dll.il2cpp+2E40A6: 8B 6E 20            - mov ebp,
// ---------- DONE INJECTING----------
GameAssembly.dll.il2cpp+2E40AB: 8B CF               - mov ecx,edi
}我想把它改回能用的状态,起码得读懂它的思路吧,比如搜索什么特征、如何从多个符合特征的调用中筛出目标调用、在什么位置注入修改内容、实现目标功能的注入内容应该怎么写…
这些内容,我不认为零基础的人能2小时掌握。

唐二想吃火锅 发表于 2023-8-7 20:35

AlerHugues 发表于 2023-8-7 19:56
dll里面是怎么设置文本的,多国语言本地化照理来说应该是用的键值对,反编译出完整项目文件,再全局搜索l ...

非常感谢回复!
我用dnSpy搜了一下zh_,然后出现这么多……
我需要一个个往里面翻么?主要是我其实也看不太懂这里面的代码…………



唐二想吃火锅 发表于 2023-8-7 20:38

昵称怎么起 发表于 2023-8-7 20:18
每个开发组习惯放的地方不一样,实在找不到就steam讨论组/评论或者直接发邮件问开发组。 ...

谢谢,如果实在不行,我就去steam社区问问~

Tring 发表于 2023-8-7 20:41

本帖最后由 Tring 于 2023-8-7 20:43 编辑

超纯锑 发表于 2023-8-7 20:24
我觉得你是用最简单的,类似我以前对修改的刻板印象,“查找血量的特定内存地址,然后锁定它”的难度,当 ...
1,大部分MOD也不需要反汇编知识。
2,2小时能学会的知识远超你想象。
3,你要谈专业就跟你谈点专业的,IL2CPP本来就不是游戏标配,用这东西的游戏本就不算多。对于C#的来说你学这些反汇编知识没有任何用途。
4,淘宝上拿来卖钱的东西,9成满足你想象的修改的刻板印象。
5,能不能挣钱从来只看有没有市场需求,不看有没有技术含量。

UCXCU 发表于 2023-8-7 20:47

这点上三大妈论坛那些一直研究各种修改还无私的分享挺不错的

—— 来自 S1Fun

cfeng123 发表于 2023-8-7 20:56

和菜头 发表于 2023-8-7 08:52
从来没听说过存档用汇编语言存的,可以告诉我这两者有什么关系吗
因为没有PDB,所以调试时找具体数值所在的内存地址需要看汇编
一般修改器都不是存档修改,而是实时内存修改

库德里尔 发表于 2023-8-7 21:41

写这个东西的技术含量是客观存在的,我也觉得有很多人愿意花点钱买开箱即用的修改而非自己研究
最讨厌的是利用这一点,把【免费散发】的东西拿去卖钱的逼人

超纯锑 发表于 2023-8-7 21:55

Tring 发表于 2023-8-7 20:41
1,大部分MOD也不需要反汇编知识。
2,2小时能学会的知识远超你想象。
3,你要谈专业就跟你谈点专业的,IL ...

都开始谈“专业”了,我觉得你大概是幸存者偏差地,以自己和身边的对相关知识有基础的人为样本,给出一个2小时能学会的观点。
建议你去找点零基础的普通人,看看他们2小时能搞定多少,能不能顺利做完CE的内置教程。
2小时能超乎我想象地学会多少,我确实不知道,毕竟都超过我想象了嘛。

Tring 发表于 2023-8-7 21:56

本帖最后由 Tring 于 2023-8-7 21:59 编辑

超纯锑 发表于 2023-8-7 21:55
都开始谈“专业”了,我觉得你大概是幸存者偏差地,以自己和身边的对相关知识有基础的人为样本,给出一个 ...
你可以问问楼里的朋友,学会用CE改游戏花没花到2小时。

把教程做完这种东西从来就不是学会使用的标准。
教程之所以是教程,正因为他会涉及到很多正常人根本用不到的东西。

真要谈环境偏差,我都不会说2小时这么多。

昵称怎么起 发表于 2023-8-7 21:57

超纯锑 发表于 2023-8-7 20:35
是的。比如我遇到一个失效脚本,大致这样:
我想把它改回能用的状态,起码得读懂它的思路吧,比如搜索什 ...

unity游戏改dll/asset一了百了,还折腾ce不是为难自己,dnspy移花接木可比ce写脚本简单。

超纯锑 发表于 2023-8-7 22:01

库德里尔 发表于 2023-8-7 21:41
写这个东西的技术含量是客观存在的,我也觉得有很多人愿意花点钱买开箱即用的修改而非自己研究
最讨厌的是 ...

是的,在patreon站、某些mod站上花点钱支持作者,我觉得对没精力琢磨的玩家和有精力提供技术的作者都是好事,可惜真作者往往被无良商家薅羊毛。

Tring 发表于 2023-8-7 22:05

昵称怎么起 发表于 2023-8-7 21:57
unity游戏改dll/asset一了百了,还折腾ce不是为难自己,dnspy移花接木可比ce写脚本简单。 ...

IL2CPP是一种把C#编译的IL码转成CPP然后编译成机器码的技术。
技术的初衷是为了增加代码运行效率,
但是现在有些游戏拿这玩意来做防破解。

于是碰到用了IL2CPP的玩意,只用dnspy就看不到源码了,只能反汇编。

但是只拿这个东西来谈专业性就挺莫名了。

小岛幸子 发表于 2023-8-7 22:17

超纯锑 发表于 2023-8-7 20:35
是的。比如我遇到一个失效脚本,大致这样:
我想把它改回能用的状态,起码得读懂它的思路吧,比如搜索什 ...

看了下也不是特别难理解,首先是搜索指令 8B 6E 20 8B DD,https://defuse.ca/online-x86-assembler.htm#disassembly2 可以还原成汇编

0:8b 6e 20                mov    ebp,DWORD PTR
3:8b dd                   mov    ebx,ebp

刚才搜到的地址处指令替换成
Combo_Get_AOB:
jmp newmem

跟着执行就是比较 cmp ,#76 ,大于76就正常执行,小于就调整到76再执行

还有一个 NightScene.EventUtility.EventManager.LoseAllCombo: 原本 db 40 56对应
0:40                      inc    eax
1:56                      push   esi
改成了db 90 C3 ,不执行直接跳过了
0:90                      nop
1:c3                      ret

库德里尔 发表于 2023-8-7 22:28

我总是觉得Tring和楼主两个是在说同一个事情的两个方面呢。没必要吧。

根据目标程序的不同,做出修改的知识需求不同:正常的
有些人愿意去学一些知识,并且能迅速掌握到能根据自己的需求做修改:正常的
有些人持有足够做出修改的知识,拿来无偿分享,或者赚点小钱:正常的
有些人愿意花点钱购买或者赞助,开箱即用省下麻烦:正常的

而这三个“有些人”,一定人数都不少,但又怎么样呢,不矛盾啊。

所以我的回帖也说了,我只是不喜欢把简单搜索就能找到的,本来是无私分享的东西拿来挂淘宝卖,赚信息差钱的人;不过这也建立在我有一定的公网搜索水平,且愿意仔细寻找的基础上啊。

ギナ 发表于 2023-8-7 22:33

搞了快一年修改器的来说下心得,CE想学入门其实蛮简单的,但想学到能去wemod卖钱那真不是两个小时就能做到的,而且修改的最大难点压根不是学汇编语言之类的而是那群一心想要教玩家玩游戏的国产游戏开发者,我已经见过不少为了防修改给你整全程云存档加数据检测的游戏了,这点连鬼佬都有不少吐槽的

—— 来自 meizu 16s Pro, Android 9上的 S1Next-鹅版 v2.5.4
页: [1] 2
查看完整版本: 难怪修改游戏能挣钱