逆向 | win10 notepad复制到别的路径无法打开的问题

逆向 | win10 notepad复制到别的路径无法打开的问题

想研究一下notepad,就复制出来了,结果打不开,直接开两个od对比跑了一下,在加载快捷键的时候报错了:

image

去msdn查了一下,这个错误是:

image

造成这个的原因大概是mui文件没有正确的被加载,在ida中可以搜索到这样一个字符串:

image

跟进:

image

这个函数应该就是用来加载语言的,这个函数会在初始化函数之前执行:

image

但是实际运行的时候是没有用到这个模块的emmm。

再跟进的时候发现了这样一出地方:
image
image

这里才是真正出错的点。
想要弄明白这个问题还是得研究一下复制这样一个文件到底造成了什么影响。
发现二者在属性上有着不同:

image

但是!这不是问题的关键(准确的说是半点影响都没有)!我又在老外的提问中翻阅了好久,终于找到了我想要的结果:

image

我这才反应过来,这种加载方式其实是需要有资源文件被系统自动加载的,而这些文件就被放在系统的文件夹里:

image

这才找到了真正的资源文件的所在位置:

image

结论:

使用LoadString加载字符串的时候,如果第一个参数为自身的句柄,则会在当前文件夹(和系统文件夹)下寻找资源Pe文件,名称为xxxx.exe.mui,本质上就是一个没有代码的资源文件。
所以想要让程序能够正常运行,需要把资源文件给整到同一目录下,如下图。

image
image

之后就可以对notepad进行魔改啦~

posted @ 2022-04-11 16:28  Mz1  阅读(474)  评论(0编辑  收藏  举报