标题: [原创] 风色幻想6数据免加密 原理
所需阅读权限 1
瘸腿大象
游侠会员


Rank: 1

精华 0
积分 89
帖子 114

金钱 507
经验 0
荣誉 0
互助 11

youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。
风色幻想6数据免加密 原理

本帖最近评分记录
suncheng2004 2008-1-31 11:36 金钱 +20 文章不错,继续努力!



很好很强大,发布1天就有100的下载量

既然这么多人感兴趣,那我就说说这个免加密的原理



首先是找到金钱的地址。然后查看是什么写的这个地址。
会得到好几个类似这样代码:  mov [xx],xx 或者 mov xx,[xx]

在汇编窗口逐个观察后,发现这条代码很有价值 00508349 - 8b 51 08 - mov edx,[ecx+08]
汇编窗口中是这样: 
0050831E - 89 4a 08                   - mov [edx+08],ecx
00508321 - 8b 85 d0 fc ff ff          - mov eax,[ebp-00000330]
00508327 - 8b 08                      - mov ecx,[eax]
00508329 - 81 c1 34 01 00 00          - add ecx,00000134
0050832F - 89 8d 60 ff ff ff          - mov [ebp-000000a0],ecx
00508335 - 8b 95 60 ff ff ff          - mov edx,[ebp-000000a0]
0050833B - 8b 72 04                   - mov esi,[edx+04]
0050833E - e8 fd a6 ef ff             - call 00402a40  ====〉关键call
00508343 - 8b 8d 60 ff ff ff          - mov ecx,[ebp-000000a0]
00508349 - 8b 51 08                   - mov edx,[ecx+08] ======〉断在这里
0050834C - 33 14 b0                   - xor edx,[eax+esi*4] ====〉加密数据
0050834F - 89 95 58 ff ff ff          - mov [ebp-000000a8],edx
00508355 - 8b 85 d0 fc ff ff          - mov eax,[ebp-00000330]
0050835B - 8b 48 3c                   - mov ecx,[eax+3c]
0050835E - 89 8d 54 ff ff ff          - mov [ebp-000000ac],ecx

我们已经知道xor edx,[eax+esi*4] 这步就是加密数据了,eax就是加密表的地址,esi是用到的密钥的偏移量。
那么eax哪里来的呢?
看见前面那个call了吧,跟进去
00402A40 - 55                         - push ebp
00402A41 - 8b ec                      - mov ebp,esp
00402A43 - e9 59 a5 10 00             - jmp 0050cfa1  ====〉跳转
00402A48 - 5d                         - pop ebp
00402A49 - c3                         - ret

有个跳转? 管它,再跟
0050CFA1 - a1 d4 f7 f7 00             - mov eax,[00f7f7d4] : 006881C8  ===>eax赋值
0050CFA6 - e9 9d 5a ef ff             - jmp 00402a48

把[00f7f7d4]作为指针将值传给eax
汇编器已经告诉我们[00f7f7d4] 的值是 006881C8
怎么这么眼熟呢,啊,原来006881C8正是密钥表的第1个密钥嘛
于是知道了[00f7f7d4]就是密钥表的指针

于是,将这个密钥表的指针指向1个全都是0的地方就得啦。
这样读取到的密钥就都是0 ,任何数和0异或都是自身。
于是加密就没用了


是不是很简单?

[ 本帖最后由 瘸腿大象 于 2008-1-31 03:28 编辑 ]

顶部
快乐BOY
游侠会员



Rank: 1

精华 0
积分 43
帖子 142

金钱 193
经验 0
荣誉 0
互助 0

FM2008 系列签名栏(英超、意甲、西甲、德甲)已经上架销售!

我怎么看不懂?





穿名牌不是帅,走路带风才是真正的帅!——————语出《东城西就》
顶部
jayxqs
游侠会员
劍術精湛 大劍士


Rank: 1

精华 0
积分 902
帖子 2556

金钱 1664
经验 0
荣誉 0
互助 27


参与论坛活动,赚取LTB!
看不懂- -.........................





人只有失去了,才懂得珍惜么?
顶部
RaffinKIRA
游侠会员



Rank: 1

精华 2
积分 1313
帖子 2377

