nopasaran 0.2.101__tar.gz → 0.2.103__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. {nopasaran-0.2.101 → nopasaran-0.2.103}/PKG-INFO +1 -1
  2. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/tcp_dns_response_primitives.py +5 -4
  3. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/udp_dns_response_primitives.py +4 -3
  4. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/tools/tcp_dns_socket_server.py +4 -4
  5. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/tools/udp_dns_socket_server.py +4 -7
  6. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran.egg-info/PKG-INFO +1 -1
  7. {nopasaran-0.2.101 → nopasaran-0.2.103}/setup.py +1 -1
  8. {nopasaran-0.2.101 → nopasaran-0.2.103}/LICENSE +0 -0
  9. {nopasaran-0.2.101 → nopasaran-0.2.103}/README.md +0 -0
  10. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/__init__.py +0 -0
  11. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/__main__.py +0 -0
  12. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/controllers/__init__.py +0 -0
  13. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/controllers/controller.py +0 -0
  14. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/controllers/factory.py +0 -0
  15. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/controllers/protocol.py +0 -0
  16. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/decorators.py +0 -0
  17. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/definitions/__init__.py +0 -0
  18. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/definitions/commands.py +0 -0
  19. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/definitions/control_channel.py +0 -0
  20. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/definitions/events.py +0 -0
  21. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/definitions/transitions.py +0 -0
  22. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/errors/__init__.py +0 -0
  23. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/errors/parsing_error.py +0 -0
  24. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/http_2_utils.py +0 -0
  25. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/interpreters/__init__.py +0 -0
  26. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/interpreters/action_interpreter.py +0 -0
  27. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/interpreters/condition_interpreter.py +0 -0
  28. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/interpreters/interpreter.py +0 -0
  29. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/interpreters/transition_interpreter.py +0 -0
  30. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/machines/__init__.py +0 -0
  31. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/machines/action_queue.py +0 -0
  32. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/machines/state_machine.py +0 -0
  33. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/parsers/__init__.py +0 -0
  34. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/parsers/interpreter_parser.py +0 -0
  35. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/parsers/state_machine_parser.py +0 -0
  36. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/__init__.py +0 -0
  37. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/__init__.py +0 -0
  38. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/action_primitives.py +0 -0
  39. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/certificate_primitives.py +0 -0
  40. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/client_echo_primitives.py +0 -0
  41. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/control_channel_primitives.py +0 -0
  42. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/data_channel_primitives.py +0 -0
  43. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/data_manipulation.py +0 -0
  44. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/dns_primitives.py +0 -0
  45. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/event_primitives.py +0 -0
  46. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/http_1_request_primitives.py +0 -0
  47. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/http_1_response_primitives.py +0 -0
  48. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/http_2_client_primitives.py +0 -0
  49. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/http_2_server_primitives.py +0 -0
  50. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/http_simple_client_primitives.py +0 -0
  51. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/https_1_request_primitives.py +0 -0
  52. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/https_1_response_primitives.py +0 -0
  53. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/icmp_primitives.py +0 -0
  54. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/io_primitives.py +0 -0
  55. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/ip_primitives.py +0 -0
  56. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/nested_machine_utils.py +0 -0
  57. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/probing_primitives.py +0 -0
  58. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/replay_primitives.py +0 -0
  59. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/server_echo_primitives.py +0 -0
  60. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/signaling_primitive.py +0 -0
  61. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/tcp_dns_request_primitives.py +0 -0
  62. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/tcp_primitives.py +0 -0
  63. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/timing_primitives.py +0 -0
  64. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/tls_primitives.py +0 -0
  65. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/udp_dns_request_primitives.py +0 -0
  66. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/action_primitives/udp_primitives.py +0 -0
  67. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/condition_primitives/__init__.py +0 -0
  68. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/condition_primitives/condition_primitives.py +0 -0
  69. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/condition_primitives/variable_comparisons.py +0 -0
  70. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/primitives.py +0 -0
  71. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/transition_primitives/__init__.py +0 -0
  72. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/transition_primitives/assignment_transitions.py +0 -0
  73. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/primitives/transition_primitives/transition_primitives.py +0 -0
  74. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/sniffers/__init__.py +0 -0
  75. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/sniffers/sniffer.py +0 -0
  76. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/tools/__init__.py +0 -0
  77. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/tools/checks.py +0 -0
  78. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/tools/echo_socket_server.py +0 -0
  79. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/tools/http_1_socket_server.py +0 -0
  80. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/tools/http_2_overwrite.py +0 -0
  81. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/tools/http_2_socket_base.py +0 -0
  82. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/tools/http_2_socket_client.py +0 -0
  83. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/tools/http_2_socket_server.py +0 -0
  84. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/tools/https_1_socket_server.py +0 -0
  85. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran/utils.py +0 -0
  86. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran.egg-info/SOURCES.txt +0 -0
  87. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran.egg-info/dependency_links.txt +0 -0
  88. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran.egg-info/entry_points.txt +0 -0
  89. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran.egg-info/requires.txt +0 -0
  90. {nopasaran-0.2.101 → nopasaran-0.2.103}/nopasaran.egg-info/top_level.txt +0 -0
  91. {nopasaran-0.2.101 → nopasaran-0.2.103}/setup.cfg +0 -0
  92. {nopasaran-0.2.101 → nopasaran-0.2.103}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nopasaran
3
- Version: 0.2.101
3
+ Version: 0.2.103
4
4
  Summary: NoPASARAN is an advanced network tool designed to detect, fingerprint, and locate network middleboxes in a unified framework.
