xbase-util 0.8.7__tar.gz → 0.8.9__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 (36) hide show
  1. {xbase_util-0.8.7 → xbase_util-0.8.9}/PKG-INFO +1 -1
  2. {xbase_util-0.8.7 → xbase_util-0.8.9}/setup.py +1 -1
  3. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/common_util.py +1 -2
  4. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/pcap_util.py +35 -35
  5. xbase_util-0.8.9/xbase_util/test.py +11 -0
  6. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util.egg-info/PKG-INFO +1 -1
  7. xbase_util-0.8.7/xbase_util/test.py +0 -15
  8. {xbase_util-0.8.7 → xbase_util-0.8.9}/README.md +0 -0
  9. {xbase_util-0.8.7 → xbase_util-0.8.9}/setup.cfg +0 -0
  10. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/__init__.py +0 -0
  11. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/add_column_util.py +0 -0
  12. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/dangerous_util.py +0 -0
  13. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/db/__init__.py +0 -0
  14. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/db/bean/ConfigBean.py +0 -0
  15. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/db/bean/CurrentConfigBean.py +0 -0
  16. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/db/bean/FlowBean.py +0 -0
  17. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/db/bean/TaskTemplateBean.py +0 -0
  18. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/db/bean/__init__.py +0 -0
  19. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/db/dao/ConfigDao.py +0 -0
  20. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/db/dao/CurrentConfigDao.py +0 -0
  21. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/db/dao/FlowDao.py +0 -0
  22. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/db/dao/TaskTemplateDao.py +0 -0
  23. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/db/dao/__init__.py +0 -0
  24. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/db/initsqlite3.py +0 -0
  25. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/es_db_util.py +0 -0
  26. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/esreq.py +0 -0
  27. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/geo_util.py +0 -0
  28. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/handle_features_util.py +0 -0
  29. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/packet_util.py +0 -0
  30. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util/xbase_constant.py +0 -0
  31. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util.egg-info/SOURCES.txt +0 -0
  32. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util.egg-info/dependency_links.txt +0 -0
  33. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util.egg-info/not-zip-safe +0 -0
  34. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util.egg-info/top_level.txt +0 -0
  35. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util_assets/GeoLite2-City.mmdb +0 -0
  36. {xbase_util-0.8.7 → xbase_util-0.8.9}/xbase_util_assets/arkimeparse.js +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xbase_util
3
- Version: 0.8.7
3
+ Version: 0.8.9
4
4
  Summary: 网络安全基础工具
5
5
  Home-page: https://gitee.com/jimonik/xbase_util.git
6
6
  Author: xyt
@@ -3,7 +3,7 @@ from distutils.core import setup
3
3
  from setuptools import find_packages
4
4
 
