首页
社区
课程
招聘
[原创]某游戏封包加解密算法及其算法KEY的算法
发表于: 2009-10-23 13:49 39442

[原创]某游戏封包加解密算法及其算法KEY的算法

2009-10-23 13:49
39442
收藏
免费 7
支持
分享
最新回复 (59)
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
断recv,按几下Ctrl+F9就到了,这个游戏很适合练手的
2009-10-26 22:00
0
雪    币: 17
活跃值: (308)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
27
声明:本人完全不知道这款游戏是什么游戏,也完全不知道这款游戏是哪家公司运营的,以上内容都是我作梦的时候说的梦话,我老婆记录下来的。

豪迈。
2009-10-26 23:04
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
关键在于算法,没必要还原,只要看懂即可
2009-10-27 10:30
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
__asm{
        jmp f_0
f_1:
        add     esp, 0x8
        jmp L_2
f_3:
        sub     esp, 0x4
        sub     esp, 0x4
        sub     esp, 0x4
        add     esp, 0x4
        jmp     L_4
L_4:
        add     esp, 0x4
        add     esp, 0x4
        retn    0x4
f_5:
        retn   
f_6:
        mov     eax, dword ptr [ecx+0x14]
        retn   
L_7:
        jmp     L_8
f_0:
        jmp     L_7
L_8:
        pop     edi
        add     esp, 0x4
        add     esp, 0x4
        add     esp, 0x4
        add esp, 0x4
        jmp L_9
f_10:
        jmp     L_11
L_11:
        retn    0x4
L_9:
        mov     esi, eax
        add     esp, 0x4
        jmp     L_12
L_12:
        mov     ecx, dword ptr [esp+0x1c]
        mov     dword ptr [ecx], edi
        sub     esp, 0x4
        call    f_1
L_2:
        sub     esp, 0x4
        call    f_3
        add     esp, 0x4
        add     esp, 0x4
        add     esp, 0x4
        add     esp, 0x4
        add     esp, 0x8
        add esp, 0x8
        jmp L_13
f_14:
        mov     eax, dword ptr [esp+0x8]
        sub     esp, 0x4
        mov     ecx, dword ptr [esp+0x10]
        jmp L_end
L_13:
        mov     esi, eax
        sub     esp, 0x4
        call    f_10
        call    f_5
        mov     ecx, dword ptr [esp+0x14]
        call    f_6
        mov     esi, eax
        sub     esp, 0x4
        add     esp, 0x0
        add     esp, 0x4
        mov     edx, dword ptr [esi+0x11]
        mov     esi, dword ptr [esi+0x8]
        mov     ecx, edx
        mov     ebx, edx
        xor     ecx, 0x6d23cf
        sub     ecx, 0x6d2399
        xor     edx, 0xffffffcf
        not     ecx
        add     edx, 0x67
        xor     ebx, 0x2e6d23cf
        and     ecx, 0xffff00
        not     edx
        sub     ebx, 0x2e6d2399
        shl     edx, 0x18
        not     ebx
        shr     ebx, 0x18
        or      ecx, ebx
        or      ecx, edx
        sub     esp, 0x4
        push    ecx
        mov     edx, esi
        mov     ecx, esi
        xor     edx, 0x6d23cf
        xor     ecx, 0x2e6d23cf
        sub     edx, 0x6d2399
        sub     ecx, 0x2e6d2399
        xor     esi, 0xffffffcf
        not     edx
        not     ecx
        add     esi, 0x67
        and     edx, 0xffff00
        shr     ecx, 0x18
        or      edx, ecx
        not     esi
        shl     esi, 0x18
        or      edx, esi
        push    edx
        sub     esp, 0x4
        call    f_14
L_end:
}
2009-10-27 10:37
0
雪    币: 347
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
30
幻想春秋
2009-10-27 11:17
0
雪    币: 870
活跃值: (1033)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
过路!
看了一眼! 见过这个游戏!
2009-10-29 14:56
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
根本看不明白汗死了
2009-10-29 15:14
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
有学习了一下
2009-10-29 15:21
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
34
看不懂。大概有个模式了。
2009-10-29 21:18
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
下断点在 AD 这个字节上,楼主为什么会下在这个地方?
2009-10-30 09:29
0
雪    币: 44
活跃值: (24)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
36
下断在那里是因为我知道那几个字节是作什么的,没想多废话。

