วันอังคารที่ 5 มกราคม พ.ศ. 2553

Tip & Technic การเขียนบอท Ts Online พาส 4

F444 31 00
_ _ _ _ 03
_ _ _ _ XX XX XX XX << ID
_ _ _ _ 01 00 00 01 32
_ _ _ _ 6A 01 ---- x
_ _ _ _ 3F 07 ---- y
_ _ _ _ 00 01 00 8F EA 76 1A 3E AE 7D 1A 05 F6 4E 38 4D C3 36 DE 52 3C 5A 00 00 00 00 0B 00
_ _ _ _ XX XX XX XX XX XX XX << ชื่อ

ค่าไหนที่เราสนใจ ก็เอา เครื่องคิดเลขใน window มากด
เช่น ค่า max hp ของผมเป็น 382 กดดู ฐาน 16 จะได้ 17E ก็ เอา มาแยก เป็น 01 7E แล้ว สลับ เป็น 7E 01 แล้วไปหา ใน packet เป็นต้น

ค่าไหน เรา แกะได้ ก็ ตัดเอาค่านั้นมาใช้
ค่าไหนไม่รู้ก็ช่างมาน เด๋ว พอรู้ค่อยเอามาใช้


นึกบทเรียนไม่ออกแล้วจ้า
ตอนนี้ก็พอทำกันได้แล้ว รับส่งข้อมูลได้ เกือบได้แล้วหล่ะ

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

การจะบอกว่า
packet อะไร เป็ฯแบบไหน ง่ายคับ แต่ผมไม่บอก อ่ะ บอกไปก็ไม่ได้คิด จิงป่ะ แล้วก็จะไม่ได้ฝึก พอต้องการ packet อื่น ๆ ก็ จะถาม ๆ อีก ก่อนจะถาม เราต้อง หาเองก่อน จนกว่าจะหมดหนทาง

คิดว่าทุกคนคง เคยใช้ tsbot เห็นมั้ย ว่า script ง่าย ๆ มีตั้งเยอะแยะ ที่ post ๆ ไว้ พอถามแล้ว บอกง่าย ๆ ก็ จะเอาไปใช้ พออยากเปลี่ยน script เอง กลายเป็นว่า ทำไม่เป็น เพราะ ไม่เคยรู้ว่า script เค้าเขียนกันยังไง ทำไมเค้าถึงเขียนแบบนั้น อะไรประมาณนี้อ่ะคับ

ตามหลัก การ สื่อสาร ข้อมูลชนิด ตัวเลข ที่มีขนาดมากกว่า 1 bytes จะถูก สลับ จำไม่ได้ว่าเรียกว่าอะไร คุ้น ๆ ว่า อะไรอินเดียน ๆ ลืมไปละ ช่างมัน เอาเป็นว่า ถ้ามากกว่า 1 byte ก็ ค่าที่ได้ จาก packet จะต้องเอามาสลับ byte order ก่อน
เช่น 01 7E = 382
แต่ ตาม byte order จะเป็น 7E 01 หมายถึง ค่า 382
ถ้าขนาดมาก ๆ ที่เป็น 4 bytes
เช่น
00 01 E2 40 = 123456
ตาม byte order จะเป็น 40 E2 01 00 = 123456

การสลับbyte (byte order) จะใช้กับข้อมูลพวกตัวเลข ที่มีขนาด 2 หรือ 4 bytes นะค่ะ ทำไมต้องทำ อันนี้เป็น
ธรรมชาติของ intel cpu ถ้า เป็น sparc ไม่ต้องสลับ

example
data = AA BB CC DD EE FF
ถ้าคิดว่า ข้อมูลเป็นตัวเลข มีขนาด 2 byte อยู่ที่ CC เป็นต้นไป

ค่าที่ได้ คือ [CC DD] -> [DD CC] เอา DD CC ไปแปลงเป็น ฐานสิบซะ
ถ้าคิดว่า ข้อมูลเป็นตัวเลข มีขนาด 4 byte อยู่ที่ CC เป็นต้นไป

ค่าที่ได้ คือ [CC DD EE FF] -> [FF EE DD CC] เอา FF EE DD CC
ไปแปลงเป็น ฐานสิบซะ

เคดิต http://www.paradizex.com/forum/index.php?s=&showtopic=154&view=findpost&p=980

ไม่มีความคิดเห็น:

แสดงความคิดเห็น