3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 侠客前传 | 刺客信条 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 9252|回复: 35
打印 上一主题 下一主题

[原创] [终于明白了祖传优化的意义][肯读汇编代码的萌新来辣][CT脚本(抛砖引玉砸人版)][请版主【不要】设置回复可见][请大家积极参与讨论,不要灌水,谢谢]

[复制链接]

63

主题

974

帖子

3328

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
420
金元
16184
积分
3328
精华
3
注册时间
2014-11-13

3DM MOD站(黄金)

跳转到指定楼层
主题
发表于 2019-3-31 15:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 qweytr_1 于 2019-4-3 13:41 编辑

4c59fbb8

在开始之前,我希望解释一下我失败的经过,这款游戏真的不愧是祖传优化……
用imul计算整除除法我也是头一回见(原理,a/b=a*[b^(-1)],而[b^(-1)]mod 18446744073709551616是可以预先算出来存起来的,于是神奇的imul成功地将0x669C/0x21转化成了0x669C*0xF83E0F83E0F83E1)
以及,4c59fbb8是我追码时候做的esp记录,后来发现,手工记录显然不如CE记录有效,而x86的辣鸡结构不能直接内存对拷任你本事通天大都要过一遍寄存器——这就给CE的trace功能一个很强大的支持,你可以先trace,保存trace文本,然后用notepad++之类的工具打开,进行搜索

首先谢过fearlessrevolution.com的CT表,以及论坛@pad123 的无私汉化,没这些,我大概只能从头开始啃了

闲话少说,开始正文……

首先放一个“体验极差”:
81 FA 3F 42 0F 00 7E 4A C7 01 3F 42 0F 00
改成
81 FA 3F 42 0F 00 90 90 C7 01 3F 42 0F 00

nop掉一个jle,如果不出意外,四大源素会变成999999
仔细阅读这段代码,不难作出
物品不减:
<




这个CT表的目标是,提升临时帮工们的素质,每次只产出十几个也太无力了些,明明头像是辣么萌的妹纸,分明萌是第一生产力啊~
为了生产力,我们首先需要找到生产力的算法

尝试以通草产量搜索,未果,不得以,找出以前写CE炼金的精神,开始啃汇编码

注意到产量与适性应是正相关的,而本作适性又与基础数值挂钩,于是以基础数值为基础,开始读代码
于是,我读到了祖传优化……比如imul做除法,又比如,长长一大段不知所云,再比如,栈内元素从来不用,rsp常常括号内挂着+30标志……也没谁了

追码有一个特别技巧,右键,跟踪,然后让CE生成一串跟踪堆栈之类的东西,而后不要用CE,直接存起来。文本编辑器打开保存文件之后Ctrl+F比CE好用10000倍……

贴一下计算公式
这是一个从地址09BA结尾的程序里面读出来的,某次追码得到的花园产量计算公式:

xmm7=[4C59FA90+20](=0)
xmm6=某个奇怪的数字/100


xmm2=[4C59FA90+78](=1.00)
xmm2=xmm2*xmm7
xmm7=[4C59FA90+20](=0)
xmm1=(double)(edi(=00000007))
xmm2=xmm2*xmm6
xmm0=(double)ebx
xmm2=xmm2+xmm0
xmm3=(double)eax
xmm2=xmm2*xmm1
xmm3=xmm3+xmm2


最后,计算结果被存到了esi中,也就是,如果能改掉esi的值,emmm...
有爱自取整合随意,顺手抄上了GPL v3的license,反正大家也不可能用这个脚本卖钱嘛……
如果准备整合的话,记得在整合之后的脚本注明GPL许可(这是个人感觉GPL最好的一点,现在真心觉得开源程序都是良心程序)


<
另外,“翻译”了一下任务选项,找到了不少东西的含义,虽然还没胆子修主线任务以及加人口的国策任务,也没找到哪里能改任务种类,不过只要你把“需要几个才能完成任务”跟“已完成数量”都锁定成相同的数值,基本上任务是可以自动完成的
<

本帖子中包含更多资源

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

x

评分

2

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

20

主题

658

帖子

730

积分

超级玩家

Rank: 5Rank: 5

贡献度
0
金元
7300
积分
730
精华
0
注册时间
2017-3-13
舒服的沙发
发表于 2019-3-31 16:38 | 只看该作者
有没有材料9999不归零的,,个数弄个6666也好啊!
回复 支持 反对

使用道具 举报

63

主题

974

帖子

3328

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
420
金元
16184
积分
3328
精华
3
注册时间
2014-11-13

3DM MOD站(黄金)

硬硬的板凳
 楼主| 发表于 2019-3-31 16:52 | 只看该作者
s4401088 发表于 2019-3-31 16:38
有没有材料9999不归零的,,个数弄个6666也好啊!

坛子里面的CT表有这个功能的
只要点Have a ton of items Pt *,下拉菜单里面有一个On选项的


回复 支持 反对

使用道具 举报

24

主题

1011

帖子

1008

积分

游戏狂人

Rank: 6Rank: 6

贡献度
5
金元
9875
积分
1008
精华
0
注册时间
2012-3-10
冰凉的地板
发表于 2019-3-31 17:43 | 只看该作者
qweytr_1 发表于 2019-3-31 16:52
坛子里面的CT表有这个功能的
只要点Have a ton of items Pt *,下拉菜单里面有一个On选项的

123都要点么,点了我游戏会崩溃。
回复 支持 反对

使用道具 举报

63

主题

974

帖子

3328

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
420
金元
16184
积分
3328
精华
3
注册时间
2014-11-13

3DM MOD站(黄金)

5#
 楼主| 发表于 2019-3-31 18:39 | 只看该作者
~倪茶~ 发表于 2019-3-31 17:43
123都要点么,点了我游戏会崩溃。

……我没试过
慢慢玩不好吗?


回复 支持 反对

使用道具 举报

93

主题

3万

帖子

5万

积分

游戏圣者

Rank: 12Rank: 12Rank: 12

贡献度
134
金元
497958
积分
50332
精华
0
注册时间
2015-12-17

3DMer

6#
发表于 2019-4-1 19:50 | 只看该作者
支持下。
回复 支持 反对

使用道具 举报

79

主题

960

帖子

1129

积分

游戏狂人

Rank: 6Rank: 6

贡献度
60
金元
8887
积分
1129
精华
0
注册时间
2010-4-21
7#
发表于 2019-4-1 19:55 | 只看该作者
完全看不懂。
回复 支持 反对

使用道具 举报

33

主题

1475

帖子

1577

积分

游戏狂人

Rank: 6Rank: 6

贡献度
34
金元
14407
积分
1577
精华
0
注册时间
2008-12-18
8#
发表于 2019-4-3 16:05 | 只看该作者
能不能弄个任务直接完成的,我5W人这个达成不了了
回复 支持 反对

使用道具 举报

63

主题

974

帖子

3328

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
420
金元
16184
积分
3328
精华
3
注册时间
2014-11-13

3DM MOD站(黄金)

9#
 楼主| 发表于 2019-4-3 16:09 | 只看该作者
xlks123 发表于 2019-4-3 16:05
能不能弄个任务直接完成的,我5W人这个达成不了了

……主线任务不清楚,要人口直接改人口就好
城市任务可以直接把“需要的数量”跟“已完成的数量”都锁定成1


回复 支持 反对

使用道具 举报

0

主题

75

帖子

135

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1347
积分
135
精华
0
注册时间
2014-10-12
10#
发表于 2019-4-3 19:02 | 只看该作者
话说这些代码怎么用。。。。我是真的看得一头雾水
回复 支持 反对

使用道具 举报

0

主题

75

帖子

135

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1347
积分
135
精华
0
注册时间
2014-10-12
11#
发表于 2019-4-3 20:02 | 只看该作者
执行成功了,感谢lz
回复 支持 反对

使用道具 举报

7

主题

1102

帖子

1820

积分

游戏狂人

Rank: 6Rank: 6

贡献度
56
金元
15959
积分
1820
精华
0
注册时间
2016-8-13
12#
发表于 2019-4-5 09:42 | 只看该作者
不明嚼栗顺便给大佬点赞
回复 支持 反对

使用道具 举报

1

主题

383

帖子

353

积分

高级玩家

Rank: 4

贡献度
1
金元
3492
积分
353
精华
0
注册时间
2010-1-28
13#
发表于 2019-4-8 09:33 | 只看该作者
大佬,是大佬。我完全看不懂T T
回复 支持 反对

使用道具 举报

32

主题

1541

帖子

1万

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
125
金元
109798
积分
11480
精华
0
注册时间
2009-11-16
QQ
14#
发表于 2019-7-29 15:00 | 只看该作者
兄弟,问一下你能看穿1.02版本更新造成的地址偏移嘛?我打紫色标记的地址是原先1.01版的地址

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

63

主题

974

帖子

3328

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
420
金元
16184
积分
3328
精华
3
注册时间
2014-11-13

3DM MOD站(黄金)

15#
 楼主| 发表于 2019-7-29 15:49 | 只看该作者
a45456666 发表于 2019-7-29 15:00
兄弟,问一下你能看穿1.02版本更新造成的地址偏移嘛?我打紫色标记的地址是原先1.01版的地址

...

游戏已删
你可以学一学aobscan
或者去掉“可写入”之后搜索下面注释的地址
比如
  • "Nelke_and_the_Legendary_Alchemists.exe"+247995: 48 63 C2              -  movsxd  rax,edx
  • "Nelke_and_the_Legendary_Alchemists.exe"+247998: 8B 14 81              -  mov edx,[rcx+rax*4]
  • "Nelke_and_the_Legendary_Alchemists.exe"+24799B: 41 03 D0              -  add edx,r8d
  • "Nelke_and_the_Legendary_Alchemists.exe"+24799E: 48 8D 0C 81           -  lea rcx,[rcx+rax*4]
  • "Nelke_and_the_Legendary_Alchemists.exe"+2479A2: 78 54                 -  js Nelke_and_the_Legendary_Alchemists.exe+2479F8
  • "Nelke_and_the_Legendary_Alchemists.exe"+2479A4: 89 11                 -  mov [rcx],edx
  • "Nelke_and_the_Legendary_Alchemists.exe"+2479A6: 81 FA 3F 42 0F 00     -  cmp edx,000F423F
对这个,你应该搜索冒号后面的那些字节
比如
: 48 63 C2              -
: 8B 14 81              -  

: 41 03 D0              -
你应当搜索(字节数组)48 63 C2 8B 14 81 41 03 D0...
一般情况下你都能找到你想要的结果



回复 支持 反对

使用道具 举报

32

主题

1541

帖子

1万

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
125
金元
109798
积分
11480
精华
0
注册时间
2009-11-16
QQ
16#
发表于 2019-7-29 19:13 | 只看该作者
qweytr_1 发表于 2019-7-29 15:49
游戏已删
你可以学一学aobscan
或者去掉“可写入”之后搜索下面注释的地址

这恐怕相当的花时间,我不见的就能懂= =你正版d版?
回复 支持 反对

使用道具 举报

63

主题

974

帖子

3328

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
420
金元
16184
积分
3328
精华
3
注册时间
2014-11-13

3DM MOD站(黄金)

17#
 楼主| 发表于 2019-7-29 21:08 | 只看该作者
a45456666 发表于 2019-7-29 19:13
这恐怕相当的花时间,我不见的就能懂= =你正版d版?

……没买过正版,而且大概买正版并不会这么果断地删游戏
抱歉


回复 支持 反对

使用道具 举报

32

主题

1541

帖子

1万

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
125
金元
109798
积分
11480
精华
0
注册时间
2009-11-16
QQ
18#
发表于 2019-7-30 10:18 | 只看该作者
本帖最后由 a45456666 于 2019-7-30 10:20 编辑
qweytr_1 发表于 2019-7-29 21:08
……没买过正版,而且大概买正版并不会这么果断地删游戏
抱歉

我的游戏共享名额还有,你要不要。你能力比我深太多,重新定位旧版ce文件对你来说应该不算啥
回复 支持 反对

使用道具 举报

63

主题

974

帖子

3328

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
420
金元
16184
积分
3328
精华
3
注册时间
2014-11-13

3DM MOD站(黄金)

19#
 楼主| 发表于 2019-7-30 15:35 | 只看该作者
本帖最后由 qweytr_1 于 2019-7-30 19:51 编辑


a45456666 发表于 2019-7-30 10:18
我的游戏共享名额还有,你要不要。你能力比我深太多,重新定位旧版ce文件对你来说应该不算啥
...

不需要了
如果你真的想要改过的偏移我可以在论坛上重新下载一份
最晚明天给你
反正也不麻烦

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

32

主题

1541

帖子

1万

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
125
金元
109798
积分
11480
精华
0
注册时间
2009-11-16
QQ
20#
发表于 2019-7-31 09:19 | 只看该作者
本帖最后由 a45456666 于 2019-7-31 10:32 编辑
qweytr_1 发表于 2019-7-30 15:35
不需要了
如果你真的想要改过的偏移我可以在论坛上重新下载一份
最晚明天给你

