|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2006-05-15, 03:26 PM | #1 |
管理版主
|
討論 - 如何做出專機程式
什麼是 "專機程式" 是我亂說的啦~
是指 此程式只能於這台電腦安裝執行 拿到別台就不可行了 這裡只是討論一下而已 我想或許有人第一個直覺就是 軟體序號 但這絕對不可造就 "專機程式" 因為資料保護法讓業者不能擷取使用者資料 所以利用網路回傳鎖定某單機(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 就是組合語言程式碼 128*128*4=65536 那再減一剛好等於 65535= 16進制的 FFFF 這樣足夠記載所有 組合語言code 比如 B80800 是指 MOV AX,0008 (那 00 要怎麼辦呢,當預設值吧,根據人分析 除非出現 指定位址寫法 否則不會有 超過2byte的機碼出現情形) ... 如此 那破解者會被混淆 如果要跳過執行這個執行碼呢? 那他必須破解(也就是更改接下來的不知有多少處的同情況執行碼) 又會問到 如果使用 破解工具 全部取代不就好了 那程式極有可能其正常執行碼會被跟著破壞到 但我們不能抱著這種得過且過的賭博心態 因此 就必須下相關功夫 使當破解後會造成計數失敗 ... 其實個人還每將此理論想(規劃)清楚 所以先寫到這 如有新的更正或想法再敘吧 有興趣的讀者 請多多指教 此帖於 2006-05-15 04:58 PM 被 mini 編輯. |
送花文章: 2001,
|
向 mini 送花的會員:
|
jal0707 (2006-11-13)
感謝您發表一篇好文章 |