5
5
  Home-page: https://github.com/BenIlies/NoPASARAN
6
6
  Author: Ilies Benhabbour
@@ -10,11 +10,12 @@ class TCPDNSResponsePrimitives:
10
10
  state_machine.set_variable_value(outputs[0], server)
11
11
 
12
12
  @staticmethod
13
- @parsing_decorator(input_args=2, output_args=0)
13
+ @parsing_decorator(input_args=3, output_args=0)
14
14
  def start_tcp_dns_server(inputs, outputs, state_machine):
15
15
  server = state_machine.get_variable_value(inputs[0])
16
- port = int(state_machine.get_variable_value(inputs[1]))
17
- server.start(port)
16
+ listening_ip = state_machine.get_variable_value(inputs[1])
17
+ port = int(state_machine.get_variable_value(inputs[2]))
18
+ server.start(listening_ip, port)
18
19
 
19
20
  @staticmethod
20
21
  @parsing_decorator(input_args=4, output_args=1)
@@ -28,7 +29,7 @@ class TCPDNSResponsePrimitives:
28
29
  """
29
30
  server = state_machine.get_variable_value(inputs[0])
30
31
  timeout = int(state_machine.get_variable_value(inputs[2]))
31
- response_spec = state_machine.get_variable_value(inputs[3]) # can be None
32
+ response_spec = state_machine.get_variable_value(inputs[3])
32
33
 
33
34
  result, _ = server.wait_for_query(timeout, response_spec)
34
35
  state_machine.set_variable_value(outputs[0], result)
@@ -10,11 +10,12 @@ class UDPDNSResponsePrimitives:
10
10
  state_machine.set_variable_value(outputs[0], server)
11
11
 
12
12
  @staticmethod
13
- @parsing_decorator(input_args=2, output_args=0)
13
+ @parsing_decorator(input_args=3, output_args=0)
14
14
  def start_udp_dns_server(inputs, outputs, state_machine):
15
15
  server = state_machine.get_variable_value(inputs[0])
16
- port = int(state_machine.get_variable_value(inputs[1]))
17
- server.start(port)
16
+ listening_ip = state_machine.get_variable_value(inputs[1])
17
+ port = int(state_machine.get_variable_value(inputs[2]))
18
+ server.start(listening_ip, port)
18
19
 
19
20
  @staticmethod
20
21
  @parsing_decorator(input_args=4, output_args=1)
@@ -10,13 +10,13 @@ class TCPDNSSocketServer:
10
10
  def __init__(self):
11
11
  self.sock = None
12
12
 
13
- def start(self, port):
13
+ def start(self, listening_ip, port):
14
14
  self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
15
15
  self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
16
- self.sock.bind(('', port))
16
+ self.sock.bind((listening_ip, port))
17
17
  self.sock.listen(5)
18
- logging.info(f"TCP DNS server started on port {port}")
19
- return EventNames.SERVER_STARTED.name, f"TCP DNS server started on port {port}"
18
+ logging.info(f"TCP DNS server started on {listening_ip}:{port}")
19
+ return EventNames.SERVER_STARTED.name, f"TCP DNS server started on {listening_ip}:{port}"
20
20
 
21
21
  def wait_for_query(self, timeout, response_spec=None):
22
22
  timeout = float(timeout)
@@ -1,7 +1,4 @@
1
1
  import socket
2
- import struct
3
- import select
4
- import time
5
2
  from dnslib import DNSRecord, RR, QTYPE, A, CNAME, MX, TXT, NS, SOA, PTR, AAAA, SRV, DS, RRSIG, NSEC, DNSKEY
6
3
  from nopasaran.definitions.events import EventNames
7
4
  import logging
@@ -10,12 +7,12 @@ class UDPDNSSocketServer:
10
7
  def __init__(self):
11
8
  self.sock = None
12
9
 
13
- def start(self, port):
10
+ def start(self, listening_ip, port):
14
11
  self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
15
12
  self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
16
- self.sock.bind(('', port))
17
- logging.info(f"UDP DNS server started on port {port}")
18
- return EventNames.SERVER_STARTED.name, f"UDP DNS server started on port {port}"
13
+ self.sock.bind((listening_ip, port))
14
+ logging.info(f"UDP DNS server started on {listening_ip}:{port}")
15
+ return EventNames.SERVER_STARTED.name, f"UDP DNS server started on {listening_ip}:{port}"
19
16
 
20
17
  def wait_for_query(self, timeout, response_spec=None):
21
18
  self.sock.settimeout(timeout)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nopasaran
3
- Version: 0.2.101
3
+ Version: 0.2.103
4
4
  Summary: NoPASARAN is an advanced network tool designed to detect, fingerprint, and locate network middleboxes in a unified framework.
5
5
  Home-page: https://github.com/BenIlies/NoPASARAN
6
6
  Author: Ilies Benhabbour
@@ -13,7 +13,7 @@ with open(requirements_file, "r") as f:
13
13
  # Version will automatically be updated when pushed on the main branch
14
14
  setup(
15
15
  name="nopasaran",
16
- version='0.2.101',
16
+ version='0.2.103',
17
17
  author="Ilies Benhabbour",
18
18
  author_email="ilies.benhabbour@kaust.edu.sa",
19
19
  description="NoPASARAN is an advanced network tool designed to detect, fingerprint, and locate network middleboxes in a unified framework.",
File without changes
File without changes
File without changes