Transcript
เขี�ยนบอทด้วย VB6
posted on 08 Aug 2009 19:18 by immortalpao in Programming
Introduction
- - - - - - - - - - -
CODE: SELECT ALL
พี่�� FireBoy ไม่�พี่อใจที่��ผม่ม่าสอนงี้��ก็� ลบได้�นะคั�บ
ก็�ม่�ายม่�ไรม่าก็คัร�บ คั�อว่�าผม่เป็!นคันเอ�อ... ด้�อยาก็ช่�ว่ยเหล�อคันที่��อยาก็ที่$าบอที่... :shock:ถุ&ย เหอะๆ - - ก็�คั�อว่�างี้จ�ด้คัร�บ เลยม่าสอนก็�นหน�อย
ขอบอก็ไว่�ก็�อนนะคัร�บ ว่�า Code ที่��เข�ยนน��คั�อ ให�อ�านงี้�ายๆ พี่อจะเข�าใจ ม่�น ถุ�าจะเอา Code น��ไป็ที่$าบยอที่จ*งี้ๆ คังี้ไม่�ม่�ที่างี้จะได้�นะคัร�บ คังี้ต้�องี้ไป็ป็ร�บแต้�งี้แบบเยอะเลยคัร�บ - ไม่�แน�ผม่จะต้��งี้ก็ระที่-�ใหม่�สอนแต้�พี่ว่ก็ code อย�างี้เด้�ยว่ละก็�น (ถุ�าว่�าจ�ด้พี่อ)
ม่าเร�ยนเร��องี้ต้�ว่เลขก็�อนน*ด้น.งี้ก็�ด้�นะคั�บ
ต้�ว่เลข ใน คัอม่ ที่�� น*ยม่ใช่� และที่�� ม่�ก็จะต้�องี้ร- �เพี่��อเอาม่าใช่� ป็ระก็อบด้�ว่ย เลขฐาน 2 ฐาน 8
ฐาน 10 และ ฐาน 16
ฐาน 2 คั�อ ม่�ต้�ว่เลขอย-� 2 ต้�ว่ แต้�สาม่ารถุ น*ยาม่ ต้�ว่เลข ที่��ม่�คั�าอ��น ๆ ได้�ต้�ว่เลข ใน ฐาน 2 คั�อ1 และ 0เช่�นเลข 1 ที่�� พี่ว่ก็เราเข�าใจ ม่�คั�า เป็!น 0000 0001 <<< 1 byte
เลข 2 ที่�� พี่ว่ก็เราเข�าใจ ม่�คั�า เป็!น 0000 0010 <<< 1 byte
เลข 3 ที่�� พี่ว่ก็เราเข�าใจ ม่�คั�า เป็!น 0000 0011 <<< 1 byte
เลข 4 ที่�� พี่ว่ก็เราเข�าใจ ม่�คั�า เป็!น 0000 0100 <<< 1 byte
....
เลข 255 ที่�� พี่ว่ก็เราเข�าใจ ม่�คั�า เป็!น 1111 1111 <<< 1 byte
ไป็เร��อย ๆ ใน 1 byte จะน*ยาม่ ต้�ว่เลขได้�ถุ.งี้ 256 คั�า คั�อ 0 - 255
ฐาน ที่�� จ$าเป็!น อ�ก็ ฐาน คั�อ ฐาน 8 แต้�ไม่�คั�อยได้�ใช่� แต้�คัว่รร- �ไว่�
หล�ก็ก็ก็าร เหม่�อนเด้*ม่ คั�อเซต้ ของี้ต้�ว่เลข ต้��งี้แต้� 0 - 7 ( จะเห�น ว่�า ม่� 8 ต้�ว่ ) แต้� สาม่ารถุ น$าไป็น*ยาม่ ต้�ว่เลข อ��น ๆ ได้�
0 = 000
1 = 001
2= 002
3=003
4=004
5= 005
6=006
7=007
8=010
9=011
10=012
11=013
.....จนถุ.งี้ 777
จะพี่บ บ�อย ๆ ก็�บเร��องี้ ของี้ ส*ที่ธิ*ก็ารใช่�งี้าน file บน ระบบ unix
ไม่�คั�อยเจอบน windows เที่�าไหร�
ต้�อไป็ที่��พี่บม่าก็ที่��ส&ด้ คั�อ ฐาน 16
ป็ระก็อบด้�ว่ย0 1 2 3 4 5 6 7 8 9 A B C D E F
ที่��งี้หม่ด้ 16 ต้�ว่ โด้ย ต้��งี้แต้� A - F จะแที่น จ$านว่น 10 - 15
1 = 01
2 = 02
3 = 03
...
9=09
10 =0A
11=0B
12=0C
...
15= 0F
======================
คัว่าม่ ส�ม่พี่�นธิ3 โด้ยต้รงี้ก็�บเลขฐาน 2คั�อ เม่��อ เรา น$า เลข ฐาน 2 ก็ะ ฐาน 16 ม่าเป็ร�ยบเที่�ยบก็�นม่�นจะ ต้รงี้ก็�น เช่�น
0(2)__= 0000 0000
0(16)_= ___0___0
1(2)__= 0000 0001
1(16)_= ___0___1
...
10(2)__= 0000 1010
10(16)_= ___0__ A
15(2)__= 0000 1111
15(16)_= ___0__ F
16(2)__= 0001 0000
16(16)_= ___1__ 0
ด้�งี้น��น เม่��อเห�นเลข ฐาน 16 เช่�น 0x78 เอาม่าเข�ยน เป็!น ฐาน 2จะได้�___7 ___8
0111 1000
คั�อพี่-ด้งี้�าย ๆ เม่�อเห�น เลข ฐาน 16 เราจะเอาม่าเข�ยน เป็!นฐาน 2 ได้�ที่�นที่�แต้�ก็ารจะเอา ม่าที่$าเป็!น ฐาน 10 ต้�องี้คั*ด้ก็�อน
- ระบบเลขฐาน 2 เลข 0 ก็�บ 1- ระบบเลขฐาน 8 เลข 0 ถุ.งี้ 7
- ระบบเลขฐาน 10 เลข 0 ถุ.งี้ 9- ระบบเลขฐาน 16 เลข 0 ถุ.งี้ 9 และต้�ว่อ�ก็ษรอ�ก็ 6 ต้�ว่ A,B,C,D,E,F ม่�คั�าเที่�าก็�บ 10-15
ต้ารางี้รางี้เป็ร�บเที่�ยบเลขฐาน 10, ฐาน 2,ฐาน 8, ฐาน 16
เลขฐาน 10 เลขฐาน 2 เลขฐาน 8 เลขฐาน 16
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
== = = = = = = = = = = = = = = = =
ก็ารแป็ลงี้เลขฐาน 10 ให�เป็!นเลขฐาน 2 สาม่ารถุที่$าได้�โด้ยว่*ธิ�หารส��นแบบ
งี้�ายๆจาก็ก็ารน$าเลขฐาน 10 หารด้�ว่ย 2 แล�ว่ที่$าก็ารเข�ยนผลหารและเศษที่��เหล�อจาก็ก็าร
หารแต้�ละคัร��งี้ไว่�และที่$าก็ารหารจนก็ระที่��งี้ผลของี้ก็ารหารเป็!น 0 ส&ด้ที่�ายที่$าก็ารเข�ยนส&ด้ที่�ายที่$าก็ารเข�ยนเศษที่��ได้�จาก็ก็ารหารโด้ยเร�ยงี้ล$าด้�บจาก็ด้�านล�างี้ข.�นด้�านบนต้ย. 58 ฐาน 10 เป็!นฐาน 258/2 ได้� 29 เศษ 029/2 ได้� 14 เศษ 1
14/2 ได้� 7 เศษ 07/2 ได้� 3 เศษ 13/2 ได้� 1 เศษ 1
1/2 ได้� 0 เศษ 1
ผลล�พี่ธิ3ที่��ได้�ในร-ป็เลขฐาน 2 คั�อ 1110102
และถุ�าจะแป็ลงี้จาก็ฐาน 10 เป็!6 นฐาน 2 ก็�
111010 = (1x25 ก็$าล�งี้ 5)+(1x24 ก็$าล�งี้ 4)+(1x23 ก็$าล�งี้ 3)+
(0x22 ก็$าล�งี้ 2)+(1x21 ก็$าล�งี้ 1)+(0x20 ก็$าล�งี้ 0)
= (1x32)+(1x16)+(1x8)+(0x4)+(1x2)+(0x1)
= 32+16+8+0+2+0
= 58
0 or 0 = 0
0 or 1 = 1
1 or 0 = 1
1 or 1 = 1
0 and 0 = 0
0 and 1 = 0
1 and 0 = 0
1 and 1 = 1
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
แนะน$า: ไป็ซ��อหน�งี้ส�อ ว่*ที่ยก็ารคัอม่พี่*ว่เต้อร3 ม่าเลยม่�เยอะก็ว่�าน��
อ�านะคั�บ ยาว่ม่าก็ เร*�ม่เลย
- - - - - - - - - - - -
CHAPTER 1
- - - - - - - - - - - -
เร*�ม่เลยนะคัร�บ ส*�งี้ที่��ขาด้ไม่�ได้� ม่�อย-� 2 อย�างี้คั�บ
= สม่องี้ (ที่��ม่�ต้*ด้ต้�ว่ก็�นอย-�แล�ว่) + VB หาได้�จาก็ ต้รงี้ Download นะคัร�บ
แนะน$าให�ไป็หาข�อม่-ลเก็��ยว่ก็�บพี่ว่ก็ Socket Programming ไรพี่ว่ก็น��ม่าก็�อนนะคั�บ ไคัรไม่�อยาก็ก็�เร��องี้ของี้คั&ณนะคั�บ ผม่ไม่�เก็��ยว่....
เที่�าที่��ผม่ร-นะคั�บ ต้�ว่ Game หร�อ ต้�ว่ Client เน��ย ต้�องี้ส�งี้ข�อม่-ล หร�อเร�ยก็ว่�า Packet ไป็ให�ก็�บ Server แล�ว่ Server จะส�งี้ก็ล�บม่าให�ต้�ว่ Client อ�ก็ที่�คั�บ ยก็ต้�ว่อย�างี้เช่�นเด้*นไป็ต้รงี้ ??? , ??? ก็�จะส�งี้ไป็ให� Server ว่�า ต้�ว่ละคัรเราเด้*นไป็ต้รงี้พี่*ก็�ด้น��นะเฟ้9ย แล�ว่ Server
ก็�จะส�งี้ก็ล�บม่าว่�า เออ... ร�บร- �แล�ว่เฟ้9ยว่�าม่�นเด้*น อ�าๆ เอาแบบด้�ๆ ก็�คั�อ
ต้�ว่อย�างี้ Packet
Send (Client 2 Server)
59 E9 AB AD A2 A9 F0 EB AD AD
Recieve (Server 2 Client)
AD 00 AB
ม่าต้�อคัร�บ.... โช่คัด้�นะคัร�บ ที่�� Yulgang เน��ย ไม่�ได้�เข�ารห�สไรไว่�เลยในก็ารส�งี้ Packet อย�างี้ TS
Online เงี้��ย จะเข�ารห�สด้�ว่ย Xor ก็�บ ไรบางี้อย�างี้เน��ยแหละ แต้�ก็�โช่คัร�ายเหม่�อนก็�นที่�� Yulgang
จะม่� Packet 00C0 ซ.�งี้เหม่�อนก็�บว่�าเรา Zip ข�อม่-ลไรไว่�ป็ระม่ารน��น (นรก็ที่��ส&ด้ของี้ลย)
เว่รก็รรม่เรา พี่-ด้ม่าก็ไป็ละ - โป็รแก็รม่ที่��ต้�องี้ไช่�นะคั�บ ที่��บอก็ไป็แล�ว่คั�อ VB แล�ว่เราต้�องี้ม่�ต้�ว่ด้�ก็ข�อม่-ลหร�อ Packet เน��ยคั�บ คั�อ WpePro หาๆ ด้-ละก็�น
คั$าเต้�อน : ส$าหร�บคันที่��ไช่� WpePro แล�ว่ Anti-Virus ฟ้9องี้ข.�นม่านะคั�บ ให� Disable Anti-Virus ไว่� หร�อ ออก็เลยก็�ได้� ม่�นเห�นเป็9นไว่ร�สเพี่ราะว่�า WpePro ม่�นที่$างี้านเหม่�อนไว่ร�สหนะคั�บ
- - - - - - - - - - -
CHAPTER 2
- - - - - - - - - - -
พี่ร�อม่ย�งี้?? ผม่พี่ร�อม่ละ ล&ยต้�อเลยย Chapter น��นะคั�บ จะอธิ*บายเพี่*�ม่เต้*ม่เร��องี้ Packet
หน�อย:
Packet นะคั�บ จะไช่�เลขเป็!น Hex หร�อ เลขฐาน 16 ซ.�งี้ม่�
0 1 2 3 4 5 6 7 8 9 A B C D E F (เหม่�อนที่��บอก็ไว่�ข�างี้บนนะคั�บ)
เราจะอ�าน Packet ก็ล�บหล�งี้ อย�า 21 42 ก็�จะเป็!น 42 21 แล�ว่คั&ณ 24 42 หร�อ 42 21 ไรก็�แล�ว่แต้� เราจะเร�ยก็ว่�า ไรก็�ไม่�ร- � เอาเป็!นว่�า ช่&ด้ละก็�น ช่&ด้น.งี้จะม่� 2 (2 ไรหว่�า) 2 บอม่ละก็�น ก็�คั�อ 21 ก็�บ 42 เร*�ม่ม่��ว่แล�ว่หว่ะ ต้�อเลยๆ
Packet นะคั�บ จะม่� Format ของี้ม่�นอย-�ก็�คั�อ
[HEADER]
[DATASIZE]
[DATA]
HEADER ของี้โยว่ก็�งี้จะเป็!น AA55 จบด้�ว่ย 55AA นะคั�บDATASIZE ก็� โห ต้าม่ช่��อเลยคัร�บ Size ของี้ จ�อม่-ลม่านอ�ะคั�บ (เด้�ว่สอนว่*ธิ�น�บ)
DATA ก็� โห (อ�ก็ละ) ต้าม่ช่��อเลย ... ข�อม่-ลงี้�ย!!
ผม่จะเอาต้�ว่ย�างี้ของี้ Packet Login ใน Yulgang ม่านะคั�บ
00 80 [Header]
24 00 [Size]
09 00 [ID LEN = 9] หร�อ 9 bytes
?? ?? ?? ?? ?? ?? ?? ?? ?? [ID = ???????]
09 00 [Password LEN = 9]
?? ?? ?? ?? ?? ?? ?? ?? ?? [Password = ?????????]
00 00 00 00 00 00 00
00 00 00 00 00 00 00
0 น��ผม่เคัยลองี้แบบ 10 ต้�ว่ หร�อ 14 ต้�ว่ก็�ได้�นะคั�บ น�าจะเหม่�อนก็�น แต้�จะเป็ล��ยน DATASIZE
จาก็ที่��เห�นนะคั�บ Header ของี้ Login เน��ย จะต้�างี้ก็�นจาก็ ข�อม่-ลธิรรม่ด้า AA55 เป็!น 0080 แที่นหนะคั�บ - Size นะคั�บ ที่��เห�นน��จะเป็!น 24 00 เราจะคั*ด้ย�งี้งี้�ยหรอ ก็�คั�อ ต้�ด้ส-น 2 ต้�ว่ออก็เลยคั�บ เหล�อ 24 แล�ว่ให�เราเป็:ด้ Calculator ออก็ม่า Accessories > Calculator อ�านะคั�บ ก็ด้ที่�� View ->
Scientific แล�ว่เล�อก็หน�าไป็ที่�� Hex ใส� 24 เข�าป็าย แล�ว่เป็ล��ยนหน�าเป็!น Dec แล�ว่คั&ณจาเห�นว่�า ม่�นเที่�าก็�บ 36 เพี่ราะว่�า:
00 80 24 00 09 00 ?? ?? ?? ?? ?? ?? ?? ?? ?? 09 00 ?? ?? ?? ?? ?? ?? ?? ?? ?? 00 00 00 00 00 00 00 00 00
ลองี้น�บก็ล�งี้จาก็ 00 80 24 00 ด้-นะคั�บ จะได้� 36 ต้�ว่คั�บ (น�บที่�ละ 2 หนะ) ก็�จะได้� 36 ช่�ว่ๆ คั�บ ถุ�าเที่�าก็�บอย�างี้อ��น น�ด้ผม่ม่าต้บก็ระบาลเลยคั�บ
ว่*ธิ�แป็ลงี้ Hex เป็!น Decimal ในห�ว่เองี้นะคั�บ ไม่�ต้�องี้ไช่�เคัร��องี้คั*ด้เลข
เป็!นย�งี้งี้�ยแล�ว่อ�าา ขอคั*ด้เเป็ป็น.งี้ เด้�ว่ม่าเข�ยนต้�อ ม่าละๆๆจาก็ต้�ว่อย�างี้นะคั�บ DATASIZE = 24 00 แล�ว่ ม่าได้� 36 นะคั�บต้��งี้ 24 เลยคั�บ (ไม่�ต้�องี้ 00 เพี่ราะที่��บอก็ไป็นะคั�บว่�า 00 ไม่�ม่�คั�า) แล�ว่เอา 16 เน��ย ม่า X ก็�บ 2 (เพี่ราะเราก็$าล�งี้แป็ลงี้ ฐาน 16 อย-�) จะได้� 32 นะคั�บ + 4 ได้� 36
ม่าด้-งี้�ายๆ นะคั�บ:
24
2 :
จาก็ฝั่<� งี้ 2 นะคั�บ ต้�องี้เอาไป็ X ก็�บ 16 ได้�ม่าเป็!น 32 [2 X16 = 32]
4:
ต้�องี้เอาไป็บว่ก็ก็�บคั�าที่��ได้�จาก็ หล�ก็แรก็ ก็�คั�อ 32 ได้� ม่าเป็!น 36 [4 + 32 = 36]
- - - - - - - - - - -
CHAPTER 3
- - - - - - - - - - -
Chapter 3 เก็��ยว่ก็�บพี่ว่ก็ Code ใน VB นะคั�บ ม่าเร*�ม่ก็�นเลย [zzzZZZZ นอนก็�อน เด้�ว่ต้��นม่าเข�ยน]
อ�า โว่�ว่ๆๆ เย�เย� ต้าสว่�างี้แล�ว่คั�บ ถุ.งี้ไหนแล�ว่น�ออ.... โอ�ว่ Code อ�ะหรอ
คั�บ ต้อนแรก็ก็� แน�นอน เป็:ด้ Project เต้ร�ยม่หน�าไรให�เร�ยบร�อย เราต้�องี้ก็าร 3 อย�างี้นะคั�บคั�อ
ช่�องี้ Textboxt 2 ช่�องี้ เพี่��อใส� Username และ Password สาม่ารถุใส� Label ข�างี้หน�าหร�อข�างี้หร�อบน ต้รงี้ไหหนก็�เร��องี้ของี้คั&ณนะคั�บ ให�ร- �คั�บว่�าเป็!นช่�องี้ User และ ช่�องี้พี่าส (น.ก็ถุ.งี้บอที่ที่�าน Fireboy แล�ว่จะงี้�ายข.�นนะคั�บ)
ต้�อม่าก็� Winsock คั�บ ส�รางี้ไว่�ที่��ไหนก็�ได้�
ต้�อม่าคั�อ ComboBox นะคั�บ เพี่��อเล�อก็ Server คั�บ (เหม่�อนเด้*ม่นะคั�บ คัว่รใส� Label ว่�า Server
Select ไรป็ระม่านน��น) โยว่ก็�งี้จะม่�อย-� 3 ต้�ว่คั�บ เหม่�อนของี้พี่�� FireBoy อ�ก็นะคั�บ จะม่� THAI1,2
และ 3 แนะน$านะคั�บให�ใส�ว่�า Select Server ใน Caption ของี้ Combo Box แล�ว่ต้รงี้ List ของี้ ComboBox ให�ใส�เป็!น Serv1, Serv 2, Serv 3 หร�อเหม่�อนพี่�� FireBoy THAI 1, 2 , 3.
ส&ด้ที่�ายที่��ไม่�ส&ด้ม่าก็นะคั�บ คั�อ ป็&=ม่ Login สร�างี้ข&�นม่าแล�ว่ใส� ใส� Caption ว่�า Login (ผม่ต้��งี้ช่��อว่�า cmdLogin และ Caption น�� Login นะคั�บ)
Code ต้าม่น��คั�บ
CODE: SELECT ALL
Private Sub cmdLogin_Click()
'ส$าหร�บคันที่��ต้อนแรก็ส�รางี้เป็!นจอเล�ก็แล�ว่พี่อก็ด้ Login จะเป็!นจอใหญ่� (เหม่�อนพี่�� FireBoy
อ�ก็)
'ให�เอา "'" ออก็ละก็�นคั�บ 'Form1.WindowState = 2
If cmdLogin.Caption = "Login" Then 'ด้-ว่�า Caption เป็!น Login ม่��ย Select Case SvrSelect.ListIndex 'เล�อก็ Case ของี้ Combobox คั�บ(ผม่ต้��งี้ช่��อว่�า SvrSelect)
Case 0
Winsock1.Connect "203.144.179.133", 16100 'IP ที่�� 1 Case 1
Winsock1.Connect "203.144.179.132", 16100 'IP ที่�� 2 Case 2
Winsock1.Connect "203.144.179.131", 16100 'IP ที่�� 3 End Select
cmdLogin.Caption = "Logout" 'เป็ล��ยน Caption เป็!น Logout เหม่�อนของี้พี่��ไฟ้นะคั�บ Connect
เป็!น Disconnect.
Else
Winsock1.Close
cmdLogin.Caption = "Login" 'เป็ล��ยนก็ล�บเป็!น Login อ�ก็คัร��งี้ End If
End Sub
ให�ลองี้ Test ด้-คั�บ ว่�าม่� Error อะไรม่��ย :!:
เราจะร- �ได้�ว่�าเราต้�อเข�า Serv ต้*ด้ม่��ย เราต้�องี้ลองี้ส�งี้ Packet ไป็ด้-คั�บ
Function A2Hex
CODE: SELECT ALL
Public Function a2hex(alpha, length)
hextemplate = "0123456789ABCDEF"
alpha = Right("00000000" & UCase(alpha), length)
If Len(alpha) = 2 Then
ahindex = InStr(1, hextemplate, Left(alpha, 1)) - 1
alindex = InStr(1, hextemplate, Right(alpha, 1)) - 1
a2hex = (ahindex * (16 ^ 1)) + (alindex * (16 ^ 0))
ElseIf Len(alpha) = 4 Then
lb = Left(alpha, 2)
hb = Right(alpha, 2)
hx = a2hex(hb, 2) * (16 ^ 2) + a2hex(lb, 2)
a2hex = hx
ElseIf Len(alpha) = 8 Then
aH = a2hex(Right(alpha, 4), 4)
aL = a2hex(Left(alpha, 4), 4)
a2hex = (aH * (16 ^ 4)) + aL
End If
End Function
Function BuildPacket นะคั�บ
CODE: SELECT ALL
Public Function ฺี�BuildPacket(ByVal strPacket As String) As Byte()
Dim i As Long
Dim Hstr As String
Hstr = Replace(strPacket, " ", "")
Dim pHex() As Byte
ReDim Preserve pHex((Len(Hstr) / 2 - 1))
For i = 0 To Len(Hstr) / 2 - 1
pHex(i) = A2Hex(Mid(Hstr, (i * 2) + 1, 2), 2)
Next
Size = CInt(Len(strPacket) / 2)
BuildPacket = pHex
End Function
จาก็น��นเป็:ด้ Code ของี้ Winsock ม่า แล�ว่ใส�เป็!น
CODE: SELECT ALL
Private Sub Winsock1_Connect()
If Winsock1.State = sckConnected Then
TestPacket = BuildPacket("F4 44 01 00 00")
Winsock1.SendData TestPacket
End If
End Sub
และ
CODE: SELECT ALL
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim din() As Byte
Winsock1.GetData din, , bytesTotal
For i = 0 To bytesTotal - 1
h = din(i)
hx = Hex(h)
strBuffer = strBuffer & IIf(h < 16, "0" & hx, hx)
Next
End Sub
เอาโป็รแก็รม่ด้�ก็ Packet ม่าด้�ก็ด้-เว่ลาเราส�งี้ ถุ�า Serv ส�งี้ก็ล�บม่าแสด้งี้ว่�าต้*ด้แล�ว่- - ว่*ธิ�ด้�ก็ Packet Chapter ต้�อไป็คั�บ - - คั�อยก็ล�บม่าเร��องี้ Code อ�ก็ที่�
แนะน$า: ให�ลองี้ที่��งี้ 3 IP นะคั�บข$าๆ : F4 44 01 00 00 เป็!น Packet Login ของี้ TS
- - - - - - - - - - -
CHAPTER 4
- - - - - - - - - - -
ต้*ด้ต้�อก็�บ Server ได้�แล�ว่ ได้�เว่ลาด้�ก็ข�อม่-ลเพี่��อส�งี้ไป็ให�ม่�น
WPEPro ด้-ต้รงี้ Download คัร�บ
ว่*ธิ�ก็าร (ส$าหร�บ wpepro)
1 เป็:ด้โป็รแก็รม่ yulgang ข.�นม่า2 เป็:ด้โป็รแก็รม่ wpepro
3 ต้รว่จสอบว่�า wpepro ที่$าก็ารด้�ก็ packet ในร-ป็แบบไหน โด้ยเล�อก็คั$าส��งี้ view>> option
แล�ว่ที่$าก็ารคัล*@ก็ถุ-ก็ต้�ว่เล�อก็ที่&ก็ช่�องี้ที่��งี้ใน winsock 1.1 และ winsock 2.0
4 ที่$าก็ารเล�อก็โป็รแก็รม่ที่��จะที่$าก็ารด้�ก็ข�อม่-ลที่��ส�งี้เล�อก็เม่น- target Program>> แล�ว่เล�อก็ ThaiClien.exe
ที่�� title bar จะข.�นช่��อโป็รแก็รม่ที่��เราเล�อก็ไว่�5 ที่$าก็ารด้�ก็ข�อม่-ลโด้ยก็ารก็ด้ป็&=ม่ > (start logging)
6 เข�าหน�าเก็ม่ แล�ว่ก็ระที่$าก็ารต้�างี้ๆ ที่��เราต้�องี้ก็ารด้�ก็ เช่�น login game เด้*น ต้� น��งี้ ฯลฯ จนเป็!นที่��พี่อใจ = =
7 ออก็ม่าหน�าโป็รแก็รม่ wpe ให�ที่$าก็ารก็ด้ป็&=ม่ (stop logging) จะม่�ข�อม่-ลแพี่�คัเก็จต้�างี้ๆ ที่��เราด้�ก็ไว่�ได้� ซ.�งี้ม่�ที่��งี้เคัร��องี้เราส�งี้ไป็ แล�ว่ เซ*บส�งี้ม่า
คั$าแนะน$า เราสาม่ารถุด้�ก็ข�อม่-ลช่�ว่งี้ไหนก็�ไม่� ไม่�ต้�องี้เร*�ม่ด้�ก็ต้��งี้แต้� login ให�ด้�ก็เฉพี่าะช่�ว่งี้ที่��เราต้�องี้ก็ารจะเป็!นก็ารงี้�ายต้�อก็ารหา packet ที่��ต้�องี้ก็ารต้�อไป็เป็!นว่*ธิ�ก็ารอ�านแพี่�คัเก็จ เอาไว่�จะม่าเข�ยนให�เพี่*�ม่คัร�บไป็ลองี้เล�นๆ ด้-ก็�อนนะ
Credit คั&ณ tdech แห�งี้เว่�บบอร3ด้ yglight คั�บ
Tip: ถุ�าช่��ว่หน�อยก็� ด้�ก็ผ�านบอที่ ที่�าน FireBoy เลย ไม่�ต้�องี้ม่าน��งี้ ByPass
...: ไป็ด้-ก็าร ByPass ในคัว่าม่คั*ด้ของี้ผม่ด้- ต้รงี้น��คั�บ (เฉพี่าะ YGB Member นะคั�บ)
- - - - - - - - - - -
CHAPTER 5
- - - - - - - - - - -
ม่าเร*�ม่ช่�ว่งี้ Login ก็�นนะคั�บ, จก็ packet ที่��ผม่เอาต้�ว่อย�างี้ม่าโช่ว่3ใน Chapter 2 นะคั�บ น�านแหละ คั�อ Packet ที่��ต้�องี้ส�งี้ไป็เพี่��อ Login
00 80 [Header]
24 00 [Size]
09 00 [ID LEN = 9] หร�อ 9 bytes
?? ?? ?? ?? ?? ?? ?? ?? ?? [ID = ???????]
09 00 [Password LEN = 9]
?? ?? ?? ?? ?? ?? ?? ?? ?? [Password = ?????????]
00 00 00 00 00 00 00
00 00 00
คัร�บ Packet ช่&ด้ข�างี้บนน��แหละคั�บ ที่��เราต้�องี้ส�งี้ให� Server ส*�งี้ที่��ต้�องี้ที่$านะคัร�บ คั�อต้�องี้ที่$าให� Winsock เน��ย ส�งี้ Packet ต้าม่ข�างี้บนไป็โด้ยไช่�ว่*ธิ�เด้*ม่นะคั�บ เหม่�อนต้อนที่��เราลองี้ที่$า TestPacket ก็�นงี้�ยคั�บ ผม่จะยก็ต้�ว่อย�างี้ไอด้�เป็!น test Password ก็� test นะคั�บ จะเข�ยนด้�งี้น��
CODE: SELECT ALL
Private Sub Winsock1_Connect()
If Winsock1.State = sckConnected Then
LoginPrompt = BuildPacket("00 80 1A 00 04 00 74 65 73 74 04 00 74 65 73 74 00 00 00 00 00 00
00 00 00 00")
Winsock1.SendData LoginPrompt
End If
End Sub
ถุ�าแบ�งี้ออก็ม่านะคัร�บก็�จะเป็!น
00 80 [Header]
1A 00 [Size]
04 00 [ID LEN = 4] หร�อ 4 bytes
74 65 73 74 [ID = test]
04 00 [Password LEN = 4]
74 65 73 74 [Password = test]
00 00 00 00 00 00 00
00 00 00
ให�ลองี้ส�งี้ไป็ด้-นะคัร�บ แล�ว่ด้-ว่�าเว่ลาแป็ล เป็!น Ascii จะม่�เข�ยนว่�า test test ไรป็ระม่านน��อย-�หร�อป็ล�าว่
ต้�อม่านะคั�บ เป็!น code ที่��ผม่น��งี้เข�ยนที่��งี้คั�นนะคั�บ ขอบอก็เลยว่�า งี้งี้ที่��ส&ด้ของี้ๆ code น��เป็!นเหม่�อนก็�บอ�นข�างี้บนนะคั�บ แต้�ม่�นจะอ�านจาก็ช่�องี้ Username และ Password แล�ว่ส�งี้ ม่าให�ผม่ไป็ไช่�ขโม่ยของี้ของี้คั&ณคัร�บ เย�ย ไม่�ไช่� ม่�นจะอ�าน จาก็ช่�องี้แล�ว่เเอไป็ต้�อก็�บช่&ด้ Packet พี่ร�อม่ส�งี้เลยคัร�บ (อ�ก็แล�ว่นะคัร�บ ให�น.ก็ถุ.งี้บอที่ ygb แล�ว่จะเข�าใจคัร�บ)
ต้�อเลยนะคั�บ ต้�อจาก็อ�นที่��แล�ว่เลย ให�ลบอ�น test ออก็ก็�อนนะคั�บ เพี่ราะอ�นน��เป็!นอ�นใหม่�เลย
Function n2h
CODE: SELECT ALL
Function n2h(number, nb)
For i = 1 To (nb * 2)
zerotem = zerotem & "0"
Next
rn = Right(zerotem & Hex(number), (nb * 2))
out = ""
For i = 1 To Len(rn) Step 2
out = Mid(rn, i, 2) & out
Next
n2h = out
End Function
Function Asc2Hex
CODE: SELECT ALL
Private Function Asc2Hex(asc1, length)
Asc2Hex = ""
For i = 1 To length
Asc2Hex = Asc2Hex + Trim(Hex(Asc(Mid(asc1, i, 1))))
Next i
End Function
CODE: SELECT ALL
Private Sub Winsock1_Connect()
Dim a
Dim b
Dim c
Dim d
If Winsock1.State = sckConnected Then
a = Len(n2h(Len(Text2.Text), 2)) / 2
b = Len(Asc2Hex(Text2.Text, Len(Text2.Text))) / 2
c = Len(n2h(Len(Text1.Text), 2)) / 2
d = Len(Asc2Hex(Text1.Text, Len(Text1.Text))) / 2
ploginprompt = BuildPacket("0080" & n2h(a + b + c + d + 10, 2) & n2h(Len(Text2.Text), 2) &
Asc2Hex(Text2.Text, Len(Text2.Text)) & n2h(Len(Text1.Text), 2) & Asc2Hex(Text1.Text,
Len(Text1.Text)) & "00000000000000000000")
Winsock1.SendData ploginprompt
'ต้�อด้�ว่ย Packet ย�นย�นว่�าส�งี้ไอด้�นะคั�บDoEvents
'ให� Delay ส�ก็น*ด้ส3น.งี้ (ถุ�าช่�าไป็ก็�ลด้จ$านว่นต้�ว่เลขคั�บ)
For i = 1 To 90000000
Next i
follow = BuildPacket("16800000")
Winsock1.SendData follow
DoEvents
End If
End Sub
Credit อย�างี้หน�ก็เลย ให�ที่�านน�าผม่นะคั�บ ช่�ว่ยเยอะม่าก็เลย
Note: User = Text2 Password = Text1
ถุ�าลองี้ใส� User และ Password และที่$าอะไรให�เร�ยบร�อยนะคั�บ ไป็ด้�ก็ Packet ด้- Server จะส�งี้ Packet ก็ล�บม่าให�เราเล�อก็ Server ถุ�าไช่� WPE Pro จะไม่�เห�นเป็!นภาษไที่ยนะคั�บ แต้�ถุ�าเห�น Packet
ยาว่ๆ ต้อบม่าก็�น�าจะไช่� :D Login ได้�แล�ว่งี้�ะ ม่าถุ.งี้ต้อนเล�อก็ Serv และต้�ว่ละคัรก็�น..... ต้อนน��ผม่แก็ะ Packet ที่�อนน��อย-�นะคั�บ ไก็�ลเส�ด้แล�ว่คั�บ แต้�อธิ*บายส�ก็น*ด้ก็�อนด้�ก็ว่�า....
- - - - - - - - - - - - > > > > > > > > > > > > > > > > > >
CHAPTER 6 - ||| Connecting to ther Game Server |||
- - - - - - - - - - - - > > > > > > > > > > > > > > > > > >
น��ก็�แก็�ใหม่�ม่าเป็!น Chapter 6 เลยนะคั�บ ที่��บอก็ไป็ใน Chapter ข�างี้บนก็�เป็!น ว่*ธิ� Login และ ย�นย�น ว่�า login อย�างี้สม่บ-ลย3แล�ว่ หร�อป็=าว่ว่�า... เอาเป็!นว่�าผ�าน ช่�ว่งี้ต้�นๆ ของี้ก็าร Login
แล�ว่ละก็�นนะคั�บ Chapter น��นะคั�บ จะอธิ*บายต้�นๆ เก็��ยว่ก็�บ ก็ารเล�อก็ Server และ Channel นะคั�บ แล�ว่น��คั�อ IP ของี้ แต้�ละ Server นะคั�บ (หร�อว่�า IP ที่��ต้�องี้ Redirect เข�าไป็จาก็ Login Server
น��นเองี้)
Server IP , Port
ป็ระก็าศ*ต้ล*ข*ต้นภา:
ป็ระก็าศ*ต้ล*ข*ต้นภา 01 = 203.144.179.177 , 16000
ป็ระก็าศ*ต้ล*ข*ต้นภา 02 = 203.144.179.177 , 16001
ป็ระก็าศ*ต้ล*ข*ต้นภา 03 = 203.144.179.178 , 16000
ป็ระก็าศ*ต้ล*ข*ต้นภา 04 = 203.144.179.178 , 16001
ป็ระก็าศ*ต้ล*ข*ต้นภา 05 = 203.144.179.179 , 16000
ป็ระก็าศ*ต้ล*ข*ต้นภา 06 = 203.144.179.179 , 16001
ป็ระก็าศ*ต้ล*ข*ต้นภา 07 = 203.144.179.180 , 16000
ป็ระก็าศ*ต้ล*ข*ต้นภา 08 = 203.144.179.180 , 16001
ป็ระก็าศ*ต้ล*ข*ต้นภา 09 = 203.144.179.181 , 16000
ป็ระก็าศ*ต้ล*ข*ต้นภา 10 = 203.144.179.181 , 16001
ม่ายาจ�นที่ราพี่*ช่*ต้:
ม่ายาจ�นที่ราพี่*ช่*ต้ 01 = 203.144.179.168 , 16000
ม่ายาจ�นที่ราพี่*ช่*ต้ 02 = 203.144.179.168 , 16001
ม่ายาจ�นที่ราพี่*ช่*ต้ 03 = 203.144.179.169 , 16000
ม่ายาจ�นที่ราพี่*ช่*ต้ 04 = 203.144.179.169 , 16001
ม่ายาจ�นที่ราพี่*ช่*ต้ 05 = 203.144.179.170 , 16000
ม่ายาจ�นที่ราพี่*ช่*ต้ 06 = 203.144.179.170 , 16001
ม่ายาจ�นที่ราพี่*ช่*ต้ 07 = 203.144.179.171 , 16000
ม่ายาจ�นที่ราพี่*ช่*ต้ 08 = 203.144.179.171 , 16001
ม่ายาจ�นที่ราพี่*ช่*ต้ 09 = 203.144.179.172 , 16000
ม่ายาจ�นที่ราพี่*ช่*ต้ 10 = 203.144.179.172 , 16001
อ�สน�ขย��พี่ส&ธิา:
อ�สน�ขย��พี่ส&ธิา 01 = 203.144.179.159 , 16000
อ�สน�ขย��พี่ส&ธิา 02 = 203.144.179.159 , 16001
อ�สน�ขย��พี่ส&ธิา 03 = 203.144.179.160 , 16000
อ�สน�ขย��พี่ส&ธิา 04 = 203.144.179.160 , 16001
อ�สน�ขย��พี่ส&ธิา 05 = 203.144.179.161 , 16000
อ�สน�ขย��พี่ส&ธิา 06 = 203.144.179.161 , 16001
อ�สน�ขย��พี่ส&ธิา 07 = 203.144.179.162 , 16000
อ�สน�ขย��พี่ส&ธิา 08 = 203.144.179.162 , 16001
อ�สน�ขย��พี่ส&ธิา 09 = 203.144.179.163 , 16000
อ�สน�ขย��พี่ส&ธิา 10 = 203.144.179.163 , 16001
พี่*ช่*ต้ส&ร*ย�นต้3:
พี่*ช่*ต้ส&ร*ย�นต้3 01 = 203.144.179.141 , 16000
พี่*ช่*ต้ส&ร*ย�นต้3 02 = 203.144.179.141 , 16001
พี่*ช่*ต้ส&ร*ย�นต้3 03 = 203.144.179.142 , 16000
พี่*ช่*ต้ส&ร*ย�นต้3 04 = 203.144.179.142 , 16001
พี่*ช่*ต้ส&ร*ย�นต้3 05 = 203.144.179.143 , 16000
พี่*ช่*ต้ส&ร*ย�นต้3 06 = 203.144.179.143 , 16001
พี่*ช่*ต้ส&ร*ย�นต้3 07 = 203.144.179.144 , 16000
พี่*ช่*ต้ส&ร*ย�นต้3 08 = 203.144.179.144 , 16001
พี่*ช่*ต้ส&ร*ย�นต้3 09 = 203.144.179.145 , 16000
พี่*ช่*ต้ส&ร*ย�นต้3 10 = 203.144.179.145 , 16001
สว่รรคั3ที่ลายป็ฐพี่�:
สว่รรคั3ที่ลายป็ฐพี่� 01 = 203.144.179.150 , 16000
สว่รรคั3ที่ลายป็ฐพี่� 02 = 203.144.179.150 , 16001
สว่รรคั3ที่ลายป็ฐพี่� 03 = 203.144.179.151 , 16000
สว่รรคั3ที่ลายป็ฐพี่� 04 = 203.144.179.151 , 16001
สว่รรคั3ที่ลายป็ฐพี่� 05 = 203.144.179.152 , 16000
สว่รรคั3ที่ลายป็ฐพี่� 06 = 203.144.179.152 , 16001
สว่รรคั3ที่ลายป็ฐพี่� 07 = 203.144.179.153 , 16000
สว่รรคั3ที่ลายป็ฐพี่� 08 = 203.144.179.153 , 16001
สว่รรคั3ที่ลายป็ฐพี่� 09 = 203.144.179.154 , 16000
สว่รรคั3ที่ลายป็ฐพี่� 10 = 203.144.179.154 , 16001
CODE: SELECT ALL
ถุ�าผ*ด้งี้�ยก็�ช่�ว่ยบอก็ด้�ว่ยนะคั�บ ผม่ที่$าแคั�บางี้เซฟ้เองี้งี้�บ เห�นม่�นเป็งี้ Pattern เลยพี่อเด้า
ได้�...
ที่��ม่าของี้ Packet 0C 80 0C 00 05 00 00 00 04 00 00 00 01 00 00 00 น�� ม่าจาก็ รห�สด้�งี้น��นะคั�บ
ป็ระก็าศ*ต้ล*ข*ต้นภา = 5
ม่ายาจ�นที่ราพี่*ช่*ต้ = 4
อ�สน�ขย��พี่ส&ธิา = 3
พี่*ช่*ต้ส&ร*ย�นต้3 = 1
สว่รรคั3ที่ลายป็<ฐพี่� = 2
แล�ว่ม่�นจะเป็!น packet ย�งี้งี้�ยหรอคั�บ ก็�คั�อว่�า จะม่�ร-ป็แบบอย�างี้น��คั�บ
0C 80 0C 00 0X 00 00 00 0Y 00 00 00 01 00 00 00
X = - >> รห�สป็ระจ$าเซ*ฟ้นะคั�บ ถุ�าเป็!นพี่*ช่*ต้ส&ร*ย�นต้3 ก็�เป็!น 1 , จะ = 0C 80 0C 00 01....
Y = - >> เป็!นเซ*ฟ้เว่อร3ย�อยนะคั�บ หร�อเร�ยก็ว่�า Channel , Sub Server ไรก็�ว่�าป็ายนะคั�บ.. ก็�จะออก็ม่าเป็!น 0C 80 0C 00 0X 00 00 00 05.... ส$าหร�บ Channel 5
ยก็ต้�ว่อย�างี้ ป็ระก็าศ*ต้ล*ข*ต้นภา 7 นะคั�บ ก็� จะเป็!น
CODE: SELECT ALL
0C 80 0C 00 05 00 00 00 07 00 00 00 01 00 00 00
เม่��อคั�นต้อนนอนงี้�ะ ผม่คั*ด้ออก็ว่�าหล�งี้จาก็ส�งี้ Packet Submit (16800000) ไป็ แล�ว่จะม่�บอก็พี่ว่ก็ Server ที่��ม่� ช่��อของี้ม่�นอ�านะคั�บ แต้�ผม่เพี่*�งี้ร- �เลย ว่�า ม่�นได้�บอก็ สถุาณะ และ เป็อเซ�นที่��ว่�างี้ ของี้ เซ*ฟ้นะคั�บ ต้อนแรก็ผม่เห�นม่�นยาว่ ใหญ่�ๆ ย�ก็ๆ เลยไม่�อยาก็ไป็สนใจม่�นอ�ะคั�บ แล�ว่ว่�นไหนว่�างี้ๆ แก็ะได้�จะม่าลงี้ให�คั�บ....
อะเห�อ... ไม่�ได้�ม่าเข�ยนต้��งี้นาน.. คั*ด้ออก็แล�ว่คั�บ ส$าหร�บ code เล�อก็ Server
code ล�าส&ด้น��เราที่$าถุ.งี้ไหนหน�า... อDอคั&ณต้รงี้ 1680000 งี้�ะ ก็�คั�อ ต้�องี้ให�ม่�นส�งี้ Packet เล�อก็ Server แล�ว่อ�าด้* งี้��นก็� code เราต้�องี้ต้�อจาก็
follow = BuildPacket("16800000")
Winsock1.SendData follow
DoEvents
End If
End Sub
ให�ลบ End If และ End Sub ออก็นะคั�บ แล�ว่หล�งี้จาก็ DoEvents ให�ใส�น��ป็ายคั�บ
Note: ของี้ผม่น��เร�ยงี้ ComboBox ต้าม่ Order ของี้ IP List เลยนะคั�บ (ป็ระก็าศ*ต้ ถุ.งี้ สว่รรคั3 งี้�บ ข.�นไป็ด้-...)
CODE: SELECT ALL
Select Case Combo1.ListIndex
Case 0
Submit = BuildPacket("0C800C00050000000100000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 1
Submit = BuildPacket("0C800C00050000000200000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 2
Submit = BuildPacket("0C800C00050000000300000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 3
Submit = BuildPacket("0C800C00050000000400000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 4
Submit = BuildPacket("0C800C00050000000500000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 5
Submit = BuildPacket("0C800C00050000000600000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 6
Submit = BuildPacket("0C800C00050000000700000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 7
Submit = BuildPacket("0C800C00050000000800000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 8
Submit = BuildPacket("0C800C00050000000900000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 9
Submit = BuildPacket("0C800C00050000000A00000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 10
Submit = BuildPacket("0C800C00040000000100000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 11
Submit = BuildPacket("0C800C00040000000200000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 12
Submit = BuildPacket("0C800C00040000000300000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 13
Submit = BuildPacket("0C800C00040000000400000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 14
Submit = BuildPacket("0C800C00040000000500000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 15
Submit = BuildPacket("0C800C00040000000600000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 16
Submit = BuildPacket("0C800C00040000000700000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 17
Submit = BuildPacket("0C800C00040000000800000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 18
Submit = BuildPacket("0C800C00040000000900000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 19
Submit = BuildPacket("0C800C00040000000A00000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 20
Submit = BuildPacket("0C800C00030000000100000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 21
Submit = BuildPacket("0C800C00030000000200000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 22
Submit = BuildPacket("0C800C00030000000300000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 23
Submit = BuildPacket("0C800C00030000000400000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 24
Submit = BuildPacket("0C800C00030000000500000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 25
Submit = BuildPacket("0C800C00030000000600000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 26
Submit = BuildPacket("0C800C00030000000700000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 27
Submit = BuildPacket("0C800C00030000000800000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 28
Submit = BuildPacket("0C800C00030000000900000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 29
Submit = BuildPacket("0C800C00030000000A00000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 30
Submit = BuildPacket("0C800C00010000000100000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 31
Submit = BuildPacket("0C800C00010000000200000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 32
Submit = BuildPacket("0C800C00010000000300000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 33
Submit = BuildPacket("0C800C00010000000400000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 34
Submit = BuildPacket("0C800C00010000000500000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 35
Submit = BuildPacket("0C800C00010000000600000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 36
Submit = BuildPacket("0C800C00010000000700000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 37
Submit = BuildPacket("0C800C00010000000800000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 38
Submit = BuildPacket("0C800C00010000000900000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 39
Submit = BuildPacket("0C800C00010000000A00000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 40
Submit = BuildPacket("0C800C00020000000100000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 41
Submit = BuildPacket("0C800C00020000000200000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 42
Submit = BuildPacket("0C800C00020000000300000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 43
Submit = BuildPacket("0C800C00020000000400000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 44
Submit = BuildPacket("0C800C00020000000500000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 45
Submit = BuildPacket("0C800C00020000000600000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 46
Submit = BuildPacket("0C800C00020000000700000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 47
Submit = BuildPacket("0C800C00020000000800000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 48
Submit = BuildPacket("0C800C00020000000900000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
Case 49
Submit = BuildPacket("0C800C00020000000A00000001000000")
For i = 1 To 9000000
Next i
Winsock1.SendData Submit
DoEvents
End Select
For i = 1 To 9000000
Next i
Winsock2.Close
Select Case Combo1.ListIndex
Case 0
Winsock2.Connect "203.144.179.177", 16000
Case 1
Winsock2.Connect "203.144.179.177", 16001
Case 2
Winsock2.Connect "203.144.179.178", 16000
Case 3
Winsock2.Connect "203.144.179.178", 16001
Case 4
Winsock2.Connect "203.144.179.179", 16000
Case 5
Winsock2.Connect "203.144.179.179", 16001
Case 6
Winsock2.Connect "203.144.179.180", 16000
Case 7
Winsock2.Connect "203.144.179.180", 16001
Case 8
Winsock2.Connect "203.144.179.181", 16000
Case 9
Winsock2.Connect "203.144.179.181", 16001
Case 10
Winsock2.Connect "203.144.179.168", 16000
Case 11
Winsock2.Connect "203.144.179.168", 16001
Case 12
Winsock2.Connect "203.144.179.169", 16000
Case 13
Winsock2.Connect "203.144.179.169", 16001
Case 14
Winsock2.Connect "203.144.179.170", 16000
Case 15
Winsock2.Connect "203.144.179.170", 16001
Case 16
Winsock2.Connect "203.144.179.171", 16000
Case 17
Winsock2.Connect "203.144.179.171", 16001
Case 18
Winsock2.Connect "203.144.179.172", 16000
Case 19
Winsock2.Connect "203.144.179.172", 16001
Case 20
Winsock2.Connect "203.144.179.159", 16000
Case 21
Winsock2.Connect "203.144.179.159", 16001
Case 22
Winsock2.Connect "203.144.179.160", 16000
Case 23
Winsock2.Connect "203.144.179.160", 16001
Case 24
Winsock2.Connect "203.144.179.161", 16000
Case 25
Winsock2.Connect "203.144.179.161", 16001
Case 26
Winsock2.Connect "203.144.179.162", 16000
Case 27
Winsock2.Connect "203.144.179.162", 16001
Case 28
Winsock2.Connect "203.144.179.163", 16000
Case 29
Winsock2.Connect "203.144.179.163", 16001
Case 30
Winsock2.Connect "203.144.179.141", 16000
Case 31
Winsock2.Connect "203.144.179.141", 16001
Case 32
Winsock2.Connect "203.144.179.142", 16000
Case 33
Winsock2.Connect "203.144.179.142", 16001
Case 34
Winsock2.Connect "203.144.179.143", 16000
Case 35
Winsock2.Connect "203.144.179.143", 16001
Case 36
Winsock2.Connect "203.144.179.144", 16000
Case 37
Winsock2.Connect "203.144.179.144", 16001
Case 38
Winsock2.Connect "203.144.179.145", 16000
Case 39
Winsock2.Connect "203.144.179.145", 16001
Case 30
Winsock2.Connect "203.144.179.150", 16000
Case 31
Winsock2.Connect "203.144.179.150", 16001
Case 32
Winsock2.Connect "203.144.179.151", 16000
Case 33
Winsock2.Connect "203.144.179.151", 16001
Case 34
Winsock2.Connect "203.144.179.152", 16000
Case 35
Winsock2.Connect "203.144.179.152", 16001
Case 36
Winsock2.Connect "203.144.179.153", 16000
Case 37
Winsock2.Connect "203.144.179.153", 16001
Case 38
Winsock2.Connect "203.144.179.154", 16000
Case 39
Winsock2.Connect "203.144.179.154", 16001
End Select
End If
End Sub
Note : ไป็ต้�องี้ก็ล�ว่ code เส�ยร-ป็คัร�บ ต้อนเอาไป็ว่างี้ใน vb ม่�นเข�าร-ป็เองี้คัร�บ ขออธิ*บาย code ก็�อนน*ด้น.งี้นะคั�บ คั�อว่�า case ช่&ด้ แรก็ (พี่ว่ก็ 0C800C00020000000900000001000000) ที่��ม่�นส�งี้เล�อก็ Server นะคั�บ ก็�จะไป็อ�านจาก็ combo box
ว่�าเป็!น อ�นไหนแล�ว่ คั�อยส�รางี้และส�งี้ Packet ไป็ ส�ว่น case ช่&ด้สองี้เน��ย จะเป็!น case ที่��ให� Winsock 2 เน��ย Connect เข�าไป็ใน GameServer ... แน�นอนนะคั�บ ต้�องี้ส�รางี้ Winsock เพี่*�ม่อ�ก็ต้�ว่น.งี้ แล�ว่จะเอา code ม่าฝั่าก็ต้�อนะคั�บ
- - - - - - - - - - - - > > > > > > > > > > > > > > > > > >
CHAPTER 7 - ||| WTF is THIS!! ... After Connected - -* |||
- - - - - - - - - - - - > > > > > > > > > > > > > > > > > >
ที่��เข�ยนม่าน��ก็�เร*�ม่จะเยอะแล�ว่นะคั�บ เราได้�ส�งี้ Packet ไป็แล�ว่ 3 ช่&ด้ ก็�คั�อ Login , ต้�ว่ย�นย�น , และต้�ว่เล�อก็ Server นะคั�บ คัราว่น��ละคัร�บ ป็ญ่หาใหญ่�เลยคั�บ เพี่ราะว่�า Packet ต้�อไป็เน��ย ก็�คั�อ เหม่�อนก็�บไรหว่�า... เอางี้�ยด้�อ�ะก็�ป็ระม่านว่�า ต้�องี้ม่� Private Code อ�ะคั�บ ม่�ร-ป็แบบด้�งี้น��
AA55 [Header]
4E00 [ น�าจะ Command ]
0000 [อ�นน�� ถุ.งี้ 4800 ไม่�ม่�ว่�นเป็ล��ยนงี้�บ อย�าสนใจม่�นเลย]
0100
4800
XXXXXXXXX [ ID ]
00000000000000000000 [0]
00000000000000000000
XXXXXXXXX [Password]
000000000000000000
XXXX [Private Code] <<<< เม่�นน*ด้น.งี้ 0600 [Channel]
XXX.XXX.XXX.XXX [Local IP] - ไช่� Function Asc2Hex(Winsock1.LocalIP, Len(Winsock1.LocalIP))
0000000000000000 [0]
55AA [Footer]
Comment:
ที่��อ��นๆ ผม่ไม่�ก็ล�ว่คัร�บ ผม่ร- �หม่ด้แล�ว่ว่�าคั�ออะไร แต้�ต้�ว่ Private code ส*คัร�บ ป็<ญ่หาที่��ผม่ว่�า...
[ Private Code คั�อ อะไร?]
ผม่เองี้น��ร- �คัร�บ ว่�าคั�ออะไร แต้�ย�งี้ไม่�ร- �ว่�าที่$างี้านอย�างี้ไร... เม่��อก็�อนนะคั�บ จะเป็!น เลข Version
โด้ยต้รงี้เลยคัร�บ (_เหม่�อน Build = XXXXX ของี้พี่��ไฟ้คั�บ_) แต้�เด้�6ยว่น�� โยว่ก็งี้�ได้� เข�ารห�สม่�นไป็แล�ว่ โด้ยที่�� เอา Username ก็�บ Password ม่าคั$านว่ณก็�บคั�า Protocal หร�อ Build น��นแหละ
[ จะหาม่�นได้�อย�างี้ไรหละ? ]
ก็�ต้�องี้ Debug ต้�ว่เก็ม่อ�ะคั�บ ด้�บ�คัก็�คั�อ ไป็ด้-ก็ารที่$างี้านของี้โป็รแก็รม่ ในภาษา Assembly ซ.�งี้ผม่ย�งี้ไม่�คั�อยช่$านาน หร�อย�งี้ไม่�คั�อยจะเข�าใจเลย... เข�าเร��องี้ - ก็�ต้�องี้ไป็ที่��ส�ว่นที่��ม่�นที่$างี้านแล�ว่เอา code ม่า แป็ล หร�อ เล�ยนแบบม่าไช่�ใน โป็รแก็รม่ของี้เรา แต้�ผม่คังี้ไม่�ม่าน��งี้แป็ลหรอก็คั�บ ผม่ว่�าจะที่$าเหม่�อน YGFusion ก็�คั�อ ก็ารเอา Function ที่��เป็!น Assembly ม่าไช่�เลย อย�าก็ร- �ว่*ธิ� ด้-ข�างี้ล�างี้คั�บ อาจจะ งี้งี้ๆ หน�อยนะคั�บ ช่�ว่งี้น��
Note : http://members.optusnet.com.au/~draw3d/assembly.html Mixing Assembly with VB
แล�ว่ในที่��ส&ด้นะคัร�บ ผม่ก็�แก็�ได้�แล�ว่ ต้�องี้ขอบคั&ณ ที่�าน huntersack ม่าก็ๆเลย นะคัร�บ ที่��ม่าช่�ว่ยผม่คัร��งี้น�� ที่$าให�ผม่สว่�างี้ข.�นเยอะเลย
ก็�ก็ารหาเจ�าต้�ว่น�� ม่�นต้�องี้เอาม่า (ใบ�ให� ม่�อย&� 3 ต้�ว่อ�ก็ษร) ไช่�แล�ว่คัร�บ เอา ID ของี้เรา ม่า Xor
ต้�ว่ Build ม่�น ต้อนที่�าน huntersack ม่าบอก็ผม่น��ผม่ย*�ม่จนป็าก็ฉ�ก็เลยคัร�บ แล�ว่ก็�น��งี้เซ�งี้ไป็ด้�ว่ยที่��ไม่�ยอม่ลองี้ที่$าต้��งี้แต้�แรก็... (เราม่�นโงี้�จ�งี้)
แล�ว่จะเอา code ม่าฝั่าก็นะคัร�บ
top related