5
5
  setup(name="xbase_util",
6
- version="0.8.7",
6
+ version="0.8.9",
7
7
  description="网络安全基础工具",
8
8
  long_description="包含提取,预测,训练的基础工具",
9
9
  author="xyt",
@@ -33,7 +33,6 @@ def parse_chunked_body(data: bytes, need_un_gzip=False,session_id="none") -> byt
33
33
  if chunk_size_end == -1:
34
34
  break
35
35
  chunk_size_hex = data[:chunk_size_end]
36
- print(f"chunk_size_hex:{chunk_size_hex}")
37
36
  chunk_size = int(chunk_size_hex, 16)
38
37
  if chunk_size == 0:
39
38
  break
@@ -50,7 +49,7 @@ def parse_chunked_body(data: bytes, need_un_gzip=False,session_id="none") -> byt
50
49
  else:
51
50
  return body
52
51
  except Exception as e:
53
- print(f"parse_chunked_body失败,session:{session_id}")
52
+ print(f"parse_chunked_body:session:{session_id}")
54
53
  return b''
55
54
 
56
55
 
@@ -297,46 +297,46 @@ def parse_body(data,session_id='none'):
297
297
  return filter_visible_chars(header), result_body_str
298
298
 
299
299
 
300
- def reassemble_session_pcap(reassemble_tcp_res, skey,session_id='none'):
301
- my_map = {
302
- 'key': '',
303
- 'req_header': '',
304
- 'req_body': '',
305
- 'req_time': 0,
306
- 'req_size': 0,
307
- 'res_header': '',
308
- 'res_body': '',
309
- 'res_time': 0,
310
- 'res_size': 0,
311
- }
300
+ def reassemble_session_pcap(reassemble_tcp_res, skey, session_id='none'):
301
+ my_map = None # 初始化为 None
312
302
  packet_list = []
313
- for index, packet in enumerate(reassemble_tcp_res):
303
+
304
+ for packet in reassemble_tcp_res:
314
305
  header, body = parse_body(packet['data'], session_id=session_id)
315
- if index == len(reassemble_tcp_res) - 1:
316
- packet_list.append(copy.deepcopy(my_map))
306
+
307
+ # 如果当前数据包是请求
317
308
  if packet['key'] == skey:
318
- if index != 0:
309
+ # 如果 my_map 已经存在(即已经有一个未完成的请求-响应对),先将其添加到 packet_list
310
+ if my_map is not None:
319
311
  packet_list.append(copy.deepcopy(my_map))
320
- my_map = {
321
- 'key': packet['key'],
322
- 'req_header': '',
323
- 'req_body': b'',
324
- 'req_time': 0,
325
- 'req_size': 0,
326
- 'res_header': '',
327
- 'res_body': b'',
328
- 'res_time': 0,
329
- 'res_size': 0,
330
- }
331
- my_map["req_header"] = header
332
- my_map["req_body"] = body
333
- my_map["req_time"] = packet['ts']
334
- my_map["req_size"] = len(packet['data'])
312
+
313
+ # 初始化一个新的 my_map,并填充请求数据
314
+ my_map = {
315
+ 'key': packet['key'],
316
+ 'req_header': header,
317
+ 'req_body': body,
318
+ 'req_time': packet['ts'],
319
+ 'req_size': len(packet['data']),
320
+ 'res_header': '',
321
+ 'res_body': b'',
322
+ 'res_time': 0,
323
+ 'res_size': 0,
324
+ }
325
+ # 如果当前数据包是响应
335
326
  else:
336
- my_map["res_header"] = header
337
- my_map["res_body"] = body
338
- my_map["res_time"] = packet['ts']
339
- my_map["res_size"] = len(packet['data'])
327
+ # 如果 my_map 存在(即已经有一个请求),则填充响应数据
328
+ if my_map is not None:
329
+ my_map['res_header'] = header
330
+ my_map['res_body'] = body
331
+ my_map['res_time'] = packet['ts']
332
+ my_map['res_size'] = len(packet['data'])
333
+
334
+ # 将完整的请求-响应对添加到 packet_list
335
+ packet_list.append(copy.deepcopy(my_map))
336
+ my_map = None # 重置 my_map
337
+ # 如果最后一个 my_map 未完成(只有请求没有响应),也将其添加到 packet_list
338
+ if my_map is not None:
339
+ packet_list.append(copy.deepcopy(my_map))
340
340
  return packet_list
341
341
 
342
342
 
@@ -0,0 +1,11 @@
1
+ from scapy.packet import Raw
2
+ from scapy.utils import rdpcap
3
+
4
+ from xbase_util.pcap_util import reassemble_tcp_pcap, reassemble_session_pcap
5
+
6
+ if __name__ == '__main__':
7
+ packets_scapy = reassemble_tcp_pcap(rdpcap("test.pcap"))
8
+ skey = '10.28.7.1:57266'
9
+ all_packets = reassemble_session_pcap(packets_scapy, skey=skey,session_id='enn')
10
+
11
+ print(all_packets)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xbase-util
3
- Version: 0.8.7
3
+ Version: 0.8.9
4
4
  Summary: 网络安全基础工具
5
5
  Home-page: https://gitee.com/jimonik/xbase_util.git
6
6
  Author: xyt
@@ -1,15 +0,0 @@
1
- from scapy.packet import Raw
2
- from scapy.utils import rdpcap
3
-
4
- from xbase_util.pcap_util import reassemble_tcp_pcap, reassemble_session_pcap
5
-
6
- if __name__ == '__main__':
7
- packets_scapy = reassemble_tcp_pcap(rdpcap("gzip2.pcap"))
8
- skey = '10.28.7.16:54398'
9
- streams = b""
10
- for pkt in packets_scapy:
11
- if Raw in pkt:
12
- streams += pkt[Raw].load
13
- text_data = streams.decode('ascii', errors='ignore')
14
- all_packets = reassemble_session_pcap(packets_scapy, skey=skey,session_id='enn')
15
-
File without changes
File without changes