atomicshop 2.19.16__py3-none-any.whl → 2.19.18__py3-none-any.whl

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.

Potentially problematic release.


This version of atomicshop might be problematic. Click here for more details.

atomicshop/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  """Atomic Basic functions and classes to make developer life easier"""
2
2
 
3
3
  __author__ = "Den Kras"
4
- __version__ = '2.19.16'
4
+ __version__ = '2.19.18'
atomicshop/etws/trace.py CHANGED
@@ -1,7 +1,7 @@
1
1
  import queue
2
2
  import sys
3
- import time
4
3
  import multiprocessing.managers
4
+ from datetime import datetime
5
5
 
6
6
  # Import FireEye Event Tracing library.
7
7
  import etw
@@ -9,7 +9,6 @@ import etw
9
9
  from ..print_api import print_api
10
10
  from . import sessions
11
11
  from ..process_poller import simple_process_pool
12
- from ..wrappers.psutilw import psutilw
13
12
 
14
13
 
15
14
  class EventTrace(etw.ETW):
@@ -147,9 +146,13 @@ class EventTrace(etw.ETW):
147
146
 
148
147
  event: tuple = self.event_queue.get()
149
148
 
149
+ current_datetime = datetime.now()
150
+ readable_time = current_datetime.strftime('%Y-%m-%d %H:%M:%S.%f')
151
+
150
152
  event_dict: dict = {
151
153
  'EventId': event[0],
152
- 'EventHeader': event[1]
154
+ 'EventHeader': event[1],
155
+ 'timestamp': readable_time
153
156
  }
154
157
 
155
158
  if 'ProcessId' not in event[1]:
@@ -136,6 +136,7 @@ class DnsRequestResponseTrace:
136
136
  status = 'Error'
137
137
 
138
138
  event_dict: dict = {
139
+ 'timestamp': event['timestamp'],
139
140
  'event_id': event['EventId'],
140
141
  'query': event['EventHeader']['QueryName'],
141
142
  'query_type_id': str(event['EventHeader']['QueryType']),
@@ -112,6 +112,7 @@ class TcpIpNewConnectionsTrace:
112
112
  remote_address = remote_address.replace('[', '').replace(']', '')
113
113
 
114
114
  event_dict: dict = {
115
+ 'timestamp': event['timestamp'],
115
116
  'event_id': event['EventId'],
116
117
  'local_ip': local_address,
117
118
  'local_port': local_port,
@@ -5,12 +5,16 @@ import socket
5
5
  import psutil
6
6
 
7
7
 
8
- def get_process_using_port(port: int) -> Union[dict, None]:
8
+ def get_process_using_port(ip_port: str) -> Union[dict, None]:
9
9
  """
10
10
  Function to find the process using the port.
11
- :param port: Port number.
11
+ :param ip_port: string, Listening IP and port number. Example: '192.168.0.1:443'
12
12
  :return: dict['pid', 'name', 'cmdline'] or None.
13
13
  """
14
+
15
+ ip_address, port = ip_port.split(':')
16
+ port = int(port)
17
+
14
18
  for proc in psutil.process_iter(['pid', 'name', 'cmdline']):
15
19
  try:
16
20
  connections = proc.connections(kind='inet')
@@ -34,17 +38,18 @@ def get_process_using_port(port: int) -> Union[dict, None]:
34
38
  return None
35
39
 
36
40
 
37
- def get_processes_using_port_list(ports: list) -> Union[dict, None]:
41
+ def get_processes_using_port_list(ips_ports: list) -> Union[dict, None]:
38
42
  """
39
43
  Function to find the process using the port.
40
- :param ports: List of port numbers.
44
+ :param ips_ports: List of listening ips and port numbers. Example:
45
+ ['192.168.0.1:443', '192.168.0.2:443']
41
46
  :return: dict[port: {'pid', 'name', 'cmdline'}] or None.
42
47
  """
43
48
  port_process_map = {}
44
- for port in ports:
45
- process_info = get_process_using_port(port)
49
+ for ip_port in ips_ports:
50
+ process_info = get_process_using_port(ip_port)
46
51
  if process_info:
47
- port_process_map[port] = process_info
52
+ port_process_map[ip_port] = process_info
48
53
 
49
54
  return port_process_map
50
55
 
@@ -273,7 +273,8 @@ class DnsServer:
273
273
  except ValueError as e:
274
274
  raise DnsConfigurationValuesError(e)
275
275
 
276
- port_in_use = networks.get_processes_using_port_list([self.listening_port])
276
+ ips_ports: list[str] = [f'{self.listening_interface}:{self.listening_port}']
277
+ port_in_use = networks.get_processes_using_port_list(ips_ports)
277
278
  if port_in_use:
278
279
  error_messages: list = list()
279
280
  for port, process_info in port_in_use.items():
@@ -309,7 +309,11 @@ class SocketWrapper:
309
309
  print_api(message, color='red', logger=self.logger)
310
310
  return 1
311
311
 
312
- port_in_use = networks.get_processes_using_port_list(self.listening_port_list)
312
+ ips_ports: list[str] = list()
313
+ for port in self.listening_port_list:
314
+ ips_ports.append(f"{self.listening_interface}:{port}")
315
+
316
+ port_in_use = networks.get_processes_using_port_list(ips_ports)
313
317
  if port_in_use:
314
318
  error_messages: list = list()
315
319
  for port, process_info in port_in_use.items():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: atomicshop
3
- Version: 2.19.16
3
+ Version: 2.19.18
4
4
  Summary: Atomic functions and classes to make developer life easier
5
5
  Author: Denis Kras
6
6
  License: MIT License
@@ -1,4 +1,4 @@
1
- atomicshop/__init__.py,sha256=iSWSvU0vNJjZowFs0TPAYg5UgE0d7XERSmYHkUprfXg,124
1
+ atomicshop/__init__.py,sha256=4UeQSXSVlnbqLSWgBWo0xew0C1VyVkT67l5_ABe7iDA,124
2
2
  atomicshop/_basics_temp.py,sha256=6cu2dd6r2dLrd1BRNcVDKTHlsHs_26Gpw8QS6v32lQ0,3699
3
3
  atomicshop/_create_pdf_demo.py,sha256=Yi-PGZuMg0RKvQmLqVeLIZYadqEZwUm-4A9JxBl_vYA,3713
4
4
  atomicshop/_patch_import.py,sha256=ENp55sKVJ0e6-4lBvZnpz9PQCt3Otbur7F6aXDlyje4,6334
@@ -119,11 +119,11 @@ atomicshop/etws/_pywintrace_fix.py,sha256=nHrtnAb796eOZ6FlCqcsuRh_TSqSPp6JXLN6TB
119
119
  atomicshop/etws/const.py,sha256=v3x_IdCYeSKbCGywiZFOZln80ldpwKW5nuMDuUe51Jg,1257
120
120
  atomicshop/etws/providers.py,sha256=CXNx8pYdjtpLIpA66IwrnE64XhY4U5ExnFBMLEb8Uzk,547
121
121
  atomicshop/etws/sessions.py,sha256=b_KeiOvgOBJezJokN81TRlrvJiQNJlIWN4Z6UVjuxP0,1335
122
- atomicshop/etws/trace.py,sha256=p-5wegZ-5SuJ3UsprCCnlor8g2LPkF9ZOynLCYaEvXQ,7647
122
+ atomicshop/etws/trace.py,sha256=u38pgUa9_eG1WBSDUOJ2PmCRQWifZJCEmovCy8OFk18,7786
123
123
  atomicshop/etws/traces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
- atomicshop/etws/traces/trace_dns.py,sha256=SWeex1mK7rrMzCmmL3qiGaD_jzbRiiwJ_mhMZz5TwJc,6879
124
+ atomicshop/etws/traces/trace_dns.py,sha256=mCZgkSrfYrq9rBfqWGmY7rRSqFQeMoQWCOC8ggjKUak,6925
125
125
  atomicshop/etws/traces/trace_sysmon_process_creation.py,sha256=OM-bkK38uYMwWLZKNOTDa0Xdk3sO6sqsxoMUIiPvm5g,4656
126
- atomicshop/etws/traces/trace_tcp.py,sha256=pQF4A_qM-HjEhzMQUyTmUqOWdvSaqqAg5PwnkVn2fy4,5236
126
+ atomicshop/etws/traces/trace_tcp.py,sha256=bHxngCxuKFOlSJw7z7fWAG613nzqLYZMktgxAlGC5rQ,5282
127
127
  atomicshop/file_io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
128
  atomicshop/file_io/csvs.py,sha256=zv0kKjRT-ZWRi0WpMIUQ_FKyP9Dt0f5Bc98Qsj6ClPU,9495
129
129
  atomicshop/file_io/docxs.py,sha256=Nyt3hSpzwqUKZEP5p5efqNpjFs9XqkK40Kp7BbbPo7E,6245
@@ -290,7 +290,7 @@ atomicshop/wrappers/playwrightw/waits.py,sha256=PBFdz_PoM7Fo7O8hLqMrxNPzBEYgPoXw
290
290
  atomicshop/wrappers/psutilw/cpus.py,sha256=w6LPBMINqS-T_X8vzdYkLS2Wzuve28Ydp_GafTCngrc,236
291
291
  atomicshop/wrappers/psutilw/disks.py,sha256=3ZSVoommKH1TWo37j_83frB-NqXF4Nf5q5mBCX8G4jE,9221
292
292
  atomicshop/wrappers/psutilw/memories.py,sha256=_S0aL8iaoIHebd1vOFrY_T9aROM5Jx2D5CvDh_4j0Vc,528
293
- atomicshop/wrappers/psutilw/networks.py,sha256=uv0QN-7Abp15iQ2leWj6oIoItBtBKhuLkN0i9w0vHaM,2591
293
+ atomicshop/wrappers/psutilw/networks.py,sha256=S_p1vyZN8LsauHset8OPNAi3TmR6F9A4Amqe9EgoMAI,2814
294
294
  atomicshop/wrappers/psutilw/processes.py,sha256=ihYnxfMTVEXHWy92iewktoZGxazx3v5QCIn0bNLnfsU,2859
295
295
  atomicshop/wrappers/psutilw/psutilw.py,sha256=q3EwgprqyrR4zLCjl4l5DHFOQoukEvQMIPjNB504oQ0,21262
296
296
  atomicshop/wrappers/psycopgw/psycopgw.py,sha256=XJvVf0oAUjCHkrYfKeFuGCpfn0Oxj3u4SbKMKA1508E,7118
@@ -316,7 +316,7 @@ atomicshop/wrappers/socketw/accepter.py,sha256=hZZKVYlF3LOHQJsSIEKXZUf6QXXWm-Atq
316
316
  atomicshop/wrappers/socketw/base.py,sha256=zYwFxiEzTcItFi1RZQCMxMTLBvECVUiKwivPYKcu44g,2713
317
317
  atomicshop/wrappers/socketw/certificator.py,sha256=mtWPJ_ew3OSwt0-1W4jaoco1VIY4NRCrMv3mDUxb_Cc,12418
318
318
  atomicshop/wrappers/socketw/creator.py,sha256=aSwfN_IwXXf4Hob35vHXUxD_OPeshZcRDZU2hMyfKs0,13243
319
- atomicshop/wrappers/socketw/dns_server.py,sha256=RklzINNuoMQn4PGGQEI5hiAldprbVwwvikY6u9X-jTY,49067
319
+ atomicshop/wrappers/socketw/dns_server.py,sha256=vNh22q5CBzCf8Rn50NNDRs05J4AyRSoT78lTT0q-rb4,49141
320
320
  atomicshop/wrappers/socketw/exception_wrapper.py,sha256=B-X5SHLSUIWToihH2MKnOB1F4A81_X0DpLLfnYKYbEc,7067
321
321
  atomicshop/wrappers/socketw/get_process.py,sha256=aJC-_qFUv3NgWCSUzDI72E4z8_-VTZE9NVZ0CwUoNlM,5698
322
322
  atomicshop/wrappers/socketw/receiver.py,sha256=9B3MvcDqr4C3x2fsnjG5SQognd1wRqsBgikxZa0wXG8,8243
@@ -324,14 +324,14 @@ atomicshop/wrappers/socketw/sender.py,sha256=aX_K8l_rHjd5AWb8bi5mt8-YTkMYVRDB6Dn
324
324
  atomicshop/wrappers/socketw/sni.py,sha256=T9PXROiTYYxrd_7X4Hoj9hoNPXXTQpa2HdvmBJJIoeA,17607
325
325
  atomicshop/wrappers/socketw/socket_client.py,sha256=oa3GwS4OPgokrJE5_Oc4-5_wlXHxSH9J5f2DKebms8k,22035
326
326
  atomicshop/wrappers/socketw/socket_server_tester.py,sha256=Qobmh4XV8ZxLUaw-eW4ESKAbeSLecCKn2OWFzMhadk0,6420
327
- atomicshop/wrappers/socketw/socket_wrapper.py,sha256=S03micuzwD06BSz5YU8DsKfAs_toppgQsndpczj60s4,36124
327
+ atomicshop/wrappers/socketw/socket_wrapper.py,sha256=3JhqFmHcNDWYBSqBiJbyXZ5btkEXtbqVG0r4XRCyFGs,36265
328
328
  atomicshop/wrappers/socketw/ssl_base.py,sha256=kmiif84kMhBr5yjQW17p935sfjR5JKG0LxIwBA4iVvU,2275
329
329
  atomicshop/wrappers/socketw/statistics_csv.py,sha256=fgMzDXI0cybwUEqAxprRmY3lqbh30KAV-jOpoFKT-m8,3395
330
330
  atomicshop/wrappers/winregw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
331
331
  atomicshop/wrappers/winregw/winreg_installed_software.py,sha256=Qzmyktvob1qp6Tjk2DjLfAqr_yXV0sgWzdMW_9kwNjY,2345
332
332
  atomicshop/wrappers/winregw/winreg_network.py,sha256=AENV88H1qDidrcpyM9OwEZxX5svfi-Jb4N6FkS1xtqA,8851
333
- atomicshop-2.19.16.dist-info/LICENSE.txt,sha256=lLU7EYycfYcK2NR_1gfnhnRC8b8ccOTElACYplgZN88,1094
334
- atomicshop-2.19.16.dist-info/METADATA,sha256=uDnHTYzOlT54oM3QgJckEUYc5iDwE6wBipRH9S1aUB8,10631
335
- atomicshop-2.19.16.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
336
- atomicshop-2.19.16.dist-info/top_level.txt,sha256=EgKJB-7xcrAPeqTRF2laD_Np2gNGYkJkd4OyXqpJphA,11
337
- atomicshop-2.19.16.dist-info/RECORD,,
333
+ atomicshop-2.19.18.dist-info/LICENSE.txt,sha256=lLU7EYycfYcK2NR_1gfnhnRC8b8ccOTElACYplgZN88,1094
334
+ atomicshop-2.19.18.dist-info/METADATA,sha256=Vs7F9AQLJXcK_EzKoeh2fHWlXxnZMsv4-Ow8ymwnNAk,10631
335
+ atomicshop-2.19.18.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
336
+ atomicshop-2.19.18.dist-info/top_level.txt,sha256=EgKJB-7xcrAPeqTRF2laD_Np2gNGYkJkd4OyXqpJphA,11
337
+ atomicshop-2.19.18.dist-info/RECORD,,