金钱 2879
经验 0
荣誉 0
互助 0

youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。

你用的是ollydbg调试的吗?
。。。。。。。。。。。。。





纪念三国志11特别人物
吕玲绮,关索,曹彰
荀攸,马谡,诸葛恪,贾充
潘璋,马忠,卫瓘
高顺,乐进,黄月英

三国群英七吕布关羽张飞马超赵云最强存档下载
http://game.ali213.net/thread-1886478-1-1.html
顶部
King_遗忘
游侠会员


Rank: 1

精华 0
积分 756
帖子 1736

金钱 2237
经验 0
荣誉 0
互助 47

来自 断罪之翼
FM2008 系列签名栏(英超、意甲、西甲、德甲)已经上架销售!

支持下.





真田VS手塚(打到残废0.0)              | 丸井-桑原VS菊丸-大石(打得赢同调?)
仁王VS不二(天才可以破解嘅咩?) | 赤也-莲二VS贞治-海堂(海堂都可以魔化- -||)
幸村VS龙马
曲名:Myself Yourself.
-----------------------------------------I Say Yes !
超期待零之使魔第三季@网王最终篇!
顶部
tanjiunnya
离任版主

★★★


精华勋章 版主勋章 活跃勋章 高级精华勋章

Rank: 5Rank: 5Rank: 5

精华 42
积分 16338
帖子 12244

金钱 22656
经验 60
荣誉 30
互助 13

来自 槟城--马来西亚

参与论坛活动,赚取LTB!


QUOTE:
原帖由 RaffinKIRA 于 2008-1-31 09:08 发表
你用的是ollydbg调试的吗?
。。。。。。。。。。。。。

他用的是Cheat Engine,至于那个版本就不清楚了。最新版本是5.4,不过我还是用5.2~~





顶部
tanjiunnya
离任版主

★★★


精华勋章 版主勋章 活跃勋章 高级精华勋章

Rank: 5Rank: 5Rank: 5

精华 42
积分 16338
帖子 12244

金钱 22656
经验 60
荣誉 30
互助 13

来自 槟城--马来西亚

youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。
直接将 mov eax,[00f7f7d4]
修改为 mov eax, 00000000 不就得了?





顶部
瘸腿大象
游侠会员


Rank: 1

精华 0
积分 89
帖子 114

金钱 507
经验 0
荣誉 0
互助 11

FM2008 系列签名栏(英超、意甲、西甲、德甲)已经上架销售!



QUOTE:
原帖由 tanjiunnya 于 2008-1-31 15:59 发表
直接将 mov eax,[00f7f7d4]
修改为 mov eax, 00000000 不就得了?

你这么做只会造成
xxxxxxxx指令引用的内存00000000 ,该内存不能为read



是CE5.4

[ 本帖最后由 瘸腿大象 于 2008-1-31 17:19 编辑 ]

顶部
tanjiunnya
离任版主

★★★


精华勋章 版主勋章 活跃勋章 高级精华勋章

Rank: 5Rank: 5Rank: 5

精华 42
积分 16338
帖子 12244

金钱 22656
经验 60
荣誉 30
互助 13

来自 槟城--马来西亚

参与论坛活动,赚取LTB!


QUOTE:
原帖由 瘸腿大象 于 2008-1-31 17:16 发表


你这么做只会造成
xxxxxxxx指令引用的内存00000000 ,该内存不能为read



是CE5.4

[00F7F7D4] 其实就是游戏内存中的一个地址。
做法可以写个修改器将 [00F7F7D4]这个地址的值修改去 00 00 00 00

或者;

将 EAX的传回值改为 0 , 而不需要去读取 [00F7F7D4]这个地址。

在汇编中 [00000000] 和 00000000 是很大差别哦。一个是内存地址,一个是值,差别很远。





顶部
瘸腿大象
游侠会员


Rank: 1

精华 0
积分 89
帖子 114

金钱 507
经验 0
荣誉 0
互助 11

youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。



QUOTE:
原帖由 tanjiunnya 于 2008-1-31 17:22 发表
[00F7F7D4] 其实就是游戏内存中的一个地址。
做法可以写个修改器将 [00F7F7D4]这个地址的值修改去 00 00 00 00

