【心得】來自外掛工程師的外掛與外掛偵測機制的知識科普

(function(w,d,s,l,i);w[l].push('gtm.start':
new Date().getTime(),event:'gtm.js');var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
)(window,document,'script','dataLayer','GTM-KDKMGT');
(function(d, s, id) var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/zh_TW/all.js#xfbml=1&appId=668497826514848"; fjs.parentNode.insertBefore(js, fjs); (document, 'script', 'facebook-jssdk'));






if(BAHAID)

BAHAIDlow = BAHAID.toLowerCase();

document.write('');

document.write('

');
document.write('');
document.write('');
document.write('');
document.write('

');

//document.write('
');
document.write('
');
document.write('
');
document.write('
');
document.write('
');
document.write('
');
document.write('
');

else
document.write('
');
document.write('');
document.write('
    ');
    document.write('
  • 我要登入
  • ');
    document.write('
  • 註冊
  • ');
    document.write('
  • ');
    document.write('
');
document.write('
');


document.write('
');

var hotKeywords = ["u4e16u754cu738b","u99ac","u8cbfu6613","u8077u696d","u8cfau9322","u65b0u624b","u885du88dd","u91e3u9b5a","u9ed1u8272u6c99u6f20","u5e06u8239","u88ddu5099","u6d77u602a","u758au5c64","u5bf5u7269","u5361u666e"];
var useOldSearch = 0;
var googlecseLoad = function()
var cx = '001994533065495648396:c3salsx3fty';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
;





service = new rsearch('rsearch');

if( BAHAID )
NOTIFY_getnum(undefined, notifynum);
run30 = setInterval("NOTIFY_getnum()",60000);


function insideSecondaryfunc(frm, evt)
if( 0 < egg('.isecondaryfunc').size() )
var class_display_state = egg('.isecondaryfunc').css('display');
if( "none" == class_display_state )
if( 1 == frm )
egg('.isecondaryfunc').css('display', '');
egg('#isecondaryfuncshow').css('display', 'none');

else
egg('.isecondaryfunc').css('display', 'none');
egg('#isecondaryfuncshow').css('display', '');


evt = window.event

 



var searchParam = false;BH_Menu_Render('FORUM_board', 0, 0, 'board_name=%E9%BB%91%E8%89%B2%E6%B2%99%E6%BC%A0%20BLACK%20DESERTboard_sn=19017c1=12327snA=41307sn=subbsn=0page=C.phplock=alert('此討論串已被鎖定');return false;article_title=%E3%80%90%E5%BF%83%E5%BE%97%E3%80%91%E4%BE%86%E8%87%AA%E5%A4%96%E6%8E%9B%E5%B7%A5%E7%A8%8B%E5%B8%AB%E7%9A%84%E5%A4%96%E6%8E%9B%E8%88%87%E5%A4%96%E6%8E%9B%E5%81%B5%E6%B8%AC%E6%A9%9F%E5%88%B6%E7%9A%84%E7%9F%A5%E8%AD%98%E7%A7%91%E6%99%AEbPage=0', searchParam);





top_abanner1000()




















    LV.
    1


    GP
    0


















    【心得】來自外掛工程師的外掛與外掛偵測機制的知識科普



    樓主
    t4si
    taida957789

    GP221
    BP-




    2018-07-20 03:34:16 編輯







    大家好,我想來分享一些關於正確關於外掛的科普



    在之前有位大大分享了下面這篇



    【心得】科普關於外掛判定



    https://m.gamer.com.tw/forum/C.php?bsn=19017&snA=39252



    但是其實有些不對的地方,想說我來分享一下我的觀點。

    我本身從事資訊行業的,專長就是外掛這個領域,曾經開發過楓之谷、跑跑卡丁車、救世者之樹、神魔之塔、白貓Project.....等等相關遊戲的外掛程式。



    切回正題!



    (一) 遊戲架構:



    線上遊戲會有兩種架構,一個是伺服器端,另一個是客戶端



    依照遊戲的邏輯,可能會有幾種狀況:



    1. 大部分的資訊給客戶端運算後,傳送到伺服器端更新

        

          十年前的MMORPG大部分都是這個架構,外掛可以透過更動遊戲程式的邏輯來影響更新的資料,例如:攻擊傷害、補血魔的量、攻擊速度.。



    2. 大部分伺服器端運算好資訊後,傳送給客戶端顯示出來



          目前大部分的遊戲都採用這種方法了,黑色沙漠就是其中一個,舉例來說:黑色沙漠攻擊時,只有跟伺服器說我要攻擊了,傷害的數字、打擊成功之類的資訊是在伺服器收到要求後根據伺服器上的角色資訊來計算,最後傳送給客戶端顯示





    (二)外掛的種類



    外掛基本上分為幾種類型:



    【更改客戶端的遊戲檔案】



        這類型的外掛通常影響上述第一種線上遊戲架構,他們更動遊戲資料後,客戶端讀取這些資料進行計算,最後傳送給伺服器。



        但是這類型的資訊通常客戶端會把運算的參數用一些雜湊函數來讓伺服器驗證是不是用了正確的參數來進行運算,如果伺服器發現參數不對,那這些更改可能就無效了



       舉個例子:在楓之谷這個遊戲中,有人會更動遊戲檔案 (Skill.wz)來更動攻擊力之類的,進而達成滿傷的結果,但是更動後,雖然客戶端打出數字,實際上卻是打空的效果,這就是伺服器檢驗不通過所造成的。 那前陣子在該遊戲有些特殊技能能有實際改動傷害的效果可能是因為他們沒有檢查到那部分而已.。

          這類方法對於像黑沙這種遊戲來說,大部分遊戲資訊的運送都在伺服器上這種的,基本上找不到什麼能改的,最多就自爽的R18裸體模組這種東西。





    【更改遊戲記憶體】



        這類型的外掛,他不更改遊戲檔案,而是在遊戲運行過程中,更動記憶體來達成想要的功能。程式在運行時,遊戲的程式碼、資料都會被放入記憶體中等待執行、讀取或是寫入,外掛開發者會去找特定功能的遊戲程式碼在哪些記憶體位置中,去攔截並插入自己的程式,來達成遊戲邏輯的更動。



        舉例來說,黑沙勇士找到了取得釣魚狀態的程式位置,黑沙勇士透過呼叫這些程式,來讓人物自己自動可以放竿、拉竿.。這種類型的外掛,我們通常會去找這些基本功能的函數位置後,我們再寫程式跟遊戲做互動來達成自動化的功能(釣魚、採集 甚至是打怪 ),以釣魚來說,外掛裡面有寫著我幾秒拉竿啊,拉竿後取得拉竿輸入的字串然後呼叫按鍵功能一個一個模擬按鍵;以自動打怪來說,外掛會先取得怪物座標後,呼叫移動人物把人物移過去,人物到了後呼叫技能打怪,取得怪物資訊發現怪死了,繼續找怪 然後一直重複做這些事情



       這種外掛可以改攻擊傷害技能數值,但也受限於上述第一種遊戲伺服器架構。

       而如果是模擬功能,呼叫走路、釣魚這種,他實際上影響的是遊戲行為,就不受限了。



    【攔截、更動封包】



        能影響遊戲資料的通常是手遊,手遊通常用我們平常瀏覽網站的協定來做伺服器與客戶端之間的溝通,外掛通常是一個代理伺服器,像是以前神魔之塔更改隊友牌組的代理伺服器外掛。

        另一種通常是為了提供遊戲內的資訊而開放的,希望可以透過程式化取得遊戲資料,舉例來說,我朋友之前有寫了一個納貢資料查詢系統,他利用python程式語言仿造客戶端與伺服器之間的溝通,讓程式模擬點納貢NPC的封包,解析伺服器回傳的納貢封包後,將資料上傳到網頁顯示。最後我只要每個伺服器創好帳號,我開一台伺服器每個伺服器跑一次腳本,就能取得所以伺服器納貢剩下多少數量的資料了,節省非常多資源,不用十幾開遊戲之類的。



    【非侵入式的模擬按鍵】



        按鍵精靈就屬於這類,他並沒有實際侵入遊戲記憶體,而是呼叫系統本身提供的功能來模擬玩家的行為、取得截圖用圖片辨識演算法來判斷狀態。這種通常一定要開著遊戲在最上層,可能不能做其他事之類的。



         國外有個黑沙的 AutoFishing 就是透過這樣的方式自動釣魚。





    (三)防外掛、外掛偵測機制



    【人為偵測】

        就找GM來抓,通常找工讀生之類的來抓。



    【伺服器偵測系統】

        通常是伺服器發現玩家行為有異常(攻擊力不對、攻擊太快、移動太快,半夜持續手動釣魚的行為)後,將玩家斷線、鎖定帳號之類的。黑色沙漠不確定有沒有這個機制,之前我有找到台服攻擊跟移動加速,小測一下後好像有點效果,但可能黑沙也可能只是把異常回報GM,再由GM巡邏取締也說不定。

        這部分防掛通常需要數據分析的技術,做分群啊之類來判定玩家行為是不是正常



    【第三方防掛程式】

        常見的XignCode3、HackShield 、NProtect 屬於這類,他們通常是由一些防毒公司、對系統底層很了解的工程師(這算真的駭客等級了)、甚至外掛工程師所開發的。他們的原理基本上就跟外掛沒兩樣,想像成比較毒的,不會影響遊戲邏輯,幫遊戲公司找出遊戲外掛的軟體。這些軟體基本上跟駭客的木馬有87%像,像是HackShield具有遠端遙控、遠端執行程式碼的功能,你能想像裝這個等於電腦開了一個門給遊戲廠商進入呢。雖然平常肯定不會開這些功能就是了,不然應該一堆公司會被吉。這類防外掛程式通常會掃描玩家電腦的程式有沒有不該開的,比方說外掛、偵錯程式..etc,可能是用執行檔案的名稱做過濾,或是視窗的標題。那通常是原廠會把外掛提供給第三方防掛軟體的廠商,讓他們把該程式的特徵加入黑名單,然後這個外掛就會被偵測了。



    那為什麼外掛照樣出現?  外掛可以改版,跟病毒一樣,他們只要找出防掛軟體用什麼當作特徵,然後想辦法把特徵去掉,就可以躲過偵測了。所以像沙士至少一個禮拜1-2個版本



    ---------------------------------



    黑色沙漠目前來說



    他們都有定期回報外掛的程式給第三方防掛來偵測,沙士每週一固定會被XignCode3偵測到就是這個原因。官方沒意外都會去買程式回報。



    至於伺服器內的行為偵測應該是分析後有異常會通知GM吧,畢竟資料分析不是 0 誤判的,GM必須巡邏過濾正常玩家。



    最後我個認為,黑沙算是認真在抓外掛的遊戲了,遊戲難免都會有外掛的,道高一尺,魔高一丈,現階段外掛不可能完全消失,官方真的最多只能透過這些防掛機制來提高外掛出現的時間成本而已。目前狀況來說還是OK的,所以我覺得沒必要過度罵官方不抓外掛之類的,真的不抓外掛的時候,外掛應該是滿街跑的...





    以上是一個曾是外掛工程師的路人來分享心得,有任何錯誤歡迎指教,希望透過這篇文能讓大家了解一下這方面的一些小知識。





    有人484都不看內文R,在這提醒,我不鼓勵外掛行為,這是我吃飯的工具,給大家一點工程師的觀點而已



    ----------------------------------------------------------------------------------------------------------



    【閃電外掛 補充】

    我其實沒什麼研究黑沙有哪些外掛,我稍微查了一下,應該是指攻擊、移動加速這部分,正常來說,伺服器應該要判定攻擊的間格,楓之谷有做這件事情,伺服器端的時間以及客戶端時間都有檢查

    ,黑沙移動的部分,有點像是判定平均速率,比方說女巫山頂瞬間移動,會被退回,這就是伺服器不允許移動,重置玩家的座標。 加速外掛可能是剛好沒有超過伺服器判定的時間吧,這部分只能瞎猜,如果美服被這個外掛肆虐,我相信過陣子應該就會放上檢測了。加速原理的話,沒意外是讓客戶端buff異常,這部分我不知道有沒有實作伺服器端的檢驗,有的話一定測的到,就怕沒有做....




    【楓之谷外掛都不抓? 補充】

    我研究楓之谷最久﹑官方其實一直都有在做回報啦,當初吸怪徹底被偵測系統逮到,連大陸外掛的西怪都不見了,只能出些特定技能的無延遲。Nexon原廠自己也開始在拓展防作弊引擎技術的開發,楓之谷現在使用的 Nexon Guard Security 就是原廠寫的。













    221



    -















    LV.
    19


    GP
    7k




















    3 樓
    雞拉大河
    black2599

    GP9
    BP7



    2018-07-19 09:47:28








    > 2. 大部分伺服器端運算好資訊後,傳送給客戶端顯示出來
    > 目前大部分的遊戲都採用這種方法了,黑色沙漠就是其中一個,舉例來說:黑色沙漠攻擊時,只有跟伺服器說我要攻擊了,傷害的數字、打擊成功之類的資訊是在伺服器收到要求後根據伺服器上的角色資訊來計算,最後傳送給客戶端顯
    > (三)防外掛、外掛偵測機制
    > 【人為偵測】
    > 就找GM來抓,通常找工讀生之類的來抓。
    > 【伺服器偵測系統】
    > 通常是伺服器發現玩家行為有異常(攻擊力不對、攻擊太快、移動太快,半夜持續手動釣魚的行為)後,將玩家斷線、鎖定帳號之類的。黑色沙漠不確定有沒有這個機制,之前我有找到台服攻擊跟移動加速,小測一下後好像有點效果,但可能黑沙也可能只是把異常回報GM,再由GM巡邏取締也說不定。
    > 這部分防掛通常需要數據分析的技術,做分群啊之類來判定玩家行為是不是正常

    既然是動到官方那邊, 我想只要開 " 閃電 "一定會留下相關紀錄, 而版上繪聲繪影


    在是非恩怨一堆文的某些玩家至今依然沒人被抓, 那是不是純粹就是他們很強而



    不是開" 閃電 "?? 畢竟若是檢舉後官方去調資料, 只要真的有開幾乎就穩鎖無誤。





    9



    7














    LV.
    19


    GP
    620




















    4 樓
    海苔
    e24370936e

    GP4
    BP-



    2018-07-19 09:50:00 編輯







    感謝專業人士科普


    讓大家有一定的認識,不會盲目跟風



    討論外掛不是件禁忌。其實身為老玩家,外掛這東西真的是減少自己玩遊戲的壽命,畢竟看得比較多



    玩黑沙的玩家年紀相對成熟,相對的思考較多,知道自己在玩什麼才是玩遊戲的初衷啊





    4



    -














    LV.
    15


    GP
    44




















    5 樓
    >_<
    gg529686

    GP0
    BP-



    2018-07-19 10:00:57







    為什麼ㄈㄓ谷不抓??


    有沒有可能那些洗幣的就是官方??





    0



    -














    LV.
    1


    GP
    2




















    6 樓
    Blade Master
    zxc225583

    GP1
    BP-



    2018-07-19 12:27:07







    所以外掛也可以更改遊戲內的攻擊力跟攻擊速度囉!?!?

    難怪在自由決鬥場都被打的想皮紙一樣= =”




    1



    -














    LV.
    25


    GP
    819




















    7 樓
    ♫(ง*´͈౪`͈)ว♪
    eva2274927

    GP1
    BP-



    2018-07-20 03:22:22










    然後某一天我想到這件事時

    在他們上班時間 線上聯絡客服

    是說 已經有回報第三方檢查



    至於成效如何

    看還有沒有人在用就知道



    喔齁齁齁齁





    1



    -














    LV.
    6


    GP
    68




















    8 樓
    qgq8896
    qgq8895

    GP0
    BP-



    2018-07-20 03:42:58







    不得不說現在手游都進化成AUTO模式



    黑沙玩法真的太肝了



    機械式練功  又不是以前玩天堂  常常看到有人玩天堂玩到睡著



    黑沙PC版也許引進自動練功還有救





    0



    -














    LV.
    8


    GP
    69




















    9 樓
    實話
    okaykingggez

    GP6
    BP-



    2018-07-20 09:32:55 編輯







    ※ 引述《qgq8895 (qgq8896 )》之銘言

    如上樓所言 我倒覺得自動練功不好

    不如把狩獵怪物難度提升 掉寶提升
    打每隻怪或者打高級獵場的怪


    都需要花費技巧跟心思去應付

    目前的打怪我覺得說是《掃蕩怪物》

    比較貼切(要不要出個掃蕩卷

    畢竟沒有真三國一騎當千的《打怪感》

    因為有限制拉怪的數量 大大影響爽感

    所以我覺得珍艾碧在平衡職業的同時


    也該想想怪物狩獵的方面該如何改動

    不如就把獵場形式分成兩種

    一種就是怪物密集且不限制拉怪數量

    另一種就是怪物量適中但單體強

    且寶物掉落率比較高

    在不改的話我覺得遊戲未來會很危險

    我個人是覺得遊戲到了現在

    想打怪的玩家真的不多

    打怪的大部分都有目標想變強才拼命打

    少部分是因為愛打怪或者只會打怪

    我認為打怪這事情不能只是為了

    應付裝備的提升而設置的機制

    讓打怪這件事變有趣也是重點之一

    不然你看看現在的世界王

    少了隨機性 天天定時出來領便當

    也不用花太多心思去閃躲 實在無聊

    完完全全失去了boss的意義

    照理來說boss給人的感覺該是這樣

    野外看到王 心想靠杯這邊怎麼出王>

    揪團上前討伐中途有生有死>

    某某隊員打到寶物 乾真好 恭喜啊!

    但黑沙是這樣的


    噢 時間到了該吃王了>換角打王>

    A王死了在換角打B王>B王也死了>

    馬德都沒我的箱子 拉基糞game!













    6



    -














    LV.
    15


    GP
    325




















    10 樓
    我用巨集打黑沙
    elvis756

    GP1
    BP-



    2018-07-20 09:46:31 編輯







    你說以黑沙目前來說算是認真抓外掛,你敢說我還真的不敢信。


    以下替您的貼文做個補充:

    臺服黑色沙漠的XC3是改良(?)過的,只要沒有在伺服器留下痕跡,即使你開類似沙士這種自動XX的也完全不會被鎖!因為臺服XC3只有偵測後強制關閉遊戲的作用,並沒有回傳紀錄的動作。

    至於為什麼臺服XC3沒有這種功能呢?因為法律的關係不能讓他這麼做,不過主要原因是孬!就是太孬才沒有這種功能,看看隔壁棚Garena,以前的ggdllhost.exe,恐怖到什麼程度都沒被告,偷偷加個上傳功能也合情合理吧?



    上述這些都是我在今年2月和其他朋友測試的,有沒有什麼改動我就不清楚了,黑色沙漠表面上是原廠直營,不過我認為實際上原廠根本沒干涉太多,頂多遊戲進度罷了。



    最後有人曾經噴我問過為何巨集不會被鎖?滑鼠有左、中和右鍵以外的側鍵嚴格來說就是巨集的一種,只差你沒刻意去設定而已,如果黑色沙漠今天要開始鎖巨集,肯定有一堆人會被鎖,那些滑鼠只要有巨集功能的人,即使你沒使用都會被鎖,這就是官方不鎖巨集的原因,當然你如果買個高級巨集弄出沙士的功能還是會被GM問候的。





    1



    -














    LV.
    31


    GP
    770




















    11 樓
    椰子奶油
    nancy820704

    GP1
    BP-



    2018-07-20 12:44:03









    來補充一些發現的小東西。

    • 俄羅斯的釣魚歪瓜


      我反編譯後看到是用Autoit做出來的,Autoit類似你們可能聽過的AutoHotkey。他們利用腳本讓軟體去模擬硬體輸入,再搭配影像辨識來判斷目前人物是不是正在釣魚、加工。一般人要學會寫腳本的難易度很低,但是官方也很好阻擋,因為特徵也很明顯,所以一般人用Autoit或是AutoHotkey寫出來的腳本,應該一產生software input就彈放大鏡了。而他們外掛製造商應該有自己寫過dll去規避吧,我猜



    • 沙士


      沙士的部分好像是把遊戲hook起來,然後直接對執行序丟event?因為沒有用過,所以不太清楚,不過好像沒看到可以竄改遊戲相關的功能,有請高手解釋解釋。沙士每次改版都會把title之類的用亂碼改過,簡單說就是像開板大說的,把特徵換掉來躲避放大鏡。





    我是沒有什麼外掛的開發經驗啦…有錯還請炮小力一點

    只有幾年前玩一款主打晶片戰的R某 Online,該遊戲的NP盾也是鎖軟體輸入。所以我就把atmel晶片的板子改韌體改成接上USB後會註冊成實體鍵盤,並且程式性的輸入鍵盤訊號。對官方而言,我就是一個「80多歲不會用滑鼠玩遊戲,只會用鍵盤很簡單的定點打怪的老伯伯」吧



    黑沙我只有曾經寫過偷聽聊天頻道功能的程式,講白了就只是抓網路封包解析而已,動機只是因為打開交易所時,會看不到聊天頻道讓我覺得很幹。這遊戲已經夠單機了,蹲交易所還看不到其他玩家聊天?更他x的感覺有夠邊緣,交易所NPC又不會跟我聊天







    1



    -












    jQuery(function()jQuery('.imgfill').imagefill(););


    ◄►


    1




    function chpagehotkey(code)
    if (code === 119)
    location.href = "?page=2&bsn=19017&snA=41307&tnum=12";

    else if(code === 118)
    location.href = "?page=0&bsn=19017&snA=41307&tnum=12";








    板務人員:

    1137 筆精華,08/22 更新
    一個月內新增 0 筆
    歡迎加入共同維護。







    googletag.cmd.push(function() googletag.display('div-gpt-ad-1489070677458-0'); );































    回列表
    分享追蹤
    回覆關圖


    【心得】來自外掛工程師的外掛與外掛偵測機制的知識科普







    (function(window, $)
    'use strict';

    var goTop = $('.c-fixed--footer .gotop');
    $(window).on('scroll', function()
    if(goTop.data('sliding') == 'yes')
    return;


    var scrollTop = $(window).scrollTop();
    var height = $(window).height();
    if (scrollTop >= height && goTop.is(':hidden'))
    goTop.data('sliding', 'yes').slideDown('fast', function()
    goTop.removeData('sliding').show();
    );
    else if (scrollTop < height && goTop.is(':visible'))
    goTop.data('sliding', 'yes').slideUp('fast', function()
    goTop.removeData('sliding').hide();
    );

    );
    )(window, jQuery);


    var attachMediaLogin = 'N';


    if( '1' == '0' )
    location.href="#down";
    else if( 0 != 0 )
    location.href="#0";


    //巴哈商城
    if( $('#gshop_link').size() )
    var btn_gshop_link = $('#gshop_link').html();
    $('#gshop_link').html('');
    else
    var btn_gshop_link = '';


    buttonToMobile();

    //右側廣告固定
    function fadRefresh()
    var posY = egg('#flySalve').pos().y;
    var fad_style = document.getElementById("flySalve").style;
    window.onscroll = fadRefresh;
    window.onresize = function() fad_style.left = null;;














    face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】




    googlecseLoad();

    jQuery(".a-mercy-d").click(function()
    var url = this.href;
    var goRedirect = false;
    var openNew = (this.target) ? true : false;

    if( url )
    jQuery.get( "/ajax/baha_lkasoo.php", id: jQuery(this).data('ssn') )
    .done(function()
    goRedirect = true;
    if( !openNew )
    document.location = url;

    );

    setTimeout(function()
    if (!goRedirect)
    if( !openNew )
    document.location = url;


    , 1500);


    if( !openNew )
    return false;

    );

    var mercyadblock = (function ()
    var adblock = ;

    adblock.show = function ()
    jQuery('.alert-close').parent().show();
    ;

    adblock.hide = function ()
    jQuery('.alert-close').parent().hide();
    ;

    adblock.check = function ()
    if (localStorage.getItem('admercyblocks') === null)
    jQuery('.alert-close').parent().show();
    else
    var hourts = Math.floor(Date.now() / 1000)-86400;
    if (localStorage.getItem('admercyblocks') < hourts)
    jQuery('.alert-close').parent().show();
    localStorage.removeItem('admercyblocks');


    ;

    return adblock;
    ());

    if (typeof(Storage) === "undefined")
    /*load fail*/
    if (typeof antiadb === 'undefined')
    mercyadblock.show();
    else
    /*load success but open*/
    antiadb.onDetected(function ()
    mercyadblock.show();
    );

    else
    /*load fail*/
    if (typeof antiadb === 'undefined')
    mercyadblock.check();
    else
    /*load success but open*/
    antiadb.onDetected(function()
    mercyadblock.check();
    );



    jQuery(".alert-close").click(function()
    mercyadblock.hide();

    if (typeof(Storage) !== "undefined")
    localStorage.setItem('admercyblocks', Math.floor(Date.now() / 1000));

    );

    jQuery('body').click(function(event)
    if (!jQuery(event.target).parents('.TOP-btn').length
    && !jQuery(event.target).parents('.TOP-my').length
    && jQuery(event.target).parents('.TOP-msg').attr('id') != 'topBarMsg_'+topBarType)
    jQuery('#topBarMsg_'+topBarType).css('display','none');
    jQuery('#topBar_'+topBarType).attr('class', topBarClass);

    insideSecondaryfunc(2, event);

    );

    var mousewheelevt=(/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel" //FF doesn't recognize mousewheel as of FF3.x
    if(document.getElementById('BH-top-data').attachEvent) //if IE (and Opera depending on user setting)
    document.getElementById('BH-top-data').attachEvent("on"+mousewheelevt, TOPBAR_stopWheel);

    else if(document.getElementById('BH-top-data').addEventListener) //WC3 browsers
    document.getElementById('BH-top-data').addEventListener(mousewheelevt, TOPBAR_stopWheel, false);


    if( 'function' == typeof(chpagehotkey) )
    document.onkeydown = function (evt);


    if( typeof BH_mainmenu_init === 'function' )
    var BahamutMenu = new BH_mainmenu_init();
    BahamutMenu.onScroll();


    The name of the picture黑色沙漠手遊公會缺人名稱是GO歡迎大家查詢到後加入

    This page is only for reference, If you need detailed information, please check here
    The name of the pictureThe name of the picture

    Popular posts from this blog

    京昆高速公路

    【情報】本週珍珠商品重點:煉金時裝 + 艾港勞工宿舍!!

    【攻略】陳戈-謝勒汗智慧的古書 (完成)