引用:
musicsun寫到:
引用:
Acute寫到:
這種需求, 要變成通用程式粉麻煩, 但是, 要針對特定程式, 其實很簡單
so, 如果你會寫程式, 也知道怎樣使用debugger 環境, 我可以告訴你方法
1. 先trace 程式, 找出該程式何時執行CreateMutex, 這時候, 查出該function 第三個參數 (一個名字)
2. 自己寫一個程式, 裏面啥都不幹, 就是去CreateMutex 然後用同樣的名字參數
以後, 只要先執行你自己寫的程式, 再執行你希望可以跑多個的程式, 就可以了.
這個方法, 對80% 的軟體會有效
會無效的, 只有遇到使用傳統方法辨識的, 但是, 大型軟體公司的程式不會用傳統笨方法, 因為那樣子容易誤判
^^" 當初eDonkeySpy 破驢子不給跑多隻, 就是用這個方法
Acute.
要執行程式設定的mutex名字已經被自己寫的程式開啟了...
這樣要執行的程式不就看到名字已經有了...
然後一隻都不跑嗎?
寫程式都會有保險機制的, 不會寫的很愚蠢
所以, CreateMutex 成功之後, 會去檢查, 是不是自己的另一個instance 開啟的
如果是, 才會不執行, 如果不是, 就會執行
那因為已經被"假"程式先佔據了, 所以每個instance 起來都發現不是
所以, 每個instance 都會執行
Acute.