|
作者:Tesla.Angela
做商业级别进程保护的时候,会遇到各种无比恶心的需求,也就有了很多无比恶心的故事。之前遇到一个只懂易语言的“大牛”,要我按照进程名字来保护进程。这不是什么困难的事情,在对象回调里,通过被操作者的进程对象获得进程名字,然后用_stricmp对比一下就结了。但是做完项目一天后,这位“大牛”找我说:保护进程对部分程序不起作用。我听到的第一个反应是:扯淡。但此“大牛”很着急,拉我看远程,我发现真的不行,顿时郁闷了。接下来打开三套件:虚拟机、DBGVIEW、WINDBG(LKD模式)。随便选了一个虚拟机里的文件:KmdManager.exe,改名为xxxx.exe后运行。然后在驱动里枚举进程(打印出进程名)。这时候,我发现了一个震惊的事情:xxxx.exe在EPROCESS里的进程名竟然是xxxx.exeer.exe。为什么是这个名字?真不知道。只知道后面那一串多出来的er.exe,是KmdManager.exe的后半截。知道了病因,解决方法就简单了,不再使用_stricmp,而改用_strnicmp。最后问题成功解决。
|
|