xbase-util 0.9.0__tar.gz → 0.9.1__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 (35) hide show
  1. {xbase_util-0.9.0 → xbase_util-0.9.1}/PKG-INFO +1 -1
  2. {xbase_util-0.9.0 → xbase_util-0.9.1}/setup.py +1 -1
  3. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/common_util.py +9 -9
  4. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/pcap_util.py +7 -18
  5. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/test.py +1 -1
  6. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util.egg-info/PKG-INFO +1 -1
  7. {xbase_util-0.9.0 → xbase_util-0.9.1}/README.md +0 -0
  8. {xbase_util-0.9.0 → xbase_util-0.9.1}/setup.cfg +0 -0
  9. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/__init__.py +0 -0
  10. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/add_column_util.py +0 -0
  11. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/dangerous_util.py +0 -0
  12. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/db/__init__.py +0 -0
  13. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/db/bean/ConfigBean.py +0 -0
  14. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/db/bean/CurrentConfigBean.py +0 -0
  15. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/db/bean/FlowBean.py +0 -0
  16. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/db/bean/TaskTemplateBean.py +0 -0
  17. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/db/bean/__init__.py +0 -0
  18. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/db/dao/ConfigDao.py +0 -0
  19. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/db/dao/CurrentConfigDao.py +0 -0
  20. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/db/dao/FlowDao.py +0 -0
  21. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/db/dao/TaskTemplateDao.py +0 -0
  22. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/db/dao/__init__.py +0 -0
  23. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/db/initsqlite3.py +0 -0
  24. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/es_db_util.py +0 -0
  25. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/esreq.py +0 -0
  26. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/geo_util.py +0 -0
  27. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/handle_features_util.py +0 -0
  28. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/packet_util.py +0 -0
  29. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util/xbase_constant.py +0 -0
  30. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util.egg-info/SOURCES.txt +0 -0
  31. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util.egg-info/dependency_links.txt +0 -0
  32. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util.egg-info/not-zip-safe +0 -0
  33. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util.egg-info/top_level.txt +0 -0
  34. {xbase_util-0.9.0 → xbase_util-0.9.1}/xbase_util_assets/GeoLite2-City.mmdb +0 -0
  35. {xbase_util-0.9.0 → xbase_util-0.9.1}/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.9.0
3
+ Version: 0.9.1
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.9.0",
6
+ version="0.9.1",
7
7
  description="网络安全基础工具",
8
8
  long_description="包含提取,预测,训练的基础工具",
9
9
  author="xyt",
@@ -26,7 +26,7 @@ def filter_visible_chars(data):
26
26
  return ''.join(chr(b) for b in data if 32 <= b <= 126 or b in (9, 10, 13))
27
27
 
28
28
 
29
- def parse_chunked_body(data: bytes, need_un_gzip=False,session_id="none") -> bytes:
29
+ def parse_chunked_body(data: bytes,session_id="none",skey='') -> bytes:
30
30
  try:
31
31
  body = b''
32
32
  while True:
@@ -41,17 +41,17 @@ def parse_chunked_body(data: bytes, need_un_gzip=False,session_id="none") -> byt
41
41
  chunk_end = chunk_start + chunk_size
42
42
  body += data[chunk_start:chunk_end]
43
43
  data = data[chunk_end + 2:]
44
- if need_un_gzip:
45
- try:
46
- return gzip.decompress(body)
47
- except gzip.BadGzipFile:
48
- print(f"解压错误:{session_id}")
49
- return body
50
- else:
44
+ # if need_un_gzip:
45
+ # try:
46
+ # return gzip.decompress(body)
47
+ # except gzip.BadGzipFile:
48
+ # print(f"解压错误:{session_id}")
49
+ # return body
50
+ # else:
51
51
  return body
52
52
  except Exception as e:
53
53
  traceback.print_exc()
54
- print(f"其他错误:session:{session_id}")
54
+ print(f"其他错误:session:{skey} {session_id}")
55
55
  return b''
56
56
 
57
57
 
@@ -274,7 +274,7 @@ def process_session_id_disk_simple(id, node, packet_pos, esdb, pcap_path_prefix)
274
274
  return get_file_and_read_pos(id, file, pos_list)
