好友
阅读权限25
听众
最后登录1970-1-1
|
klise
发表于 2020-11-22 14:41
本帖最后由 klise 于 2021-1-9 14:14 编辑
各位前辈:
这是小弟第一次在“吾爱”发帖,如有不妥之处,或者无意中违反了规定,务请及时指出,我立即改正。
事情是这样的:我一直喜欢玩《空当接龙》,特别是对 WinXP 自带的版本情有独钟。不过,XP的《空当接龙》有个很麻烦的问题,就是只能撤销一次,有时候一步不慎,就要从头开始。
尽管 Win7 以后的《空当接龙》已经可以无限撤销,但是我希望自己动手,给《WinXP空当接龙》加上“无限撤销”的功能,一来算是自己练练手,二来我还是喜欢 XP 这个版本,也是给自己一种便利。
由于这个功能需要加入自己的代码,所以第一步就要增加一个区段。WinXP 的原版 freecell.exe 在 Windows\system32 目录中,只有 54KB,没有加壳,不需要脱壳。
本来以为加一个区段是很简单的事,结果发现,一旦加了任何区段,这个 exe 就无法运行了!
要说明的是,“增加区段”可以用任何方法,或者用你自己习惯的工具,但是只要你加了区段,这个exe就无法运行了!
用OD打开“新增区段.exe”,可以看到里面的导入表 疑似没有正确初始化:
但是,新增加的区段是在原区段的后面(下图,加了512字节的区段做测试),应该对前面的区段没有影响呀!
实践中还发现一个问题,如果新增的区段太大,比如16KB,那么这个exe干脆就提示“不是正确的exe”,用 OD 也打不开了。
这里我加了 0x200 字节,新的exe依然运行崩溃,但是可以用 OD 打开。
虽然实际上用不了16KB这么多,但是从技术层面上讨论,增加区段怎么就影响了这个exe呢?而且新增区段还有体积限制?
还有,我以前做练习,也给其它exe加过区段,都能顺利运行(因为新区段总是加在最后面),从来没有碰到这个问题,唯独这个 WinXP 的 freecell.exe 就是这么奇怪,任何区段都加不了,实在不懂是什么原因,请各位高人不吝指教!
附注:问题已经解决,请看下帖,谢谢大家的支持。
https://www.52pojie.cn/thread-1314510-1-1.html
.
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|