其实最开始是随意在封包中间的一个位置下断点的

不在第一个字节下断点的原因是因为已经看出来第一个WORD是长度了,

就算断下来也只是在处理长度信息。

由于游戏处理封包大多是一个循环,然后按BYTE或其它类型依次处理的

所以下断在中间就有可能断下这个处理流程。从而找到处理封包加解密的函数。

一般来说,如果运气好,中间随意找个地方下个断点,直接就进了封包处理函数了。

运气不好的话可能断在复制封包的函数里,因为有的游戏是放进数据池,用的时候再取出的。
2009-10-30 13:23
0
雪    币: 113
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
呵呵。重点。。你看错了我的。。最后那句话才是重点。
某种人看了这文会觉得原来懂汇编的能直接把汇编写成高级语言(其实多此一举,他不懂那是多麻烦的事)。
最夸张的一次某大公司招聘信息上写着:能把汇编反写成C/C++。我加了他QQ聊了几句。他还真的发了段汇编代码过来叫我写成C的。。
所以重点。。要算法。要理解。不要语言。。

什么事情能高级语言能做到而汇编不能做到的?我想只有汇编能做到而高级语言做不到的事.汇编还能更简单的做到。。以上几个语言。VB,JAVA,C。我全用来写过程序。不过那些高级语言限制太多(内含汇编又不好看- -)。不喜欢。所以。现在一般只用MASM来写。

(看得懂不是问题。有没耐心继续做下去才是真正的问题)
2009-10-30 18:56
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
受教了,谢谢楼主。
2009-10-30 20:30
0
雪    币: 223
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
这种加密的方法只是游戏现行的加密方法,其中还另外预备了2种加密方法未采用,其实xx公司这个系列的都采用相同或者相似的加密方法,不过这个游戏研究封包没什么意义不如研究脚本
2009-10-31 10:35
0
雪    币: 73
活跃值: (70)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
40
知识..   学习ing..
2009-10-31 12:38
0
雪    币: 44
活跃值: (24)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
41
脑子秀斗的公司大有人在。脑子秀斗是指那种只看过程不看结果的人。
2009-10-31 14:52
0
雪    币: 227
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
怎么没有介绍用到什么工具呢?难道只用一个OD就可以做出来?
2009-11-1 22:40
0
雪    币: 44
活跃值: (24)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
43
还需要手,大脑,烟和可乐。
2009-11-1 23:00
0
雪    币: 198
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
什么年代=。=还要逆出来。。。
2009-11-1 23:07
0
雪    币: 198
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
45


现在流行直接把客户端当dll调用,直接搞他的汇编代码。用SE定位随便他丫怎么更新。

HOOK加密解密直接拿明文包.内存直接抓表...直接脱机=。=

看他丫怎么死。哈哈.他有的我脱机全有。

让客户端自己去跟服务器通讯吧~嘎嘎...
2009-11-1 23:10
0
雪    币: 44
活跃值: (24)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
46
好强大。。。还不清楚什么是SE定位,更新是件头痛的事

如果可以还是请大虾指教。。
2009-11-2 13:10
0
雪    币: 243
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
47
以前没有去总结怎么把它改写成c代码的方法
仔细想起来,貌似我也是用这种方法的,呵呵
2009-11-2 15:51
0
雪    币: 492
活跃值: (41)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
48
不好意思,我只是提示下,现在vb和易语言都是可以内联汇编的,而且都有免费的代码。
2009-11-2 16:12
0
雪    币: 152
活跃值: (106)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
49
很好,很强大
2009-11-3 10:22
0
雪    币: 44
活跃值: (24)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
50
除了C++的内联汇编,其它语言的真的不敢恭维。而且能用主义和完美主义不同,实际应用又与学习过程不同。我更明白直接套汇编比F5和人肉F5更迅速。
2009-11-3 15:58
0
游客
登录 | 注册 方可回帖
返回
//