中级玩家
 
- 贡献度
- 7
- 金元
- 1971
- 积分
- 225
- 精华
- 0
- 注册时间
- 2005-7-19
|
本帖最后由 liuyihunter 于 2014-11-5 10:55 编辑
声明: 本人并不是破解专家, 只是根据网上资料,再加上一点普通的密码学知识的猜想罢了
1. 什么是CEG加密?
Custom Executable Generation (CEG)
其核心原理的是当你用steam下载一个exe以后, 这个exe直接就会被加密, 只有用你的steam的账户才能解密。 (绑定账户)
2. 64bit 和 32bit 的差距有多大?
32 bit = 2的31次方 , 最大可以生成一个略大于20亿的整数, 2 后面加9个零
64 bit = 2的63次方, 最大可以生成一个略大于9万亿亿整数, 9后面加18个零.
3. 世界上有没有破解不了的密码?
当然有,而且是你每天都在用的。你的网络数据包加密,这种加密是用的1024 bit的RSA加密, 用超级电脑(只有军方能有的呢种电脑吧)对单一数据包分析,大概也要算3 - 5年。
4. 64位的破解需要多少时间?
这个不好说, 我不是游戏破解的专家, 而且破解密码的时间取决于游戏是用什么算法加密的。 而且前提是你要知道他是用什么方法加密的, 如果不知道的话只能一种一种去试。 看似64bit只比32bit多了9个零, 但是从组合的数量上来说是翻了很多很多倍,如果一个个组合去试,应该会要很久吧。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(更新一)
根据yyffance的帖子, 确实破解程序和破解密码是不一样的。
破解程序的的基本原理是, 反编译exe文件. 一般英文称之为(disassembler), 其意思就是把机器语言翻译成汇编语言。
机器语言大概长这个样子
0101010101111(以前不是有个笑话说,有人用电话编写程序吗? 就是输入010101. 你的电脑就是通过读101010来工作的)
汇编语言大概长这个样子(底层语言, 指示你的电脑如何工作)
mov eax , 4
mov ebx , 1
lea ecx , [hello]
mov rdx , 13
int Ox80
普通程序员使用的编程语言大概长这个样子 (至少是让人类能读懂的语言)
int a,b
int c = a + b;
一般来说破解程序,就是找到程序里验证账户的呢段代码, 然后直接把呢段代码替换成自己的代码, 这样就可以跳过验证步骤。 但是因为破解者所能看到的只是汇编语言(mov eax , 4) , 这需要破解者对游戏系统非常了解, 而且非常依赖破解经验。广大受益玩家需要对辛勤工作的破解者表示敬意, 毕竟看汇编代码真的很痛苦。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
(更新二)
根据山东大汉的回复 (感谢山东大汉提供资料),不知道fifa15的加密技术是否也和这个类似。
64位加密可能是对应的代码混淆技术, 一般英文称之为 “Code morphing”. 是一种保护反编译的技术。 就是把反编译出来的代码加以混淆, 但是程序仍能正常执行.
虽然这种方法会对程序造成负担,但是只需要对验证账户信息的那一段做混淆即可,不会对程序效率有太多影响。
如果是类似这种加密, 其实还是密码破解, 你必须要找到具体混淆的公式, 不然无法破解整个系统。 这其实是相当困难的一种破解, 也可以理解为什么花了这么多时间还没破解出来。需要破解者有数学和编程的双重知识,才能比较好的破解。这种代码混淆都是有特征可循的, 只要破解了一次就一劳永逸了.
为了能直观理解。 举个例子
| 程序员写的代码 | {$I crypt_start.inc}
WriteLn('Test OK');
{$I crypt_end.inc} |
| 汇编代码 | move eax, [$004092ec]
mov edx, $00408db4
call @WriteOLString
call @ WriteLn
call @_IOTest |
| 混淆以后的汇编代码 | xchg [dei], dl
db 3
add al,&30
xlat
call +$000025b2
jmp +$0000eec
call +$00000941
or al,$4a
scasda
........ |
混淆过后的汇编代码其实还是汇编代码, 只是普通人已经完全没人办法看明白这些代码的意义了, 要修改这段代码更加是不可能了。
资料来源:http://www.strongbit.com/execryptor_inside.asp
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以上都是根据广大群众智慧的一些推测,我会继续查阅相关资料,争取弄明白, 同时也恳请专业破解者来写点科普文章。
|
评分
-
6
查看全部评分
-
|