報告
在下我發現一個WOG的BUG
這個BUG可以鎖定某個NPC的HP來滅少怪出現的範圍
但我不知要反應給誰.還是我可以直接打在這上面.麻煩告知一下@@
[問題]大發現,我發現WOG一個BUG報告
在下我發現一個WOG的BUG 這個BUG可以鎖定某個NPC的HP來滅少怪出現的範圍 但我不知要反應給誰.還是我可以直接打在這上面.麻煩告知一下@@
沒人回那我就直接說了
WOG線上遊戲鎖怪BUG 在WOG內wog_fight.php內的fire($user_id)函數中 針對怪的出現是 $sql="select * from wog_monster where m_place=".$_POST["act"]." ORDER BY RAND() LIMIT 1 "; 這意思是在一個場地的怪亂數找一支 如果有心人改變$_POST["act"]的值就可以達到鎖怪 那如何可以改變這個值 在按了冒險開始之後.我們可以看到修練戰場的選擇內容是 <option value="13" >Fantasy</option> 我們可以把這個VALUE改成 <option value="13 And m_hp=怪的HP" >Fantasy</option> 這樣在按攻擊後 傳上去的$_POST[ACT]將原本的13變成了13 And m_hp=怪的HP 那進入SQL COMMAND去查只會得到這個M_HP的怪 攻擊完在將COOKET的SET_WOG內的資料清空(這是記錄你打怪的場地跟模式還有設定) 就可以達到鎖怪的目的了 改善的方法是 if($p=$DB_site->query_first($sql))//check act_timt benig { if($p[p_hp]==0) { alertWindowMsg("HP為0 請好好休息在來打吧..^_^"); } if($p[p_key]!=0) { event_start($user_id,$p[p_key]); } if(rand(1,80)==1) { event_creat($user_id); } 在這加上判斷$_POST["ACT"]是否為數字,或內容是否有空白或..一大堆自己想 $sql="select * from wog_monster where m_place=".$_POST["act"]." ORDER BY RAND() LIMIT 1 "; $m=$DB_site->query_first($sql); if($m)//m date check start
恩 只要使用可以開啟socket的語言 自行寫一程式來連線,這個方法是可行的 以前有會員寫過這樣的bot來掛wog 防範方式很簡單 如上面"哇靠"會員所說 在
前面加入判斷是否有數字外,其他的符號
這樣就可以了
感謝大大的回應
整理一下好了 在WOG目錄內wog_fight.php內的fire($user_id)函數中 找到 $sql="select * from wog_monster where m_place=".$_POST["act"]." ORDER BY RAND() LIMIT 1 "; 改成 if(eregi("[^0-9]",$_POST["act"])) { alertWindowMsg("請選擇場地") } $sql="select * from wog_monster where m_place=".$_POST["act"]." ORDER BY RAND() LIMIT 1 "; 就可以防止鎖怪了 在這說明一點 要完成鎖怪的動作不須用到SOCK埠那樣高深的學問 只要用VB或C++將IE包在裡面開啟WOG的遊戲 在用物件的觀念去做就好了 最後 謝謝ETERNAL跟GYM的熱心回應 祝順心 |
正在瀏覽這個版面的使用者:沒有註冊會員 和 2 位訪客