Overall Code Additions and Modifications for scapy-cip-enip#1
Overall Code Additions and Modifications for scapy-cip-enip#1m4tthew-d wants to merge 35 commits into
Conversation
Added enip.py via upload
Update utils.py
Update plc.py
Update enip_cpf.py
Updated enip_tcp.py and moved portions to enip.py
Update cip.py
Added field classes and function to merge dictionaries for use with ITEM_ID lists in cip.py file
Updated file references to take into account reorganization of some code to new or different files.
Added more CIP packet classes and more scapy_all.bind_layers() statements. Corrected issue of malformed packet creation when communicating with PLC. Modified field types in CIP_ReqForwardOpen for a more favorable display.
Expanded Item ID numbers and changed CPF_Address_Item into CPF_Item and created separate classes for Address and Data Items.
Also updated tests in '__main__' accordingly
Added more scapy_all.bind_layers() statements and altered code and '__main__' to reflect relocation.
Added dictionary of device profiles IDs for EtherNet/IP devices
Updated code reference to reflect relocation of code
|
Hi Matthew, thanks for the contribution. Let me check for compatibility issues with our existing private projects using this library. I will then pull this afterwards. |
|
Hi @m4tthew-d, first of all thank you for your contributions 👍 I'll review your list of commits and give you some feedback soon. |
|
Hi @m4tthew-d , I've tried to split the PR in several parts and this are my feedback: Part 1:
|
|
Hi @m4tthew-d, @noleti @francozappa Please guide me on the actual 'CIP_REqForwardOpen parameters and path'which should be send as a request to get proper response. Thanks in advance. |
A description of changes is provided below. The test packets generated in both the enip_tcp.py and enip_udp.py files from your code have remained the same. However I did notice that when looking at the enip_tcp.py test packet in Wireshark, the packet was supposedly malformed. I wanted to make sure you were aware of this.
Added Files:
enip.py
Modified Files:
cip.py
enip_cpf.py
enip_tcp.py
enip_udp.py
plc.py
utils.py