wise_guybg

Forum Replies Created

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • in reply to: Modify TTL of the packets #6005
    wise_guybg
    Participant

      My article has been moved to the following url:
      http://www.kamburov.net/aleksandar/articles/attlfilter.html

      in reply to: Modify TTL of the packets #6002
      wise_guybg
      Participant

        Voila 😉

        I have made a draft of the article. It’s available at :

        http://kamburov.net/index.php?/content/view/17/26/

        Any comments are greatly appreciated…

        in reply to: Modify TTL of the packets #6001
        wise_guybg
        Participant

          It was difficult searching the inet to find information on the topic.

          But it was really easy creating a solution with your framework.

          I’ll make sure to drop a link here when I’ve compiled my article.

          Thanks again 🙂

          in reply to: Modify TTL of the packets #5999
          wise_guybg
          Participant

            Why change TTL:

            You want to use ICS and your ISP is sending you packets with TTL=1

            What can you do:

            Clients can output packets with TTL= 129, this way your ISP want notice that packets hop through a desktop PC with enabled ICS. So on the client machines set:
            HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters
            DefaulTTL = 129

            I don’t see any point in enabling IPEnableRouter. I don’t fully understand what it does but if it will do routing we don’t need it. ICS takes care of everything.

            Next thing we need is a way to change the incoming packets of the Desktop PC that shares connection. This is needed as when “routing” the packet to a client, it’ll decrease TTL and drop the packet if the “bad” ISP has sent a value of 1.

            This can be made with a little changes to the PassThru example of the Framework. I think the link that SerpentFly provided is also a good example of packet modification in the tunnel.

            in reply to: Modify TTL of the packets #5997
            wise_guybg
            Participant

              I’m confused. I just return from the Price/Licensing page. From what I saw there, my last post is meaningless. I thought I can create my application and help others in the same position. As I can see it now, I can really only advise people to install the WinpkFilter Framework and then use my application. If I want something more, I should look for a license.

              For the WinpkFilter Helper Drivers Redistribution there is a price tag of 1495.00$ Guess this is the real price to pay since Microsoft didn’t do their part of the job 🙂

              Anyway, is it ok to have an Article on the subject we treat here with my Application as a solution and a link to the WinpkFilter run-time libraries that are presented on

              http://www.ntkernel.com/w&p.php?id=7

              or it is in violation of the license agreement?

              Hmm, I don’t see the case of and open source developer in your licensing plan 🙂 The 1495.00$ are too much since I only provide let’s say a sample application of the library for which I don’t want any money. 😕 bizarre

              in reply to: Modify TTL of the packets #5996
              wise_guybg
              Participant

                The real reason to come here is that now that I have finished my app, I want to write an Article on how to use it, how it was created.

                I was thinking of the distribution cases. The most simple for me is to link to the WinpkFilter Framework download page and instruct users to install it and then put my exe in the bin folder.

                That will work but I was wondering if I can make a more integrated install process. My application is written in Delphi (source code will be open). It needs the ndisapi.dll It in his turn needs the driver installed. Is there a setup script to install only the driver, the ndisapi.dll and a executable of your choice. Sorry if I’m being impudent. These days I have spend some time on the problem and realize that it’s not a small thing to create a Framework like this. I appreciate that you allow distributing the Framework package and use it freely… but can someone again for non-commercial, educational use… have a simple redistributable with the dll, the driver, and an application?

                😕

                I have posted the important part of the application… the other stuff is simply GUI that will also be available as source

                in reply to: Modify TTL of the packets #5995
                wise_guybg
                Participant

                  Same here, at Sofia… I can’t use inet on my laptop brought from work. Simple Windows ICS from my desktop PC doesn’t work so I had to play with the NTKernel goodies. Really nice libs. Thanks guys.

                  Let’s go to implementation:
                  1. Start with the PassThru example
                  2. Add some checks on the received packet
                  3. ttl=5
                  4. checksum=0
                  5. checksum=RecalcChecksum(ipheader, ipheaderlen)

                  I had the most problems on the checksum as different functions found on the net work with different params and it was hard to set it correctly. Now it works 🙂

                  some delphi code:


                  while not Terminated and (ReadPacket(hFilt, @ReadRequest) <> 0) do
                  begin
                  try
                  pEtherHeader := TEtherHeaderPtr(@Buffer.m_IBuffer);
                  // Check for IP protocol and OnReceive flag
                  if ntohs(pEtherHeader.h_proto) = ETH_P_IP then
                  begin
                  pIPHeader := TIPHeaderPtr(Integer(pEtherHeader) +
                  SizeOf(TEtherHeader));

                  // Check if TTL causes problems
                  if pIPHeader.TTL <= ERR_TTL then
                  begin
                  pIPHeader.TTL := NEW_TTL;
                  pIPHeader.Checksum := 0;
                  pIPHeader.Checksum := htons(
                  Checksum(PWord(pIPHeader),
                  (SizeOf(TIPHeader) - SizeOf(DWORD)) div 2));
                  end;
                  end;
                  finally
                  // Send the request down the line
                  if Buffer.m_dwDeviceFlags = PACKET_FLAG_ON_SEND then
                  // Place packet on the network interface
                  SendPacketToAdapter(hFilt, @ReadRequest)
                  else
                  // Indicate packet to MSTCP
                  SendPacketToMstcp(hFilt, @ReadRequest);
                  end;
                  end;
                  end;
                Viewing 7 posts - 1 through 7 (of 7 total)