275
275
 
276
276
 
277
- def parse_body(data,session_id='none'):
277
+ def parse_body(data,skey='',session_id='none'):
278
278
  if data.find(b"\r\n\r\n") != -1:
279
279
  res = data.split(b"\r\n\r\n", 1)
280
280
  header = res[0]
@@ -284,31 +284,25 @@ def parse_body(data,session_id='none'):
284
284
  body = b''
285
285
  chunked_pattern = pattern_chuncked.search(header)
286
286
  gzip_pattern = pattern_gzip.search(header)
287
- need_gzip = gzip_pattern and b'gzip' in gzip_pattern.group()
288
287
  if chunked_pattern and b'chunked' in chunked_pattern.group():
289
- body = parse_chunked_body(body, need_un_gzip=need_gzip,session_id=session_id)
290
- elif need_gzip:
288
+ body = parse_chunked_body(body,session_id=session_id,skey=skey)
289
+ if gzip_pattern and b'gzip' in gzip_pattern.group():
291
290
  try:
292
291
  body = gzip.decompress(body)
293
292
  except:
294
- print(f"解压失败:{session_id}")
295
- pass
296
- result_body_str = filter_visible_chars(body)
297
- return filter_visible_chars(header), result_body_str
293
+ print(f"解压失败:{skey} {session_id}")
294
+ return filter_visible_chars(header), filter_visible_chars(body)
298
295
 
299
296
 
300
297
  def reassemble_session_pcap(reassemble_tcp_res, skey, session_id='none'):
301
298
  my_map = None # 初始化为 None
302
299
  packet_list = []
303
300
  for packet in reassemble_tcp_res:
304
- header, body = parse_body(packet['data'], session_id=session_id)
301
+ header, body = parse_body(packet['data'],skey=skey, session_id=session_id)
305
302
  # 如果当前数据包是请求
306
303
  if packet['key'] == skey:
307
- # 如果 my_map 已经存在(即已经有一个未完成的请求-响应对),先将其添加到 packet_list
308
304
  if my_map is not None:
309
305
  packet_list.append(copy.deepcopy(my_map))
310
-
311
- # 初始化一个新的 my_map,并填充请求数据
312
306
  my_map = {
313
307
  'key': packet['key'],
314
308
  'req_header': header,
@@ -320,19 +314,14 @@ def reassemble_session_pcap(reassemble_tcp_res, skey, session_id='none'):
320
314
  'res_time': 0,
321
315
  'res_size': 0,
322
316
  }
323
- # 如果当前数据包是响应
324
317
  else:
325
- # 如果 my_map 存在(即已经有一个请求),则填充响应数据
326
318
  if my_map is not None:
327
319
  my_map['res_header'] = header
328
320
  my_map['res_body'] = body
329
321
  my_map['res_time'] = packet['ts']
330
322
  my_map['res_size'] = len(packet['data'])
331
-
332
- # 将完整的请求-响应对添加到 packet_list
333
323
  packet_list.append(copy.deepcopy(my_map))
334
- my_map = None # 重置 my_map
335
- # 如果最后一个 my_map 未完成(只有请求没有响应),也将其添加到 packet_list
324
+ my_map = None
336
325
  if my_map is not None:
337
326
  packet_list.append(copy.deepcopy(my_map))
338
327
  return packet_list
@@ -4,6 +4,6 @@ from xbase_util.pcap_util import reassemble_tcp_pcap, reassemble_session_pcap
4
4
 
5
5
  if __name__ == '__main__':
6
6
  packets_scapy = reassemble_tcp_pcap(rdpcap("test.pcap"))
7
- skey = '10.28.7.13:52631'
7
+ skey = '10.28.7.6:53867'
8
8
  all_packets = reassemble_session_pcap(packets_scapy, skey=skey,session_id='enn')
9
9
  print(all_packets)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xbase-util
3
- Version: 0.9.0
3
+ Version: 0.9.1
4
4
  Summary: 网络安全基础工具
5
5
  Home-page: https://gitee.com/jimonik/xbase_util.git
6
6
  Author: xyt
File without changes
File without changes