Commit 7501c7fc authored by aleajactaest's avatar aleajactaest

update databasexml conversion

parent 1886443d
# clientbot
Emulate Client (Python Script)
\ No newline at end of file
Emulate Client (Python Script)
# spykhanat.py
Convert pcap (capture network) on yaml file to see communication between server and client.
## Usage
### Launch network capture
sudo tcpdump -i [networkd card] -w [Pcap output]
ex.: sudo tcpdump -i eth0 -w capture-2020-11-28-17-37-57.pcap
### Extract information
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]'
Ex.: 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'
### 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)
<Position data> (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 binary
* Value convert for khaganat (sometimes is keyword)
......@@ -66,7 +66,7 @@ class CGenericMultiPartTemp():
ret = decodeImpulse.execute(bms, world)
except:
logging.getLogger(LOGGER).error("CGenericMultiPartTemp : Error to decode - Number:%d len:%d/%d msg:%s" % (Number, len(self.block), self.NbBlock, bms.showAllData()))
#return ret
# #return ret
raise ValueError
logging.getLogger(LOGGER).debug("CGenericMultiPartTemp : data : %s" % bms.showAllData())
self.MsgDecoded = bms
......
This diff is collapsed.
......@@ -670,7 +670,7 @@ class impulseDatabaseInitPlayer(ImpulseBase):
if msgin.needRead() > 5:
logging.getLogger(LOGGER).debug(msgin.showAllData())
logging.getLogger(LOGGER).debug(msgin.showAllData())
raise "TODO"
#raise "TODO"
class ImpulseConnectionDeleteChar(ImpulseBase):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment