-
-
[翻译]自启动方式 No.93(大意)
-
2018-11-24 20:09
5192
-
声明:本文及其软件仅用于学习交流,请勿用于商业用途和违法行为,使用产生的后果由使用者承担,本作者不承担任何法律责任和风险。
如需转载请注明一下出处,谢谢~。
原文:http://www.hexacorn.com/blog/2018/10/12/beyond-good-ol-run-key-part-93/
经过我之前对kernel32.dll的多次分析,我很惊讶地发现了这个启动方式。我看到一个代码分支(之前没有讨论过这个分支)负责枚举注册表子键并加载dll,这是一件非常难得的事情。
实际代码驻留在NotifyUILanguageChange API中。尽管MS声称它不受支持,但仍有许多组件使用它。它撤销的可能性很低。据我所知,该函数被调用
只有当某些系统设置被改变的时候,该函数就会被调用
,我将立即向你们展示如何触发他。
该代码枚举的注册表项如下所示:
HKLM\System\CurrentControlSet\Control\MUI\CallbackDlls\{ENTRY}\DllPath=<DLL>
在Windows 7,我们可以看到若干项:
Windows 10更多,我真的怀疑这段代码正要撤销。(原文这句话可能存在错误,与上文不符。也可能是本人翻译错误。)
每个项都包含DllPath值,该值是某个库的路径。唯一的要求就是,库必须有签名。
那现在,如何触发呢?
很简单,只需要修改系统地区。
一旦你修改了系统地区,你就能通过ProcMon看到记录。
准确地说,DLL什么时候被加载,如何被加载,我还不是十分清楚,可能还有其他条件能够使其触发。把这些条件找出来,这可以作为读者的家庭作业。
这当然不是最好的驻留机制,但也是另一个值得关注的地方,以防万一……
---------------------------------------------------------------------------------
后记,我在看雪潜了好多年了,平时偶尔会问一些问题,都能得到雪友的帮助,非常感谢大家的帮助。
我从11年开始学这一行,现从事威胁情报分析工作,平时看到一些有用的文章,一直想翻译过来给大家分享,同时锻炼一下自己翻译能力,翻译的不好的地方,希望大家谅解和指正。
[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界
最后于 2018-11-24 20:10
被yyyang编辑
,原因: