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

如何列出這台電腦上所有的 GlobalAtom 名稱。

答題得分者是:Zard
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-22 22:37:24 IP:61.222.xxx.xxx 未訂閱
各位前輩,大家好! 有一個疑問,常在我腦海裡盤旋。...    我們知道可以利用 GlobalAddAtom、GlobalFindAtom....等等,來建立及使用ATOM。 但都是利用已知的 GlobalAtom 名稱,來作判斷。     現在問題就是,我如何能夠將這台電腦的所有GlobalAtom 名稱 全部列出來? 請各位前輩,不吝指教!謝謝!
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-22 22:54:37 IP:61.64.xxx.xxx 未訂閱
引言: 各位前輩,大家好! 有一個疑問,常在我腦海裡盤旋。... 我們知道可以利用 GlobalAddAtom、GlobalFindAtom....等等,來建立及使用ATOM。 但都是利用已知的 GlobalAtom 名稱,來作判斷。 現在問題就是,我如何能夠將這台電腦的所有GlobalAtom 名稱 全部列出來? 請各位前輩,不吝指教!謝謝!
這個問題我以前也有想過, 可是翻遍MSDN, 好像沒有一個API可以列出Global ATOM table 內所有項目.....或許是基於安全因素吧....
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-22 23:15:46 IP:61.222.xxx.xxx 未訂閱
感謝 Zard 大大的答覆。 不過我想這個東西,總是要被存放在什麼地方。 是不是用一些較底層的方式,取得。
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-23 00:01:12 IP:61.64.xxx.xxx 未訂閱
引言: 感謝 Zard 大大的答覆。 不過我想這個東西,總是要被存放在什麼地方。 是不是用一些較底層的方式,取得。
ATOM Table是存在於記憶體, 而且OS應該會禁止程式直接去讀取那塊記憶體, 我猜想如果要把ATOM Table所有內容列舉出來, 只有用GlobalGetAtomName 來取得. String ATOMs的範圍 : 0xC000 ~ 0xFFFF Integer ATOMs的範圍: 0x0001 ~ 0xBFFF 寫個loop來跑吧 .....不過應該會跑很久吧... 順便問一下, 為什麼你要把
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-23 00:22:50 IP:61.222.xxx.xxx 未訂閱
感謝 Zard 大大的答覆。 您的方法,讓我知道解決問題的方法與概念。 在此感謝您!拖空答覆我這個問題。 我對這個感興趣,主要因素。 我開發了一項軟體(類似TOOL),透過網路取得授權之後。 即可執行。 但 USER 可能一直重複執行這個執行檔。 為了避免重新再一次透過網路取得授權(可能需費時幾秒的時間)。 本來我打算,取得第一次授權後放置授權允許的ATOM 以作識別用。 在第二次執行時,一旦檢查到這個ATOM 就跳過網路授權這一段。 如此看來,仍具有風險性(被破解)。 由於USER所需的效率要很高。{一執行就要有結果那種} 不可能再一次次浪費在透過網路取得授權。 {不考慮重開機。不可能使用KEYPRO 情況下} 不知道有比較好的做法嗎! 發表人 - wameng 於 2004/10/23 00:32:05
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-23 00:57:40 IP:61.64.xxx.xxx 未訂閱
http://homepage1.nifty.com/kaityo/bcbtips/tips5.html 授權本來就有風險 矛與盾 1 針對一般硬體 2 針對一般個人身份如IC卡 信用卡 類 3 針對全球唯一碼 自己的 硬體的 非對稱之演算 封閉演算(就是不使用公開方式) 為了避免重新再一次透過網路取得授權(可能需費時幾秒的時間) 如授權後將憑證存在自身的exe rc data比對資料庫 md5等 至於要不定時或特定自身再驗證不是難事 不怕被破只怕破了不知 才是較佳之途 安全沒有永遠當然不能永遠不變
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-10-23 01:18:25 IP:61.64.xxx.xxx 未訂閱
引言: 感謝 Zard 大大的答覆。 您的方法,讓我知道解決問題的方法與概念。 在此感謝您!拖空答覆我這個問題。 我對這個感興趣,主要因素。 我開發了一項軟體(類似TOOL),透過網路取得授權之後。 即可執行。 但 USER 可能一直重複執行這個執行檔。 為了避免重新再一次透過網路取得授權(可能需費時幾秒的時間)。 本來我打算,取得第一次授權後放置授權允許的ATOM 以作識別用。 在第二次執行時,一旦檢查到這個ATOM 就跳過網路授權這一段。 如此看來,仍具有風險性(被破解)。 由於USER所需的效率要很高。{一執行就要有結果那種} 不可能再一次次浪費在透過網路取得授權。 {不考慮重開機。不可能使用KEYPRO 情況下} 不知道有比較好的做法嗎! 發表人 - wameng 於 2004/10/23 00:32:05
您是要用網路授權的方法保護您的軟體嗎? 如果要減少認證次數的話, 我倒是有兩個想法:
1. 網路授權部份交由一個Service去做, 利用Service的生命週期和OS
   一樣的便利性, 只要不關機, 認證一次即可, 而此Service在啟動時
   可開啟一個file mapping object, 且讀寫屬性為唯讀(避免被修改),
   您的Tool執行起來時, 可以讀取這塊file mapping obj來決定使用者
   是否已認證過, 當然, 為了防止Service被偷換掉, 除了檢查file
   mapping obj外, 還需檢查此Service的MAC(Message Authentication 
   Code)值.    2. 第二種方法就是用Time Stamp的概念, 例如, 當使用者認證過之後, 在
   某段時間內(比如說一小時), 使用者皆可重複開啟軟體, 而不需在通過
   認證的過程, 而在這段時間內, 使用者開啟軟體時, 收到的只是Server
   傳來的Time Stamp, 軟體可藉由檢查Time Stamp的方式來決定是否要啟
   用.
