看板 GameDesign 關於我們 聯絡資訊
※ 引述《GALINE (天真可愛CQD)》之銘言: : 標題: [請益] 線上排名系統的反作弊機制 : 時間: Mon May 2 19:59:23 2011 : → cowbaying:單機遊戲可能比較沒辦法 線上遊戲就是定期更改密碼串 05/02 22:05 : → cowbaying:應該說加密矩陣 05/02 22:06 : → cowbaying:檢查的面向很多 反正短時間內是破解不出來的 05/02 22:06 : → cowbaying:是的 因為基本上程式在別人的電腦上跑 你是不能控制對 05/02 22:21 : → cowbaying:方要對這程式做什麼事情 最多就是做個又臭又長的迷宮 05/02 22:22 : → GALINE:我倒是忘了按鍵精靈...不過由於種種因素我暫時不想面對這段 05/02 23:17 : → GALINE:想先專注在傳送這部份上,雖然遲早還是要面對的 Orz 05/02 23:18 : 推 Ebergies:基本上 RSA 只能保障誠實的使用者不被第三者影響 05/02 23:23 : → Ebergies:使用者本身就心懷不軌的話是沒用的 05/02 23:23 : → Ebergies:舉例來說,使用者直接用自制程式跟你要密鑰,你要不要給 05/02 23:25 : → Ebergies:他可以偽造所有的封包讓你以為你是在跟自己的程式對話 05/02 23:26 都推文了,直接回文給你個建議好了 雖然使用者無論如何都可以破解你的東西 但也別太氣餒,還是有方法的 就如同正靠北所說 他要破解,要傳假分數就給他傳 做個迷宮拖他時間就好了 敝公司剛好有做過類似的事情 大概的重點如下: 1) 伺服器與客戶端使用非對稱 RSA 加密 1' 這個有點慢,看內容而定,駭客可能使用假訊息取得密鑰 2) 因應 1' 客戶端會使用一組對稱密鑰加密所有訊息,伺服器只接受此密鑰 2' 駭客可能從檔案中取得此密鑰 3) 因應 2' 客戶端會使用一複雜計算程序將此密鑰加密 3' 駭客可能逆向工程取得計算程序 4) 因應 3' 客戶端本身會加密,於執行期解密並偵測 break point,anti-dll-hook 檢查所有 process 是否存在偵錯程序,使用模擬器將計算程序於執行期 interpret 它的意義 4' 無論如何駭客一定會破解並取得計算程序 5) 因應 4' 客戶端定時 patch,修改密鑰(2),修改計算程序(3),更改程式 interpret 架構,位址,偵測 break point 時機等等(4) 5' 駭客是天才,於 patch 時間內破解計算程序,取得密鑰,傳送錯誤分數 6) 因應 5' 取消分數排名系統 6' 駭客: ... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.180.111.210
cowbaying:第六點 XDDDDDD 05/03 00:18
snegi:7)要加入線上排名請購買商城道具 可進入排行一個月 05/03 00:24
justben:還可以用數位簽章阿 05/03 00:52
rofellosx:你的公司都在進行駭客活動? 05/03 13:23
LaPass:到底是哪個遊戲好玩到引起駭客這麼拚的去搞破壞 XD 05/03 16:54
hirabbitt:XD 05/03 17:06
Ebergies:有時候公司總是會叫你去做一些莫名其妙的事... 不過大陸 05/03 18:10
Ebergies:那邊倒是真的有專業駭客團體在搞遊戲的 05/03 18:10
Ebergies:這種問題最好還是從企畫面阻止會比較有效 05/03 18:11
lulala453:推樓上,編導讓排名系統上的名次拿不到任何好處就好了 05/03 21:28
lulala453:無法得到任何利益,cracker根本就不想去破解它 05/03 21:29
asoedarren:編導...似乎是某公司在用的名詞~ 05/03 23:03
Splash5:用簽證還是有一樣的問題 patch檢查簽證的code就好了 05/04 00:02
Splash5:這種東西最後只能靠硬體檔 例如檢查簽證的code在bootrom裡 05/04 00:03
Splash5:然後cpu一啟動就檢查bootrom的合法性.. 05/04 00:03
Splash5:但在pc上基本上作不到XD 05/04 00:04
Splash5:但有心的話還是能從硬體下手 嘗試送一些訊號讓cpu"秀斗" 05/04 00:05
Splash5:跳過檢查的部份... 05/04 00:05
cowbaying:那樣搞太麻煩了 除非是銀行的存款數目 我才會想改 05/04 00:07
Splash5:總之只要"想"破解應該沒有辦不到的...XD 05/04 00:08
justinlcs:使用RSA或者其他數學加密,就算對方知道你是怎麼加密的 05/05 00:41
justinlcs:只要你數值長度夠大,而且在傳輸過程不會過於明顯 05/05 00:42
justinlcs:解密還是需要不少時間,比如說2-3個月那種 05/05 00:43
justben:使用RSA只要長度夠,是不能被破解的@@ 05/06 05:57
justben:話說,能不能把分數的計算抽離出客戶端程式,另設一台主機 05/06 08:21
justben:處理,Client端還是照送相關封包過去,然後用實時檢查 05/06 08:23
justben:如此加密的處理就都在另一台主機,等於多一層防護 05/06 08:24
justben:而這個實時檢查就是Client跟分數處理主機互送heartbeat 05/06 08:31
justben:也就是只要Server,Client,分數計算 有一不合就斷開 ?@@ 05/06 08:37