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

注册 登录

QQ登录

只需一步,快速开始

查看: 3536|回复: 18
打印 上一主题 下一主题

[其它] 严重怀疑是 未剔除 程序自校验机制 导致 最终关的BOSS 打不死(带一些我猜测的技术建议,希望搞调试/逆向/编程的朋友进来看看)

  [复制链接]

107

主题

795

帖子

963

积分

超级玩家

Rank: 5Rank: 5

贡献度
93
金元
5905
积分
963
精华
0
注册时间
2011-3-25
跳转到指定楼层
主题
发表于 2013-2-24 22:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 3dmark11 于 2013-2-24 22:51 编辑

如题。我感觉这是唯一的可能性了。
在不联网的情况下,如何判断游戏是否正版?唯有可能进行自校验(因为破解肯定会修改EXE文件,不信大家对比一下原版EXE和破解版的EXE)。
所以我认为crysis.exe里存在自校验机制,在最后打BOSS的关头,调用了自校验机制(也是唯一一次进行自校验),发现校验失败,就让最终BOSS不死来恶心玩家。
本人是一线编程人员(说难听点就是码农),自认为说话还是有点根据的。



下面说点稍微专业的话,希望懂行的朋友试试,我能力有限,试不了,只能说说想法:
1.在GetModuleFileNameW函数上下硬件断点,看看是否有调用这个函数,以及看看这个函数的返回值。我看原版的crysis3.exe是调用了这个函数的:

DWORD WINAPI GetModuleFileName(
  _In_opt_  HMODULE hModule,
  _Out_     LPTSTR lpFilename,
  _In_      DWORD nSize);

2.如果有的话,把lpFilename的数据改为EA原版crysis.exe的路径,让程序的自校验机制去检查原版的程序(当然啥都检查不出来了)。

3.如果自校验机制使用了反HOOK技术(重载DLL/恢复HOOK等),则直接修改PEB里的进程路径数据,甚至把EPROCESS里几个存储进程路径的地方也修改了。

4.如果一开始就是错误的,那我只能说“EA我服了U”。

评分

3

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-12 16:02 , Processed in 0.029214 second(s), 19 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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