关于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的實現
?
閱讀全文類別:內核?查看評論
轉載于:https://www.cnblogs.com/retme/archive/2012/05/02/2494886.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的关于ark取得进程的镜像文件路径的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA:this的使用
- 下一篇: petshop 出现没有为 SQL 缓存