OnlineGames

หมายเหตุ : เกือบทั้งหมด เป็น Bug ที่ถูกแก้ไปแล้ว และ ทั้งหมด เป็นช่องโหว่ที่คนเล่นทั่วไปรู้กันดี

วัตถุประสงค์ของเอ็นทรีนี้คือ อธิบายให้เข้าใจว่ามันเกิดได้อย่างไร และ ทำไม ไม่ได้เจตนาชี้โพรงให้กระรอกแต่อย่างใด

 


ปล บางอย่างก็ไม่ชัวร์นะ ผมจำได้หมดซะที่ไหนล่ะวิธีและสาเหตุมันอ่ะ

 

1.ซื้อ ขาย ของที่ไหนก็ได้

 

ทำไมจึงเกิด bug นี้?


เป็นความซื้อบื้อของโปรแกรมเมอร์ Gravity ที่ไม่ยอมเช็คระยะห่างระหว่างคนเล่นและ npc (เห็นได้ทั่วไปในเกม Eco) ดังนั้น แค่คุณรู้ตำแหน่ง NPC, เบอร์ NPC และแมพที่มันอยู่ คุณก็จะสามารถซื้อของขายของกับมันได้โดยการยิง packet talk ใส่ NPC ตัวนั้น

 

วิธีการทำ

ก็ยิง packet talk ใส่ NPC ตัวนั้นเลย 

 


โดนแก้แล้วหรือยัง?

แก้แล้ว ช่วง beta 1

 


2.ปั๊ม Bunny Band

 

ทำไมจึงเกิด bug นี้?


เป็นความซื้อบื้อของโปรแกรมเมอร์ Gravity อีกแล้วที่ไม่ยอมเก็บ Session หลังตัวละครออกจากเกม

วิธีการทำ

ง่ายๆ ดีล ออกเกม เข้าใหม่ ดีล ออกเกม เข้าใหม่ วนไปเรื่อยๆ


โดนแก้แล้วหรือยัง?

โดนตั้งแต่วันแรกที่มันทำกันได้น่ะแหละ แถม rooooooooooooooooooooolllllllllllllll back ด้วย

 


3.Cast Anywhere

ทำไมจึงเกิด bug นี้?


เหมือนข้อ 1 มันดันผลักภาระการเช็คระยะห่างของคนเล่นและ Monster ไปที่ client เพราะฉะนั้นก็เลยมีคนทำโปรแกรม โดยจะ hook
เพื่อ disable การเช็คระยะห่าง และยิง packet ใช้เวทย์โดยตรงไปที่มอนเตอร์เลย

วิธีการทำ

โปรแกรม Cast Anywhere หลักการก็ด้านบนแหละ คนเล่น beta 1 รู้จักกันดี 


โดนแก้แล้วหรือยัง?

กว่าจะแก้ ก็ล่อไปกลางๆ beta 1

 

4.sudteen

ทำไมจึงเกิด bug นี้?


หลักการของการใช้ Fly Wing อธิบายง่ายๆ ก็


1.client ส่ง packet skill_use = teleport ไปยัง server (fly wing = item skill : teleport Lv1)
2.server เช็คว่าตัวละครมี skill teleport มั้ย ถ้ามี หัก sp 10 ออกจาก charactor นั้น หรือถ้ามี fly wing ก็หัก fly wing ออก และส่งหน้าต่าง teleport ไปให้ในกรณีใช้ skill teleport
3.client เลือกสถานที่ๆ จะ teleport และ ส่ง packet teleport (กลับเซฟ หรือ สุ่ม) ไปยัง server ( fly wing จะข้ามขั้นตอนนี้ไป)
4.ทำการ teleport (กลับเซฟ หรือ สุ่ม) ให้ character ตัวนั้น


ดูจากหลักการแล้วมันไม่น่ามีช่องโหว่อะไรใช่มะ ดูดีๆ....

 

วิธีการทำ

ก็ส่ง packet ขอ teleport ไปที่ server ตรงๆ เลย หลักการของโปรแกรม sudteen คือ เข้า hook กับ ragexe และเปลี่ยน packet แสดง emotion alt+2 เป็น packet ขอ teleport


โดนแก้แล้วหรือยัง?

กว่าจะโดน fly wing แทบไม่มีคนซื้อ โดนไปแล้ว ช่วง beta 2 

 

5. Teleport NO SP


ทำไมจึงเกิด bug นี้?


หลักการของการ teleport
1.client ส่ง packet skill_use = teleport ไปยัง server
2.server เช็คว่าตัวละครมี skill teleport มั้ย ถ้ามี หัก sp 10 ออกจาก character นั้น และส่งหน้าต่าง teleport ไปให้
3.client เลือกสถานที่ๆ จะ teleport และ ส่ง packet teleport (กลับเซฟ หรือ สุ่ม) ไปยัง server
4.server เช็คว่าตัวละครมี skill teleport มั้ย ถ้ามีให้ teleport (กลับเซฟ หรือ สุ่ม) ตัวละครตัวนั้น ถ้าไม่มี ก็ไม่เกิดอะไรขึ้น (ขึ้นข้อความไม่สามารถใช้สกิลได้)
5.teleport!


....มันจะไม่มีอะไรเลยถ้าข้อ 1-2 มันข้ามไปได้น่ะ...

 

วิธีการทำ

ดักเอา packet ข้อ 3 มา แล้วส่งโลด..... นี่เป็นสาเหตุว่าทำไมเวลาเราเปิดบอทแบบ x-mode แล้วบอทวิง ไม่มีหน้าต่าง teleport ขึ้นมาให้เห็นแต่จะหน้าจอมืดเลยแบบใช้ Fly wing