其實方法還有很多, 一時之間我只想到這兩種< >, 真是抱歉了, 而且現在 想睡了, 不知這些想法有沒有漏洞, 先說聲抱歉了< >
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-10-23 10:40:34 IP:61.222.xxx.xxx 未訂閱
我想就這樣吧!....    To conundrum 大大    由於無法使用硬體當作軟體保護。 使用EXE 方式,會有Flag什麼時候清除的問題。 沒有使用資料庫。沒辦法了...不過,還是感謝您的答覆。謝謝!    沒有辦法防高級的賊,只好防防中低級的賊。嘿嘿! 如果太容易被破解,那也是很丟臉的事。
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-10-23 10:43:10 IP:61.222.xxx.xxx 未訂閱
這個問題還是被解決了! 只是後續的討論,有點離題...... 結案了。
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-10-23 10:54:08 IP:61.64.xxx.xxx 未訂閱
引言: 各位前輩,大家好! 有一個疑問,常在我腦海裡盤旋。... 我們知道可以利用 GlobalAddAtom、GlobalFindAtom....等等,來建立及使用ATOM。 但都是利用已知的 GlobalAtom 名稱,來作判斷。 現在問題就是,我如何能夠將這台電腦的所有GlobalAtom 名稱 全部列出來? 請各位前輩,不吝指教!謝謝!
嗯, 確實無法防止API Hook, 不過他的Hook要比你更早被帶起來才有辦法攔到 CreateFileMapping, 所以在開機階段就啟動Service應該會比較好. 其實要做到純軟體的防護真的是滿難的.... 被破只是早晚的事....他也可以 >
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-10-23 14:13:14 IP:61.221.xxx.xxx 未訂閱
使用EXE 方式,會有Flag什麼時候清除的問題 可以試試至個檔 2000下 C:\WINNT\system32\config\SECURITY.LOG 它被記憶體鎖著了 kTOP曾有高人釋出範例 不過我也忘記那一篇 被 HOOK API 給破了 那就再起動時動手腳 OS導引開機程序 一般硬體無法使用 也可使用 模擬硬體方式 RAMdisk 模擬網路卡 coms com 等用途不同想法不同技術也不同 http://delphi.ktop.com.tw/topic.php?topic_id=55312 打電話問問看 獨家HiPart隱藏磁區技術 哈哈
系統時間:2024-09-12 5:41:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!