史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   如何做出專機程式 (http://forum.slime.com.tw/thread174610.html)

mini 2006-05-15 03:26 PM

如何做出專機程式
 
:ddrf567h: 什麼是 "專機程式" 是我亂說的啦~
是指 此程式只能於這台電腦安裝執行
拿到別台就不可行了

這裡只是討論一下而已

我想或許有人第一個直覺就是
軟體序號
但這絕對不可造就 "專機程式"
因為資料保護法讓業者不能擷取使用者資料
所以利用網路回傳鎖定某單機(PC)就不可行了
當然更純粹的是
這麼被哥哥的軟體 沒人會想用吧~

那如此之下個人能想到的就是
硬體ID
像是 網路卡、CPU 都可以拿來當硬體ID的參考
只是那怎麼辦到
此程式拿到別的 PC就不能用呢?
除非
每個程式都針對該PC編譯一次 (或軟體資源表是 針對該PC 而建立)
要不然就是建立 資料庫,並崁入軟體內 (但這不是一個好方法)
不論如何這兩種方法
好像都必須您先下訂單
再根據您送的 硬體ID 來製作厚~
那這不就增加了你的負擔
且突變成 "被哥哥軟體"
如何解決呢?

可以設計一個網路端伺服器幫你合成軟體程式
使用者上傳硬體ID後
網路端伺服器就做出你的 專機程式
並show出下載點
那這個程式不論是 使用者透露了載點,或免費上傳
都不再有效了 (因為是由硬體ID 做把關嘛~)

那破解呢?
世界上 專業軟體破解 個人/團體 不勝枚舉
因此不敢打包票破不了
只是把防鎖加多 難度自然就加高 會想破的人就...
比如size防護、資源檔防護、執行期防護(一般都只做啟動期驗證)、身份證字號防護(這樣就不敢拿給別人用,不過太 貝戈戈了 不實際...)...

那如何 設計一個網路端伺服器
方法有
自動編組譯、製作雜點map再替換入資源表 這兩個主要方法
自動編組譯沒什麼好說
來看看 製作雜點map再替換入資源表 的原理
利用
srand(硬體ID); //這裡借用C++語言的亂數種子特性
接著
在一個 128x128 4bit 格式的 BMP圖 上噴上雜點 (以下稱之為 "指紋map")
http://xs200.xs.to/xs200/06201/Snap2.png
最後
將此BMP圖資源崁入軟體即可

那一定會問
如何辦到只修改 指紋map 而不用修改程式碼
就可辦到 專機程式 的實現呢?
重點就在此 指紋map 的製作有脈絡可尋
程式碼不是用 數值核對 或 boolean對錯方式 來認可執行
而是 指紋map 就是組合語言程式碼:drtyt76h6
128*128*4=65536 那再減一剛好等於 65535= 16進制的 FFFF
這樣足夠記載所有 組合語言code
比如
B80800 是指 MOV AX,0008
(那 00 要怎麼辦呢,當預設值吧,根據人分析 除非出現 指定位址寫法 否則不會有 超過2byte的機碼出現情形)
...
如此
那破解者會被混淆
如果要跳過執行這個執行碼呢?
那他必須破解(也就是更改接下來的不知有多少處的同情況執行碼)
又會問到
如果使用 破解工具 全部取代不就好了
那程式極有可能其正常執行碼會被跟著破壞到
但我們不能抱著這種得過且過的賭博心態
因此
就必須下相關功夫
使當破解後會造成計數失敗
...


其實個人還每將此理論想(規劃)清楚
所以先寫到這
如有新的更正或想法再敘吧

有興趣的讀者
請多多指教 :deftgh65:

getter 2006-05-15 10:15 PM

引用:

作者: mini
:ddrf567h: 什麼是 "專機程式" 是我亂說的啦~
是指 此程式只能於這台電腦安裝執行
拿到別台就不可行了

這裡只是討論一下而已

我想或許有人第一個直覺就是
軟體序號
但這絕對不可造就 "專機程式"
因為資料保護法讓業者不能擷取使...

在以前還有一種手法...,俗稱【硬體鎖】的技術。現在還有沒有就不清楚了。

就是在 Print port 或 com prot 上 插上一個韌體,該韌體可能只有 EPPROM
或是單晶片 CPU + EPPROM。當 PC 裡的特定程式在執行時會去跟這一個裝置做確認
OK 後再執行。如︰PC-illin 4/5 或 PC-2000(電子布線程式) 都屬該類。

其中【硬體鎖】就屬 單晶片 CPU + EPPROM 最難以破解,因為 那的 CUP 也會做
某種運算來達到防護...。

劍痞憶秋年 2006-05-15 10:28 PM

引用:

作者: mini
:ddrf567h: 什麼是 "專機程式" 是我亂說的啦~
是指 此程式只能於這台電腦安裝執行
拿到別台就不可行了

這裡只是討論一下而已

我想或許有人第一個直覺就是
軟體序號
但這絕對不可造就 "專機程式"
因為資料保護法讓業者不能擷取使...

劣者可能想的比較簡單
劣者一般都是用 Windows 的序號為Key,再變化成實際亂碼的密碼鎖!!
(當然還是可能會被破,那沒辦法!!)
資料保護法讓業者不能擷取....
那反過來,讓使用者自己提供如何?!(註冊回傳檔案的功能...)

superxboy 2006-05-16 10:30 AM

引用:

作者: 劍痞憶秋年
劣者可能想的比較簡單
劣者一般都是用 Windows 的序號為Key,再變化成實際亂碼的密碼鎖!!
(當然還是可能會被破,那沒辦法!!)
資料保護法讓業者不能擷取....
那反過來,讓使用者自己提供如何?!(註冊回傳檔案的功能...)

1.一種方式做硬體鎖(我不會)

2.最常見是用CPU ID...畢竟沒人會常常換CPU...而且還要採用線上註冊...

lovesp 2006-05-20 05:34 PM

Armadillo good@@

august 2006-06-15 11:27 PM

引用:

作者: getter
在以前還有一種手法...,俗稱【硬體鎖】的技術。現在還有沒有就不清楚了。

就是在 Print port 或 com prot 上 插上一個韌體,該韌體可能只有 EPPROM
或是單晶片 CPU + EPPROM。當 PC 裡的特定程式在執行時會去跟這一個裝置做確認
OK 後再執行。如︰PC...

硬體鎖 的技術現在還是有的。目前你所說的防毒軟體所用的硬體鎖到現在還在生產,不過比起過去他們還是有加入了新的加密技術,不過一但鎖內的Private Key被 外部的人得知還是會被破解,我想防毒軟體那時會捨棄硬體鎖也是因為這個原因吧。製作硬體鎖的產品名稱叫Hasp你可以去找找看,不過我是覺得如果可以自製硬體鎖,內部的編碼多加幾層再加上軟體的編碼後我想可以破解的人就沒幾個了(除非很有耐心的人,還有很快的電腦)

飛鳥 2006-06-16 11:05 AM

硬體鎖我也用過print port做過,用8051或avr或一些小電路就可以做了

用軟體,是windows nt的話
可以使用作業系統的SID和序號,兩劍合併
SID如果使用同一片光碟及同一個序號安裝的WINDOWS,SID都會不一樣
SID是在安裝WINDOWS NT系列的作業系統時隨機產生的
重灌電腦時也會不一樣,所以可以作為要驗證的根據
不過防不了GHOST

======================================================
安全性識別碼 (SID)
安全性識別元安全性識別元 (SID) 是定義使用者或群組的數值。每一個存取控制項目 (ACE) 都會有一個 SID,以識別其存取權限為允許、拒絕或稽核的使用者或群組。

知名的安全性識別元 (特殊識別元)
一般熟知的 SID 描述

匿名登入(S-1-5-7) 不必提供使用者名稱及密碼即連線到電腦的使用者。
已驗證的使用者(S-1-5-11) 包括所有其識別元已經過驗證的使用者及電腦。[已驗證的使用者] 不包括 [來賓] (即使 [來賓] 帳戶有密碼亦然)。
-----------------------------------------------
批次(S-1-5-3) 包括所有透過批次佇列機能 (例如工作排程器作業) 登入的使用者。
-----------------------------------------------
建立者擁有者(S-1-3-0) 一個在可繼承之存取控制項目 (ACE) 中的放置區。一旦繼承 ACE 之後,系統會使用物件目前擁有者的 SID 來取代這個 SID。
-----------------------------------------------
Creator 群組(S-1-3-1) 一個在可繼承之 ACE 中的放置區。一旦繼承 ACE 之後,系統會使用物件目前擁有者的主要群組的 SID 來取代這個 SID。
-----------------------------------------------
撥號(S-1-5-1) 包括所有透過撥號連線登入到系統的使用者。
-----------------------------------------------
Everyone(S-1-1-0) 在執行 Windows XP Professional的 電腦上,Everyone 包括 [已驗證的使用者] 及 [來賓]。在使用較舊版本之作業系統的電腦上,Everyone 包括 [已驗證的使用者]、[來賓]及 [匿名登入]。
相關資訊,請參閱預設安全性設定中的差異。
-----------------------------------------------
互動式(S-1-5-4) 包括所有在本機上或透過 [遠端桌面] 連線登入的使用者。
-----------------------------------------------
本機系統(S-1-5-18) 由作業系統使用的服務帳戶。
-----------------------------------------------
網路(S-1-5-2) 包括所有透過網路連線登入的使用者。互動式使用者的存取權杖不包括 [網路 SID]。
-----------------------------------------------
本身 (原則本身)(S-1-5-10) 一個在 Active Directory 中,使用者、群組或電腦物件上之 ACE 中的放置處。當您授予使用權限給 [原則本身] 時,即授予它們物件代表的安全性原則。在存取檢查期間,作業系統會使用物件代表之安全性原則的 SID 來取代 [原則本身] 的 SID。
-----------------------------------------------
服務(S-1-5-6) 包括登入以作為服務的所有安全性原則。由作業系統控制的成員資格。
-----------------------------------------------
終端機伺服器使用者(S-1-5-13) 包括所有登入到 [終端機服務] 伺服器 (處於 [終端機服務] 4.0 版應用程式相容模式中) 的使用者。

getter 2006-06-16 01:08 PM

引用:

作者: 飛鳥
硬體鎖我也用過print port做過,用8051或avr或一些小電路就可以做了

用軟體,是windows nt的話
可以使用作業系統的SID和序號,兩劍合併
SID如果使用同一片光碟及同一個序號安裝的WINDOWS,SID都會不一樣
SID是在安裝WINDOWS NT系列的作業系統時隨機產生的
...

飛鳥大,好厲害呀,簡直像傑克一樣。


所有時間均為台北時間。現在的時間是 07:45 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1