clientbot/README.md
2021-01-11 21:27:59 +01:00

1.8 KiB

clientbot

Emulate Client (Python Script)

spykhanat.py

Convert pcap (capture network) on yaml file to see communication between server and client.

Usage

Install library

# Si python3 est par defaut
pip install pypcapfile

# Sinon
pip3 install pypcapfile

Launch network capture

Commande:

sudo tcpdump  -i [networkd card] -w [Pcap output]

Exemple:

sudo tcpdump -i eth0 -w capture-2020-11-28-17-37-57.pcap

Extract information

Commande:

python3 spykhanat.py -m [localization msg.xml] --yaml [Yaml Output file]  -w [localisation database.xml] -p [Pcap input] --filter-host-service='[Ip address: Port server khaganat]' --csv='[file output CSV {comma separator} - extract only normal message]'

Exemple:

python3 spykhanat.py -m ~/khanat/khanat-opennel-code/code/ryzom/common/data_common/msg.xml --yaml capture-2020-11-28-17-37-57.yml  -w ~/khanat/khanat-opennel-code/code/ryzom/common/data_common/database.xml -p capture-2020-11-28-17-37-57.pcap --filter-host-service='127.0.0.1:47851' --csv capture-2020-11-28-17-37-57.csv

Analyze result

you can see the result in yaml output

Field:

  • packet : raw data
  • block_Client : data sent by client
  • block_Server : data sent by server
  • state : message docoded or partially decoded)
  • impulse : impulse message
  • impulseserver : message impulse server decoded
  • Message : Message analyzed (one line by block)

Detail message format (ex.: <0:31> (Sint32) CurrentSendNumber => 42 : 00000000000000000000000000101010) (Type) [Function] => Value : [Value in binary] [(optional) value real]

  • position data : Begin:End
  • Format data (Signed/Unsigned Integer, String, Number of bit)
  • Function (type of value, function in khaganat)
  • Value : value in integer
  • Value in est par defaut binary
  • Value convert for khaganat (sometimes is keyword)