全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2519
推到 Plurk!
推到 Facebook!

可否獲取尚未執行程式的程式序

答題得分者是:leveon
雪貓
一般會員


發表:4
回覆:12
積分:3
註冊:2006-08-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2013-11-21 18:04:44 IP:220.136.xxx.xxx 訂閱
一般程式都可更改名稱..
譬如 aaa.exe執行時,程式序裡會顯示 aaa
若將 aaa.exe更名為 bbb.exe..執行時 程式序裡會依然顯示 aaa
是否可以不執行 aaa.exe.而獲取程式的 程式序 aaa ?

因為要偵測 程式是否已執行
(知道該程式名稱,
想要先偵測是否已經執行中)
leveon
資深會員


發表:30
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2013-11-21 21:49:44 IP:61.231.xxx.xxx 訂閱
aaa bbb ....搞不太懂你的需求

參考

http://delphi.ktop.com.tw/board.php?cid=30&fid=72&tid=85340

或google CreateMutex

看看

===================引 用 雪貓 文 章===================
譬如 aaa.exe執行時,程式序裡會顯示 aaa
是否可以不執行 aaa.exe.而獲取程式的 程式序 aaa ?

想要先偵測是否已經執行中)
雪貓
一般會員


發表:4
回覆:12
積分:3
註冊:2006-08-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2013-11-22 10:09:55 IP:118.168.xxx.xxx 訂閱
抱歉.
換個方式說.
當AAA.exe執行時...工作管理員\應用程式 顯示 AAA
把 AAA.exe 更名為 BBB.exe..... 工作管理員\應用程式 依然顯示 AAA
因為有可能 AAA.exe會被更名(有時候有人會這麼做.譬如改為 "鬧鐘.exe" )

我想問的是
是否可以不執行 AAA.exe.
直接讀取該程式的屬性
而獲取該程式的
工作管理員\應用程式 它的名稱 "AAA"


編輯記錄
雪貓 重新編輯於 2013-11-22 10:13:14, 註解 無‧
雪貓 重新編輯於 2013-11-22 10:17:50, 註解 無‧
leveon
資深會員


發表:30
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2013-11-22 14:23:56 IP:61.228.xxx.xxx 訂閱
需找出執行檔的特徵碼
判斷有無執行的方式 就在記憶體掃一遍
發現到特徵碼表示有執行
特徵碼不夠特徵 當然就會有誤判情形

方法有點類似防毒軟體



===================引 用 雪貓 文 章===================
抱歉.
換個方式說.
當AAA.exe執行時...工作管理員\應用程式 顯示 AAA
把 AAA.exe 更名為 BBB.exe..... 工作管理員\應用程式 依然顯示 AAA
因為有可能 AAA.exe會被更名(有時候有人會這麼做.譬如改為 "鬧鐘.exe" )

我想問的是
是否可以不執行 AAA.exe.
直接讀取該程式的屬性
而獲取該程式的 工作管理員\應用程式 它的名稱 "AAA"


雪貓
一般會員


發表:4
回覆:12
積分:3
註冊:2006-08-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2013-11-22 18:43:21 IP:118.168.xxx.xxx 訂閱
了解.
所以一定要執行程式,才能獲得它的特徵碼..是這樣對嗎?

但是.病毒方式,是防毒軟體直接掃描檔案,而比對出特徵.
並非病毒執行(或發作)才在記憶體裡掃描特徵
(我認知的病毒掃描方式是這樣)

或者說:防毒軟體會載入該檔,再來掃描特徵?

若程式已執行,是可以在 "工作管理員" 裡取得名稱
我是想說,在程式尚未執行時,透過任何方式而可以取得該程式的 程式名稱.




leveon
資深會員


發表:30
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2013-11-22 19:45:22 IP:61.228.xxx.xxx 訂閱
不是的
你可以使用 Delphi 的TFilestream 讀進EXE檔 就可以讀取"所謂"的特徵碼
就跟讀取一般文字檔一樣

執行檔執行時 也會把自身程式載進記憶體中 你可以掃描有沒有符合你在
外部找到的"特徵"

給你幾個關鍵字 google
PE file format
Readprocessmemory
virtualqueryex

至於你說的病毒掃瞄 現在已經厲害到有sandbox了
不過那又是另外的故事

===================引 用 雪貓 文 章===================
了解.
所以一定要執行程式,才能獲得它的特徵碼..是這樣對嗎?

但是.病毒方式,是防毒軟體直接掃描檔案,而比對出特徵.
並非病毒執行(或發作)才在記憶體裡掃描特徵
(我認知的病毒掃描方式是這樣)

或者說:防毒軟體會載入該檔,再來掃描特徵?

若程式已執行,是可以在 "工作管理員" 裡取得名稱
我是想說,在程式尚未執行時,透過任何方式而可以取得該程式的 程式名稱.




雪貓
一般會員


發表:4
回覆:12
積分:3
註冊:2006-08-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2013-11-26 13:25:45 IP:220.136.xxx.xxx 訂閱
找了幾天.超出我的能力範圍.還是抓不到頭緒.
似乎都只能.先執行後,再去獲取工作名稱.

要避免重複執行程式,必須先知道程式的工作名稱.
但,若不知道 程式的工作名稱 ,就無法避免重複執行.

程式可以更名,但工作名稱不會變.
網路的範例,都是先執行 該軟體 , ,然後得知 "程式的工作名稱"...將名稱寫入資料庫
再藉此來防止重複執行.

假設我要偵測 LINE (如圖)
若偵測程式.是第一次執行,總不能先去執行 "通訊軟體.exe"..
紀錄他的工作名稱"LINE". "下次"執行偵測時才能避免重複執行
而是希望能在執行"通訊軟體.exe"前.獲知他的工作名稱"LINE"..再去看看執行序裡是否已有工作名稱"LINE".

請教一個範例
RootKit
資深會員


發表:16
回覆:357
積分:419
註冊:2008-01-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2013-11-26 17:47:40 IP:60.250.xxx.xxx 訂閱
使用 Application.Title 是不適宜的。它可能在 RunTime 時給予亦有可能 為空。
需要Disassembler 分析 PE 格式。

很少用這種方式辨識。通常掃毒軟體使用 Hash 方式。簡單用 Crc Check 就可以。
不過需要建立資料進行比對。
leveon
資深會員


發表:30
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2013-11-27 10:20:01 IP:111.241.xxx.xxx 訂閱
工作管理員 以chrome來看  Title是變來變去的
跟改檔名一樣 不太可靠

你舉的Line 這類的通訊軟體應該都加過殼
難度更高
雪貓
一般會員


發表:4
回覆:12
積分:3
註冊:2006-08-10

發送簡訊給我
#10 引用回覆 回覆 發表時間:2013-11-28 15:40:15 IP:114.43.xxx.xxx 訂閱

我以簡單的方式先寫一個程式測試.
如圖所示.
應用程式名稱 跟 處理程序名稱不一樣.

目前的作法,
在尚未執行 "鬧鐘.EXE" 前
只能先以 程式名稱(鬧鐘.EXE).,先偵測 "處理程序名稱" 是否有相同的..
而無法偵測 "應用程式名稱".
因為無法事先獲知 "應用程式名稱(ALARM)"...

只好另想方法了...
系統時間:2017-12-16 17:22:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!