The younger brother some question want to ask:
Recently doing a firewall equipment to retrieve the OPC ALG processing flow and do a project, because the device involved in network address translation (NAT), so the address of the IP layer will be modified, because the OPC server while negotiations RemoteCreatInstance sent in the Response message carries the server address and port information, because do address translation so the client can't see the real network server address, so I need to put this address in the packet to the change, the question now is if you change the address and the modified length before is the same, such as by 1.1.1.1 changed to 2.2.2.2, that such a connection is no problem, but if the length is different, such as by 10.10.10.10 changed 1.1.1.1, not even in, always report parameter error prompt, corresponding modification NumEntries length is not the same as I will, some securityoffset etc. This involves the length and offset fields, I use wireshark caught see each field is right, but after the Response message sent to the client, the client is an error, don't know where is my missing changed or there are other caveats? Hope everyone know hint, the other as if the data inside four bytes aligned, so I deliberately modify address before and after the difference of the length of the multiple of 4 bytes, also can ignore the alignment problem temporarily, so my client and the server is done with Matrikon OPC explorer,
Pictured above is my main modified StringBinding NetworkAddr,