原作者說他好像因为1.02更新老是ctd问题不想再更新了……
这是他的私信:So I was able to get my hands on the updated version, and I updated the table. This is the last time I'll update the table, so everyone be clear that if you do update your game further, you more than likely won't be able to use the table further. The game is extremely unstable on my PC and crashed 4 times just in the short time I was updating it. I'll see you guys when Lulua launches.
回复 支持 反对

使用道具 举报

63

主题

974

帖子

3328

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
420
金元
16184
积分
3328
精华
3
注册时间
2014-11-13

3DM MOD站(黄金)

21#
 楼主| 发表于 2019-7-31 14:51 | 只看该作者
本帖最后由 qweytr_1 于 2019-7-31 14:53 编辑
a45456666 发表于 2019-7-31 09:19
原作者說他好像因为1.02更新老是ctd问题不想再更新了……
这是他的私信:So I was able to get my hands o ...

我也是crush了好几次
crush的原因可能只是作者菜
如果作者成功地在同一处调试crash 4次,估计作者绝对会意识到自己有多蠢
就比如最简单的
aobscan(newmem,......,bytes)//这里的bytes是一句jmp或者一句call
……
newmem:jmp code
return:

code:call .......exe+123456
jmp return
……

游戏升级的直接结果是.......exe+123456这个基址的位置被改掉了
比如变成了.......exe+123465
虽然这样的改变不会改变bytes(比如代码整体的平移,这并不会改变我们搜索的bytes)
然而偏移改掉了,也就是现在标着.......exe+123465的位置,可能是dragon……当然大概率是int 3……

这时候你直接去call .......exe+123456 当然是依概率或者以概率1 crash
(我就是因为这个问题crash了4次)

现在的脚本基本实现了原作者的功能
你可以测试一下看看效果如何。
理应不会跳出
如果跳了给我说一声我看看究竟是哪里出了问题


回复 支持 反对

使用道具 举报

32

主题

1541

帖子

1万

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
125
金元
109798
积分
11480
精华
0
注册时间
2009-11-16
QQ
22#
发表于 2019-7-31 16:29 | 只看该作者
本帖最后由 a45456666 于 2019-7-31 16:42 编辑
qweytr_1 发表于 2019-7-31 14:51
我也是crush了好几次
crush的原因可能只是作者菜
如果作者成功地在同一处调试crash 4次,估计作者绝对会意 ...

我知道ctd一般是某些数据意料之外的过大或过小或冲突导致游戏识别异常从而boom……这数据是Have a Ton of Items Pt 1-2-3这三项其中一项byte数值错误,但以我的功力定位不到对应的数值。他做的露露亚最新的表相比前面的也有些潦草了




本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

63

主题

974

帖子

3328

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
420
金元
16184
积分
3328
精华
3
注册时间
2014-11-13

3DM MOD站(黄金)

23#
 楼主| 发表于 2019-8-1 03:32 | 只看该作者
a45456666 发表于 2019-7-31 16:29
我知道ctd一般是某些数据意料之外的过大或过小或冲突导致游戏识别异常从而boom……这数据是Have a Ton of  ...

那一项tons of item我已经不准备改了
你可以用其他代码强行把这个数值改回去

我利用了highlighted item函数的副作用(所有数量读取都需要经过这个函数)找到了-6397出现的位置
然后改成了9999
(这样你就可以继续玩了)

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

32

主题

1541

帖子

1万

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
125
金元
109798
积分
11480
精华
0
注册时间
2009-11-16
QQ
24#
发表于 2019-8-1 09:49 | 只看该作者
本帖最后由 a45456666 于 2019-8-1 11:15 编辑
qweytr_1 发表于 2019-8-1 03:32
那一项tons of item我已经不准备改了
你可以用其他代码强行把这个数值改回去

唔!怪我忘了说……我觉得物品数量改成4位数可能游戏不会正常认,三位数倒是安全的。看了你的表看来天才与庸才仅一线之差,给你足够的时间那个作者糟糕的表绝对会被你完善到位
回复 支持 反对

使用道具 举报

32

主题

1541

帖子

1万

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
125
金元
109798
积分
11480
精华
0
注册时间
2009-11-16
QQ
25#
发表于 2019-8-1 09:59 | 只看该作者
qweytr_1 发表于 2019-8-1 03:32
那一项tons of item我已经不准备改了
你可以用其他代码强行把这个数值改回去

哈哈哈!他的固态坏了,真衰:Re: Atelier Lulua - The Scion Of Arland
Unread post by zachillios » Thu Aug 01, 2019 1:53 am
[size=1.3em]So my SSD died on Monday, so I had to rush order another one and install it tonight, so that pushed it back a bit. Table will probably be updated on Friday.
回复 支持 反对

使用道具 举报

63

主题

974

帖子

3328

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
420
金元
16184
积分
3328
精华
3
注册时间
2014-11-13

3DM MOD站(黄金)

26#
 楼主| 发表于 2019-8-1 15:11 | 只看该作者
本帖最后由 qweytr_1 于 2019-8-1 15:13 编辑
a45456666 发表于 2019-8-1 09:49
唔!怪我忘了说……我觉得物品数量改成4位数可能游戏不会正常认,三位数倒是安全的。看了你的表看来天才与 ...

我读过代码(很早很早之前)
物品是2 bytes带符号存储的(四个源素是4 bytes)
游戏对物品数量上界有约束,大于9999一律改成9999
负六千多并不大于9999,于是游戏没办法用那条指令进行修改

于是我改成9999理应是安全的
至于我跟那个作者的技术
……应该说……我们都很菜

或者应该换一个角度
能写出多高质量的CT表主要是看有多少时间可以浪费
毕竟每crush一次就需要花十几秒重进一遍游戏
而crush是改游戏的基础


回复 支持 反对

使用道具 举报

32

主题

1541

帖子

1万

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
125
金元
109798
积分
11480
精华
0
注册时间
2009-11-16
QQ
27#
发表于 2019-8-1 15:55 | 只看该作者
本帖最后由 a45456666 于 2019-8-1 16:20 编辑
qweytr_1 发表于 2019-8-1 15:11
我读过代码(很早很早之前)
物品是2 bytes带符号存储的(四个源素是4 bytes)
游戏对物品数量上界有约束 ...

看来归根结底是心态,心态差那么难关永远也无法解决

看来库存贩卖数量可能跟建筑每个阶段的规模有关,要么就是有个绝对值的贩卖上限

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

32

主题

1541

帖子

1万

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
125
金元
109798
积分
11480
精华
0
注册时间
2009-11-16
QQ
28#
发表于 2019-8-1 17:10 | 只看该作者
qweytr_1 发表于 2019-8-1 15:11
我读过代码(很早很早之前)
物品是2 bytes带符号存储的(四个源素是4 bytes)
游戏对物品数量上界有约束 ...

奇怪,不晓得改动了什么数值。进道具仓库无限读取虽然不进道具仓库不会有问题

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

63

主题

974

帖子

3328

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
420
金元
16184
积分
3328
精华
3
注册时间
2014-11-13

3DM MOD站(黄金)

29#
 楼主| 发表于 2019-8-1 18:35 | 只看该作者
a45456666 发表于 2019-8-1 17:10
奇怪,不晓得改动了什么数值。进道具仓库无限读取虽然不进道具仓库不会有问题
...

是不是DLC不全?
我加载你的存档的时候收到了两个DLC的提示
可能是DLC额外添加了几个物品,导致你的存档崩溃
如果是这个原因,我解不了
你可以试试用我的脚本改你之前的save21,把那个负六千多改好
然后剩下的应该就正常了
(如果真的是我说的这个问题,你可以试试我改完的save21能不能读道具仓库)


回复 支持 反对

使用道具 举报

32

主题

1541

帖子

1万

积分

资深玩家

Rank: 9Rank: 9Rank: 9

贡献度
125
金元
109798
积分
11480
精华
0
注册时间
2009-11-16
QQ
30#
发表于 2019-8-1 19:10 | 只看该作者
本帖最后由 a45456666 于 2019-8-1 21:01 编辑
qweytr_1 发表于 2019-8-1 18:35
是不是DLC不全?
我加载你的存档的时候收到了两个DLC的提示
可能是DLC额外添加了几个物品,导致你的存档 ...

我用排除法试试看把,应该如你所说有新dlc道具地址不包含在ce文件里,我用ait+f4强退居然进程都没杀死还要再关一次
似乎找到了一个奇怪的东西?

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|咖绿茵|求知网|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2024-4-25 10:11 , Processed in 0.146348 second(s), 48 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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