或者;

将 EAX的传回值改为 0 , 而不需要去读取 [00F7F7D4]这个地址。

在汇编中 [00000000] 和 00000 ...

那好,就按照你说的改了。
然后我们看看会发生什么事情。

0050CFA1 - a1 d4 f7 f7 00             - mov eax,[00f7f7d4] : 00000000 ===>给eax 0
0050CFA6 - e9 9d 5a ef ff             - jmp 00402a48

00402A48 - 5d                         - pop ebp
00402A49 - c3                         - ret


00508343 - 8b 8d 60 ff ff ff          - mov ecx,[ebp-000000a0]
00508349 - 8b 51 08                   - mov edx,[ecx+08]
0050834C - 33 14 b0                   - xor edx,[eax+esi*4]  ======〉这个要出错!

错误内容就是 0050834c指令引用的内存 00000000+esi*4 不能为read

明白了没有?


这里eax是个指针,不是数值。
所以不能给0

[ 本帖最后由 瘸腿大象 于 2008-1-31 17:31 编辑 ]

顶部
tanjiunnya
离任版主

★★★


精华勋章 版主勋章 活跃勋章 高级精华勋章

Rank: 5Rank: 5Rank: 5

精华 42
积分 16338
帖子 12244

金钱 22656
经验 60
荣誉 30
互助 13

来自 槟城--马来西亚

FM2008 系列签名栏(英超、意甲、西甲、德甲)已经上架销售!
呵呵,我误解了,细看之下,原来[00F7F7D4]是一个pointer,我的做法就行不通了~~误解了哦。

你的做法是不是将 [F7F7D4]下的pointer值清空=0?

如果是注入方式,就得在 JMP 00402A48 之前
加入 mov dword ptr [eax], 00000000
然后再 jmp 402a48

这样子就可以将 pointer 下的值清空=0了。
CE应该可以轻易做到injection吧?





顶部
瘸腿大象
游侠会员


Rank: 1

精华 0
积分 89
帖子 114

金钱 507
经验 0
荣誉 0
互助 11

参与论坛活动,赚取LTB!



QUOTE:
原帖由 tanjiunnya 于 2008-1-31 17:38 发表
呵呵,我误解了,细看之下,原来[00F7F7D4]是一个pointer,我的做法就行不通了~~误解了哦。

你的做法是不是将 [F7F7D4]下的pointer值清空=0?

如果是注入方式,就得在 JMP 00402A48 之前
加入 mov dword ptr [eax], 00000000
...

你还是误解了。
指针不能是0,必须指向1个可以访问的地址。
否则最后访问指针就会出错, xor ecx,[eax+esi*4] 这里就会出错。

指针是1个包含地址的变量,不可以包含0,否则会访问错误。