โดนแก้แล้วหรือยัง?

ไม่รู้ว่าโปรแกรมเมอร์ของกราวิตี้มันจะซื้อบื้อไปถึงไหน ป่านนี้ยังไม่แก้อีก

 

6.Esc+Enter


ทำไมจึงเกิด bug นี้?


อธิบายยากโคตร ไม่รู้จะอธิบายยังไงดี เอาเป็นว่าเซิฟเวอร์มันจะ Protect ตัวละครที่กำลังจะออกจากเกมไม่ให้โดนแดมเมจใดๆ แต่ดันมีคำสั่งห้ามออกจากเกมในเวลา 10 วิเข้าไปขัด
มันก็เลย conflict และส่งผลเป็น : ออกจากเกมแต่ออกไม่ได้เพราะโดนตีอยู่และเพราะจะออกจากเกมเลยไม่โดน Damage ใดๆ (ใช้ในการแท้งบอสได้ดี)

วิธีการทำ:
esc+enter รัวๆ

โดนแก้แล้วหรือยัง

โดน ROLLLLLLLLLLLLLLLLLLLLLBACK ..... อีกแล้ว

 


7.แหกคุก


ทำไมจึงเกิด bug นี้?
[ขอยืมข้อความ คุณ JunkBot มาเลยแล้วกันครับ]
RO มันมีเซิร์ฟเวอร์ 3 ประเภทครับ ผมเรียกเองว่า Session Server, Character Server และ Zone Server สองชุดแรก Login ครั้งเดียวตอนเริ่มเกม
ตัวหลังจะเปลี่ยนไปเรื่อยๆ ขึ้นกับทาง Operator config ไว้ยังไง จากที่เช็ค เข้าใจว่าแบ่งตาม work load ของเครื่องครับ แมพไหนคนเยอะ ก็กระจายๆ ออกไป
เอาแมพคนน้อยๆ แทรกๆ เข้าไปให้โหลดมันใกล้ๆ กัน (ยกย่อง AS มากไปหรือเปล่า)

วิธีการทำ :
ก่อนที่จะเริ่ม เราต้องมี IP Address และ Port ของ Zone Server ใหม่ที่ต้องการ

สมมติว่า แมพขังบอท.gat มี IP address เป็น 192.168.1.1 และบังเอิญเรารู้มาว่ามี zone server อีกตัวนึงมี ip เป็น 192.168.1.2 เราสามารถ disconnect จาก zone server ปัจจุบัน (192.168.1.1)
แล้วต่อเข้า zone server ใหม่ที่ 192.168.1.2 ทันที จากนั้นส่ง packet map login (0x0072) ตามไปโดยใช้ character ID, session ID เดิม

ถ้าไม่สำเร็จ เราจะถูกตัดออกจากเซิฟเวอร์ บนเน็ตที่ผมใช้ จะถูกตัดออกใน 4 วินาที เมื่อต่อเข้าไปใหม่จะยังอยู่ map เดิม ให้ทำซ้ำ คือ disconnect จาก zone server ปัจจุบัน ต่อเข้า zone server ใหม่ แล้วส่ง map login (0x0072) ตามไป

ถ้าสำเร็จ (เข้าใจว่าเป็นเพราะ session ของเราถูก create บน server สำเร็จ) เราจะไปอยู่แมพใหม่ เข้าใจว่าเป็น map แรกที่ config ไว้ที่ server ครับ

เท่าที่ทดลอง จะต้องทำมากกว่า 1 ครั้งเสมอครับ ที่ดีที่สุดคือ 2 ครั้ง ที่แย่ที่สุดที่เจอคือ 4 ครั้งครับ แต่เวิร์กทุกครั้ง

ปกติ IP และ Port ของ Zone Server จะส่งมาจาก Server ผ่าน packet 0x0071 และ 0x0092
ในกรณีที่มีการเปลี่ยน Zone Server ตรงนี้มันมีช่องโหว่อยู่นิดครับ คือ เราไม่จำต้องต่อกับ zone server ที่ระบุไว้ก็ได้
เพียงแต่ อาจจะเล่นต่อไม่ได้ ต้อง Login ใหม่ แต่ถ้าหากเราต่อเข้า Zone Server ที่แตกต่างจากที่ระบุไว้ใน 0x0071 และ 0x0092 ได้สำเร็จ เราจะถูกย้ายไปแมพใหม่ทันที

 

โดนแก้แล้วหรือยัง?

ก็แหกกันมาหมดเซิฟเวอร์แล้ว.... ค่อยแก้ 

 


8.ธงกิลด์


ทำไมจึงเกิด bug นี้?
บัคนี้เกิดขึ้นได้ด้วย ความซื้อบื้อของโปรแกรมเมอร์ gravity (อีกแล้ว)
สคริปต์ของธงคร่าวๆ จะเป็นดังนี้ โปรแกรมจะทำงานจากบนไปล่าง

 

message นี่คือธงกิลด์นะจ๊ะ
next
if(อยู่ในกิลด์ที่เป็นเจ้าของปราสาท = เป็นจริง) {
message จะเข้าบ้านเลยมั้ยจ๊ะ
choice yes,no
if(choice = yes) {
next
message ยินดีต้อนรับกลับบ้านจ้า
warp character to ห้องหิน
end
}
else {
message วันหลังมาใหม่นะจ๊ะ
end
}
else {
message ยี้ พวกนอนวัด ไม่ให้เข้าบ้านหรอกจ๊ะ
end
}

มันก็ปกติดีใช่มะ แต่ถ้าคนทำบัคธงกิลด์เป็นจะอ๋อ!!! ท