关于ark取得进程的镜像文件路径 |
您所在的位置:网站首页 › 映像文件路径 › 关于ark取得进程的镜像文件路径 |
最近看到一个trojan把自己拷到回收站里隐藏,然后发现我两万年前写的ark取得的进程路径还是原路径。。。 突然想起来很久以前看到某群的讨论
拿破伦19:22:03 话说,一个运行中的文件,然后移动他到其他目录~~ 拿破伦19:22:33 有些检测他的路径会变成新的目录 KKindOf 19:23:05 丫的,这是面试题吧 DRL不爱天使 19:23:06 嗯 DRL不爱天使 19:23:32 你说的是Win7么 拿破伦 19:23:43 恩啊 DRL不爱天使 19:23:59 XP就不会 拿破伦 19:24:16 我在g盘根目录下运行的 DRL不爱天使 19:24:50 7的文件管理很优越 拿破伦 19:24:53 为啥win7可以了 拿破伦 19:25:06 这个能用来干坏事不 拿破伦 19:25:16 移动一个被占用的文件感觉。。。 DRL不爱天使 19:25:36 不知道 我是好人 DRL不爱天使 19:25:40 拿破伦 19:26:30 是啊,移动不会提示被占用。。。这个没想通 KKindOf 19:27:00 干啥,如果独占的就不能移动了 拿破伦 19:27:28 这个是程序打开,不知道怎么设置独占啊 KKindOf 19:35:10 你就是说运行了后,然后就移动,这样别人扫描进程列表就扫不出正确的路径? 拿破伦 19:35:21 嗯 宁妖01 19:35:34 额 拿破伦 19:35:35 启动是的路径不对了 ======================================================================================================= 其实xp和win7下都是可以的,已经跑起来的进程,他的可执行文件只要在当前盘符下,随便移动。移动之后任务管理器可能会得不到进程已经变更的可执行文件名。
进程的文件名更改之后 eprocess的UCHAR ImageFileName[16];不会更新。SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo;也不会主动更新
网上比较多的代码是找 eprocess → SectionObject. _SEGMENT_OBJECT →_SEGMENT→_CONTROL_AREA→_FILE_OBJECT
然后从 _FILE_OBJECT的filename结合RtlVolumeDeviceToDosName去取路径
一般情况下是ok的。但当进程运行起来之后,如果对镜像文件重命名,这时候再从_FILE_OBJECT的filename去取路径就只有原路径了
得到更改后路径的方法是得到FILE_OBJECT之后去调ObQueryNameString,(也可以自己实现ObQueryNameString,直接发irp)
详见NtQueryInformationProcess的实现 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |