【已解决】《WinXP空当接龙》无法增加区段的奇怪问题
本帖最后由 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
.
向大佬学习 向大佬学习 看一下大佬这作品
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1314510&highlight=%BD%D3%C1%FA
页:
[1]