拦截C_*.NLS加载查看用户态调用栈回溯

以x64/Win10为例,mspaint.exe进程空间中会出现:

C_*.NLS可能有出入,无关紧要。

之前在微博上请教过locale.nls的的映射路径,god_bless_me_pls、邱鹏先后给出nt!MmMapViewOfSection这个点。

假设知道locale.nls是通过如下路径映射进来的:

提问,C_1256.NLS映射进来时,用户态调用栈回溯是什么?

问题本质是,如何设置断点尽快找到指定文件的映射路径。解决这个通用问题有助于提高生产力。可能有很多答案,找一个适用于自己所在上下文的就是。

2018-01-09 keenjoy95

本小节介绍keenjoy95如何拦截mspaint.exe进程空间中的C_*.NLS。

先用winobj看\NLS目录下Section对象的名字,形如”NlsSectionCP*”。在IDA中找到”\NLS\NlsSectionCP%d”,交叉引用nt!RtlpInitNlsSectionName,这个函数很简单,就是拼接SectionName。其父函数是nt!NtGetNlsSectionPtr,下面是其主要动作的逆向代码。

为拦截C_1256.NLS的映射加载,设断:

这个趣味调试题没有所谓标准答案。主要是提醒大家,这是一个通用需求,如果你找到适合自己上下文的通用解决方案,将极大地提高生产力。

好吧,我对我司blog的编辑模板已经绝望了,无格式都做不到,自动删除打头空格。

发表评论