Vadim Smirnov

Forum Replies Created

Viewing 15 posts - 16 through 30 (of 1,474 total)
  • Author
    Posts
  • in reply to: I have a problem rewriting NDIS in Go #13904
    Vadim Smirnov
    Keymaster

      I would recommend paying attention to the following points:

      1. Ensure that all structures used for driver communication are properly packed.

      2. If you are using a 64-bit driver, make sure to build your code for 64-bit as well.

      3. The adapter handle must correspond to the selected network interface.

      4. The event handle should be a native Windows handle.

      5. I suggest building and using the ndisapi.dll C interface in Go instead of reimplementing all the DeviceIoControl calls directly in Go.

      in reply to: Major packet loss and whole network latency issues #13900
      Vadim Smirnov
      Keymaster

        The fragmentation of Wireguard UDP packets is unusual and typically indicates problems with your Wireguard server setup. While it’s possible that these packets could be fragmented along the route, I find this unlikely. If packet fragmentation is occurring, consider adjusting the MTU on both your Wireguard server and client. Packets inside the tunnel can be fragmented and will be reassembled, but it’s uncommon for the Wireguard packets themselves to be fragmented. In my experience, I have not encountered this issue with my servers, although I have received a few complaints about it.

        I will consider implementing Wireguard packet defragmentation, but please note that handling packet fragmentation and defragmentation can have a significant performance impact.

        in reply to: Major packet loss and whole network latency issues #13897
        Vadim Smirnov
        Keymaster

          If logging is enabled, try disabling it to see if it improves performance, as extensive logging can significantly increase latency. For troubleshooting, I recommend using the WireSock CLI directly instead of WireSockUI.

          in reply to: Major packet loss and whole network latency issues #13894
          Vadim Smirnov
          Keymaster

            It would be helpful to have the console log and PCAP files for further analysis. One possible cause could be that WireSock doesn’t support packet defragmentation, which can lead to issues like the one you’re encountering.

            You can check out a recent discussion on a somewhat similar BitTorrent issue here

            in reply to: Sending a packet to Adapter, can’t see anywhere #13892
            Vadim Smirnov
            Keymaster

              The ability to capture a sent packet depends on how the drivers are layered. In some cases, it might not be possible. I recommend trying to capture the packet using Wireshark on the destination machine.
              If the adapter handle is configured correctly, you should be able to send any packet on a wired network. However, with WiFi, the situation is more complex since the MAC addresses must be accurate.

              Vadim Smirnov
              Keymaster

                It appears the system entered sleep mode at 18:03:02 and resumed at 18:14:24, right? However, the error remains unclear—it looks like the handshake packet failed to send over the UDP socket. I can build a version with extended logging to gather more details. At the very least, knowing the specific error code would be helpful. Is the Internet connection functioning correctly after the resume?

                in reply to: Filtering packets by a process, in the WinpkFilter #13886
                Vadim Smirnov
                Keymaster

                  The approach largely depends on the context. In general, if you need to work with a process context in the kernel driver, using WFP call-outs makes sense as they provide a more direct way to filter traffic based on process information at the kernel level. However, for user-mode operations, the overhead introduced by GetExtendedTcpTable() is similar to what you would encounter if you implemented the same functionality via a kernel driver.

                  So, if you’re aiming for a user-mode solution without the complexity of working in kernel mode, GetExtendedTcpTable() is a reasonable choice. But if you’re okay with working in the kernel and need tighter control, WFP call-outs would offer more flexibility and direct access to connection events like Connect and others.

                  Vadim Smirnov
                  Keymaster

                    Collecting logs after wake-up could provide valuable insights into what’s happening.

                    Vadim Smirnov
                    Keymaster

                      Typically, the WireSock VPN client automatically attempts to reconnect if the VPN connection is lost, as in your situation. Could you provide more details, such as the client version and whether you’re running it as a service or an application? Additionally, any logs you can share would be helpful in diagnosing the issue.

                      in reply to: amneziawg support #13878
                      Vadim Smirnov
                      Keymaster

                        I briefly reviewed the AmneziaWG repositories and noticed that there’s no existing library to handle packet obfuscation/deobfuscation, and I’d prefer not to extract the client code to create one myself. It would be much more convenient if the AmneziaWG authors developed such a library. I’ve submitted an issue about this. If you’re interested in this feature, please consider supporting it:

                        https://github.com/amnezia-vpn/amneziawg-windows-client/issues/15

                        in reply to: Проблема с запуском Wiresock через 3proxy #13877
                        Vadim Smirnov
                        Keymaster

                          Да, есть такая проблема, и без антиспама никак и с ним неудобно. Давайте попробуем один из этих каналов:

                          https://t.me/wiresock
                          https://www.reddit.com/r/WireSock/s/zHPkfxYEsp

                          in reply to: Does not establish connection through shadowsocks tunnel #13876
                          Vadim Smirnov
                          Keymaster

                            Currently, localhost connections are not supported because they were not prioritized as essential functionality. While the initial handshake packet is sent over Windows sockets, the subsequent packets are injected directly into the NDIS layer, causing them to be misdirected in case of localhost server. I plan to address this and add localhost support in future releases.

                            Vadim Smirnov
                            Keymaster

                              Нужно больше подробностей, логов, адресов и т.п.

                              in reply to: about hck test #13862
                              Vadim Smirnov
                              Keymaster

                                I believe that, eventually, it will no longer be possible to sign drivers for Windows 7/8, much like it’s currently impossible for Windows Vista. Depending on your code signing certificate, you may need a cross-certificate to correctly sign drivers for Windows 7/8. In my experience, I’ve encountered the fewest issues with certificates from GlobalSign. However, I agree that driver signing can be tricky.

                                in reply to: about hck test #13857
                                Vadim Smirnov
                                Keymaster

                                  You’re correct, I did not pass the Windows 7/8 driver through HCK testing, and as you may have noticed, it doesn’t have a Microsoft signature.

                                Viewing 15 posts - 16 through 30 (of 1,474 total)