我是把指针指向了1个全都是0的地方,不是把指针清0~ 这点要明确。
实际上我是把 [00F7F7D4]从原本的 006881C8 指向了 00c33640  (这是风色幻想6 v110
v220指向的则是另外1个全都是0的地方。

v110的免加密脚本是这样的,非常简单
[ENABLE]
00f7f7d4:
db 40 36 c3 00

[DISABLE]
00f7f7d4:
db c8 81 68 00

顶部
tanjiunnya
离任版主

★★★


精华勋章 版主勋章 活跃勋章 高级精华勋章

Rank: 5Rank: 5Rank: 5

精华 42
积分 16338
帖子 12244

金钱 22656
经验 60
荣誉 30
互助 13

来自 槟城--马来西亚

youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。
我是没有动过这个游戏,只不过是想跟你技术上讨论而已。

没有想到这游戏还做到这么复杂,pointer这么多。。。

那么,你的做法就是
mov eax,[00f7f7d4]
mov [eax], 00c33640


是不是?

[ 本帖最后由 tanjiunnya 于 2008-1-31 17:56 编辑 ]





顶部
瘸腿大象
游侠会员


Rank: 1

精华 0
积分 89
帖子 114

金钱 507
经验 0
荣誉 0
互助 11

FM2008 系列签名栏(英超、意甲、西甲、德甲)已经上架销售!



QUOTE:
原帖由 tanjiunnya 于 2008-1-31 17:53 发表
我是没有动过这个游戏,只不过是想跟你技术上讨论而已。

没有想到这游戏还做到这么复杂,pointer这么多。。。

那么,你的做法就是
mov eax,[00f7f7d4]
mov [eax], 00c33640


是不是? ...

就是这个意思

[ 本帖最后由 瘸腿大象 于 2008-2-1 08:24 编辑 ]

顶部
JungSheng
游侠会员



Rank: 1

精华 0
积分 1
帖子 3

金钱 3
经验 0
荣誉 0
互助 0

参与论坛活动,赚取LTB!

LZ真是神人...不推不行...20202020

顶部
641890506
游侠会员


Rank: 1

精华 0
积分 25
帖子 84

金钱 69
经验 0
荣誉 0
互助 0

来自 土
youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。

支持支持支持支持支持支持支持支持~!支持支持支持支持支持支持支持支持~!

顶部
maxsound
游侠中级会员
魔界射手
精靈族 聖劍騎士


精华勋章

Rank: 2Rank: 2

精华 12
积分 3965
帖子 318

金钱 2832
经验 240
荣誉 120
互助 54

FM2008 系列签名栏(英超、意甲、西甲、德甲)已经上架销售!

00508349 - 8b 51 08                   - mov edx,[ecx+08] ======〉断在这里
0050834C - 33 14 b0                   - xor edx,[eax+esi*4] ====〉加密数据
0050834F - 89 95 58 ff ff ff          - mov [ebp-000000a8],edx


直接把 0050834C 改成NOP ,是不是就不會進行加密了!?

[ 本帖最后由 maxsound 于 2008-2-18 00:46 编辑 ]

顶部
瘸腿大象
游侠会员


Rank: 1

精华 0
积分 89
帖子 114

金钱 507
经验 0
荣誉 0
互助 11

参与论坛活动,赚取LTB!



QUOTE:
原帖由 maxsound
00508349 - 8b 51 08                   - mov edx,[ecx+08] ======〉断在这里
0050834C - 33 14 b0                   - xor edx,[eax+esi*4] ====〉加密数据
0050834F - 89 95 58 ff ff ff          - mov [ebp-000000a8],edx


直接把 0050834C 改成NOP ,是不是就不會進行加密了!?

加密这样是搞定了,不过解密数据就会出错。

顶部
guobacoo
游侠会员


Rank: 1

精华 1
积分 1144
帖子 2548

金钱 88
经验 20
荣誉 10
互助 16


youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。
众星云集啊。。。。。。前排留名、、、、、、




支持一下修改心得啊~免得有灌水的嫌疑、、、





活着的时候开心点,因为我们要死很久
顶部
inshower
游侠会员
独步武林 大侠


Rank: 1

精华 0
积分 348
帖子 261

金钱 722
经验 0
荣誉 0
互助 54

来自 天府之国
FM2008 系列签名栏(英超、意甲、西甲、德甲)已经上架销售!

嗯,果然藏龙卧虎,高手云集啊……
汇编,呃,话说当年上大学老被计算机老师捉D的成绩……





凤凰浴火而重生,悲痛过后是希望!
顶部
ujfyru
游侠会员



Rank: 1

精华 0
积分 71
帖子 169

金钱 213
经验 0
荣誉 0
互助 4

参与论坛活动,赚取LTB!

这看得我脑残了..........

顶部
silentflas
游侠会员



Rank: 1

精华 0
积分 50
帖子 167

金钱 232
经验 0
荣誉 0
互助 0

youki 系统正式开放!可方便检索和录入大量有价值的游戏相关信息。

看高手论剑,看得我心旷神怡。

顶部
shoo321
游侠会员



Rank: 1

精华 0
积分 18
帖子 59

金钱 111
经验 0
荣誉 0
互助 0

FM2008 系列签名栏(英超、意甲、西甲、德甲)已经上架销售!

神人在版聊。感谢您的成果

顶部



www.netshowbbs.com game.ali213.net
我们每天在进步 游侠游戏社区 游侠网


当前时区 GMT+8, 现在时间是 2008-12-3 13:42
增值电信业务经营许可证 沪B2-20050044

Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - 游侠NETSHOW论坛 - Archiver - WAP