文章预览
来自公众号: 轩辕的编程宇宙 今天给大家分享一个有趣的问题,来增长一点知识。 一位小伙伴( 歌虽无形 )遇到的问题,后来研究清楚后,我让他总结分析了一下,我稍微改了一下,分享给大家。 事情是这样的: 公司采购了新软件,想在新软件下沿用旧的一些插件和功能,于是就将旧版本的dll直接替换了新版本。 然而,诡异的现象出现了,win7下能正常运行,但win10却怎么也跑不起来,一运行就会会闪退。 学习逆向,当然要自己来动手解决这个问题,是时候展示真正的技术了。 经过分析,发现了崩溃的地方,有个函数入口的地方反汇编后是长这个样子的: 注意看,入口处,函数开辟栈帧,把栈顶抬高了0x298的大小,使用了 sub rsp, 298h 指令。 然后是函数结束返回的地方,要恢复栈空间,使用了 add, esp, 298h 指令: 聪明的你一定已经发现问题了,
………………………………