
á áąáŹáááŻááťá¸ááŹá
ááŹááŹááᯠransomware áááŻááşá¸áááşá áşááźááˇáş áááŻááşáááŻááşáá˛áˇááŹá ááśááąáŹááşá¸á á˝áŹ áááąáŹáşáááážáŻáá áşááŻááźáąáŹááˇáş .ibd áááŻááşááťáŹá¸ (innodb tables ááťáŹá¸á ááąááŹáĄááźááşá¸áááŻááşááťáŹá¸) ááᯠáá áşá áááşáá áşáááŻááşá¸ ááťááşááŹá¸áá˛áˇáá˛áˇááąáŹáşáááşá¸ áá áşááťáááşáááşá¸áážáŹáááş .fpm áááŻááşááťáŹá¸ááᯠááŻáśá¸ááŻáśá¸ááťáŹá¸ááťáŹá¸ ááŻááşáážááşááŹá¸áááş ( áá˝á˛áˇá ááşá¸ááŻáśáááŻááşááťáŹá¸)á á¤ááá ášá áá˝ááşá .idb ááᯠáá˝á˛ááźáŹá¸áááŻááşáááş-
- á áśááťáááşááŽááááááŹááťáŹá¸áážááˇáş áááşá¸áá˝ážááşááťááşááťáŹá¸áážáá áşáááˇáş ááźááşáááşáá°ááąáŹááşááąá¸ááá ášá á áááŻáááŻáˇááąáŹááá ášá ááťáŹá¸áĄáá˝ááş, ááĄááąáŹááşá¸ááŻáśá¸áážáááŤáááşá ;
- áá áşá áááşáá áşáááŻááşá¸ ááŻááşáážááşááŹá¸ááąáŹ áááŹá¸ááťáŹá¸á áĄááťáŹá¸á áŻáážáŹ á¤áĄááŹááťáŹá¸áááş ááźáŽá¸ááŹá¸ááąáŹáááŹá¸ááťáŹá¸ááźá áşááźáŽá¸á (ááťá˝ááşááąáŹáşááŹá¸áááşáááąáŹááş) áááŻááşáááŻááşáá°ááťáŹá¸áááş ááŻááşáážááşááźááşá¸áĄáá˝ááş ááŻáśááąáŹááşááąáŹ RAM ááážáááŤáá
- ááźááşáááááŻááşááąáŹ áĄááźááˇáşáĄá ááŻááşáážááşááŹá¸ááąáŹ áááŹá¸ááťáŹá¸á
áĄáááŻáážáááąáŹááŻááşááśááŤááşáĄáąáŹááşáá˝ááş áááşáááˇáşá áŹááŹá¸áááşá¸ááźááşáážáŻáá˝ááşáááᯠáááşá¸áááŻáá˝ááˇáşááźááşá¸ááźááˇáş áááŹá¸ááťáŹá¸áážááˇáşáááşáááŻááşáááˇáşáá˝áąá¸ááťááşáá˝ááˇáşááᯠááŻáśá¸ááźááşáááşááźá áşáááŻááşáááş (ááťá˝ááşáŻááşááĄááźáąáĄááąáá˝ááş UTF8 ááźá áşáááş) áážááˇáş á áŹááŹá¸áĄáá˝ááşááťáŹá¸áážáááąááźááşá¸áĄáá˝ááş áááŻááşáááŻáááŻá¸áážááşá¸á á˝áŹááźááˇáşáážáŻááźááşá¸á áĽáááŹáĄáŹá¸ááźááˇáş-

áááŻáˇáĄááźááşá áááŻááşááĄá
áá˝ááş 0 bytes áĄááťáŹá¸áĄááźáŹá¸ááᯠáááşááźááˇáşáážáŻáááŻááşááźáŽá¸ ááááşáááŻáˇá
áŹáážááşá
áá
áş (áĄááŻáśá¸áĄááťáŹá¸ááŻáśá¸) áááŻáĄááŻáśá¸ááźáŻáááˇáş áááŻááşá¸áááşá
áşááťáŹá¸áááş áááşá¸áááŻáˇáááŻáááşá¸ áááşááąáŹááşáážáŻáážááááşáááşá
![]()
ááťá˝ááşáŻááşáááá ášá áá˝ááşá áááŻááşáááŻááşáá°ááťáŹá¸áááş ááŻááşááąáŹááşá ááŹááᯠáááŻá¸áážááşá¸á áąáááˇáş ááŻááşáážááşááŹá¸ááąáŹáááŻááşáá áşááŻá áŽááĄááŻáśá¸áá˝ááş 4-byte á áŹááźáąáŹááşá¸ (1, 0, 0, 0) ááᯠááťááşááŹá¸áá˛áˇáááşá ááąáŹááŤáááŻá¸ááážáááąáŹáááŻááşááťáŹá¸áááŻáážáŹáá˝áąáááşá script áááşááŻáśááąáŹááşáááş-
def opened(path):
files = os.listdir(path)
for f in files:
if os.path.isfile(path + f):
yield path + f
for full_path in opened("C:somepath"):
file = open(full_path, "rb")
last_string = ""
for line in file:
last_string = line
file.close()
if (last_string[len(last_string) -4:len(last_string)]) != (1, 0, 0, 0):
print(full_path)áááŻáˇááźáąáŹááˇáşá ááááĄááťááŻá¸áĄá áŹá¸áááŻááşáááŻááşááťáŹá¸ááᯠáážáŹáá˝áąáá˝áąáˇáážááá˛áˇáááşá ááŻááááá˝ááş áááŻááşáááŻááşááŻááşááąáŹááşáážáŻááťáŹá¸á á˝áŹááŤáááşááąáŹáşáááşá¸ áá˝áąáˇáážááá˛áˇáááˇáşáĄááŹáááş ááŻáśááąáŹááşááąááźáŽááźá áşáááşá áĄáŹá¸ááŻáśá¸áĄáááşááźáąááááˇáşáááşá ááŤááąáááˇáşáááşáááááşáááŻáĄááşáááşá ááŻáśá¸áááááťááąáŹáá˝á˛áˇá ááşá¸ááŻáś ááźáŽá¸ááąáŹáˇ (ááŻááşááŤáááş) ááťá˝ááşááąáŹáş áááźáŹáá ááźáąáŹááşá¸áá˛ááąáá˛áˇ á áŹá¸áá˝á˛áá áşááŻáá˛áˇ áĄááŻááşááŻááşáááŻáˇ ááá ášá áá áşáᯠááąáŤáşááŹáááşá áĄáá˝ááşáĄááťááŻá¸áĄá áŹá¸ááᯠááźáąáŹááşá¸ááŹá¸áááŹá¸ áááŻáˇáááŻááş ááąáŹáşááśáĄáá áşáá áşáᯠáááˇáşááŹá¸áááŹá¸áááŻáᏠáááşáá°ááž ááážááşááááŤáá°á¸á
ááśáááąáŹááşá¸á á˝áŹáᲠWilds City áááş áááŻáááŻáˇááąáŹááá ášá áááşááᯠááá°ááŽáááŻááşáá˛áˇááąáŹááźáąáŹááˇáş á¤ááąáŹááşá¸ááŤá¸ááᯠááąá¸ááŹá¸áááźááşá¸ááźá áşááŤáááşá
áĄáážááşáááŤá
áá˝ááşáá˛áˇáááˇáş 3 áááž áááşáážáááŻáśá áśáážááˇáş ááááŻááşáááŻááşááąáŹ áááŹá¸áá áşáᯠ(áĄáá˝ááşáá áşáᯠááźá áşáááŻááşááźáŽá¸ ááąáŹááşáááş ááźá áşáááŻááşáááş)á áááŹá¸áá˝á˛áˇá ááşá¸ááŻáś-
CREATE TABLE `table_1` (
`id` INT (11),
`date` DATETIME ,
`description` TEXT ,
`id_point` INT (11),
`id_user` INT (11),
`date_start` DATETIME ,
`date_finish` DATETIME ,
`photo` INT (1),
`id_client` INT (11),
`status` INT (1),
`lead__time` TIME ,
`sendstatus` TINYINT (4)
); á¤ááá ášá áá˝ááşá áááşáááş ááŻááşáá°áááş áááŻáĄááşáááş-
id_pointint(11);id_userint(11);date_startDATETIME;date_finishDATETIMEá
ááźááşáááşááá°áááşáĄáá˝ááşá .ibd áááŻááşá byte-by-byte áá˝á˛ááźááşá¸á áááşááźáŹáážáŻááᯠáĄááŻáśá¸ááźáŻááźáŽá¸ áááşá¸áááŻáˇááᯠáááŻáááŻáááşáážáŻáááŻááşááąáŹ ááŻáśá áśáĄááźá áşáááŻáˇ ááźáąáŹááşá¸áá˛ááźááşá¸ááźááˇáş ááŻááşááąáŹááşáááşá ááťá˝ááşáŻááşáááŻáˇ áááŻáĄááşáááşááťáŹá¸ááᯠáážáŹáá˝áąáááşá ááťá˝ááşáŻááşáááŻáˇáááş int áážááˇáş datatime áá˛áˇáááŻáˇááąáŹ ááąááŹáĄááťááŻá¸áĄá áŹá¸ááťáŹá¸áááŻáᏠáá˝á˛ááźááşá¸á áááşááźáŹáááş áááŻáĄááşááźáŽá¸ ááąáŹááşá¸ááŤá¸áá˝ááş áááşá¸áááŻáˇáááŻáᏠááąáŹáşááźáááşááźá áşááźáŽá¸á áá áşááŤáá áşááśáá˝ááş áĄááźáŹá¸ááąáŹ áĄááŹá¸áá°ááźá áşáááşááťáŹá¸áá˝ááş áá°ááŽááąá¸áááŻááşáááˇáş áĄááźáŹá¸ááąáŹ ááąááŹáĄááťááŻá¸áĄá áŹá¸ááťáŹá¸áááŻáááşá¸ áááŻá¸ááŹá¸ááŤáááşá
ááźáżáᏠá: DATETIME áážááˇáş TEXT áĄááťááŻá¸áĄá áŹá¸ááťáŹá¸ááŤáážáááąáŹ áĄáá˝ááşááťáŹá¸áá˝ááş NULL áááşáááŻá¸ááťáŹá¸ááŤáážáááźáŽá¸ áááşá¸áááŻáˇááᯠáááŻááşáá˛áá˝ááş áááŻá¸áááŻá¸ááąá¸ááťáąáŹáşáá˝áŹá¸ááŤáááşá áááŻáˇááźáąáŹááˇáşá ááťá˝ááşáŻááşáááá ášá áá˝ááş ááźááşáááşááá°áááş áá˝á˛áˇá ááşá¸ááŻáśááᯠááŻáśá¸ááźááşáááş áááźá áşáááŻááşááŤá ááąáŹáşááśáĄáá áşááťáŹá¸áá˝ááşá ááŻáśááąáááşáááŻá¸áááş null ááźá áşááźáŽá¸ innodb_flush_log_at_trx_commit = 0 áááşáááşááźáąáŹááˇáş áá˝áąááąá¸áá˝áąáá°ááá áşá áááşáá áşáááŻááşá¸ ááŻáśá¸áážáŻáśá¸áá˝áŹá¸áááŻááşáááşá áááŻáˇááźáąáŹááˇáş áá˝á˛áˇá ááşá¸ááŻáśáááŻááŻáśá¸ááźááşáááş ááąáŹááşáááşáĄááťáááşááᯠááŻáśá¸á á˝á˛ááááşááźá áşááŤáááşá
ááźáżáᏠá: DELETE áážáá áşáááˇáş ááťááşáááŻááşááąáŹ áĄáááşá¸ááťáŹá¸áĄáŹá¸ááŻáśá¸áááş ibd áááŻááşáá˝ááş áážáááąáááşááᯠáááˇáşáá˝ááşá¸á ááşá¸á áŹá¸áááˇáşááąáŹáşáááşá¸ ALTER TABLE ááźááˇáş áááşá¸áááŻáˇá áá˝á˛áˇá ááşá¸ááŻáśááᯠáĄááşááááşááŻááşáááşáááŻááşááŤá ááááşáĄááąááźááˇáşá ááąááŹáá˝á˛áˇá ááşá¸ááŻáśáááş áááŻááşááĄá ááž áááşá¸ááĄááŻáśá¸áĄáá áá˝á˛ááźáŹá¸áááŻááşáááşá OPTIMIZE TABLE ááᯠáááşáááźáŹáááĄááŻáśá¸ááźáŻááŤáá áááŻáááŻáˇááąáŹááźáżááŹááťááŻá¸ áááşááźáŻáśáá˝áąáˇááá˝ááşááážáááŤá
ááťáąá¸áá°á¸ááźáŻ. áááááźáŻááŤDBMS ááŹá¸áážááşá¸áááş ááąááŹááááşá¸áááşá¸ááŻáśáĄááąáŤáş áááşááąáŹááşáážáŻáážáááźáŽá¸á á¤áĽáááŹáááş áĄááźáŹá¸ááąáŹ áĄáááááŹá¸áážááşá¸ááťáŹá¸áĄáá˝ááş áĄááŻááşáááźá áşáááŻááşááŤá ááŤáˇááá ášá áá˝ááşá mariadb 10.1.24 á windows ááŹá¸áážááşá¸ááᯠáĄááŻáśá¸ááźáŻáá˛áˇáááşá áááŻáˇáĄááźááş mariadb áá˝ááşáááş InnoDB áááŹá¸ááťáŹá¸áážááˇáşáĄááŻááşááŻááşááąáŹáşáááşá¸á ááááşááąáŹáˇáááşá¸áááŻáˇáááşááźá áşáááşá InnoDB mysql ááźááˇáş áááşá¸áááşá¸á áĄááŻáśá¸ááťáááŻááşáážáŻááᯠáááŤáááşááŤá
áááŻááşáá˝á˛ááźááşá¸á áááşááźáŹ
python áá˝ááş data áĄááťááŻá¸áĄá áŹá¸ ááŻáśáážááşááááşá¸ááťáŹá¸áĄá áŹá¸ áá°ááŽááŻááşááąááŹááᯠááźááááşá á¤ááąáŹááşáá˝ááş áááŻááşááᯠáááşááźááˇáşáážáŻáááŻááşááąáŹáşáááşá¸á áĄáááşááźáąá áąáááşáĄáá˝ááş byte array ááᯠááŻáśáážááş array (list(example_byte_array)) áááŻáˇ ááźáąáŹááşá¸ááźááşá¸ááźááˇáş byte ááᯠááááşá¸ááŻáśá áśáááŻáˇ ááźáąáŹááşá¸áá˛áááŻááşáááşá áááşáááŻáˇáááşáááŻá áąááŹáá° áážá áşááťááŻá¸ááŻáśá¸áááş áá˝á˛ááźááşá¸á áááşááźáŹáááş áááˇáşááťáąáŹáşááŤáááşá
ibd áááŻááşááťáŹá¸á á˝áŹááᯠááźááˇáşáážáŻááźáŽá¸ááąáŹááşá áĄáąáŹááşááŤáááŻáˇááᯠáááşáá˝áąáˇáááŻááşáááşá
![]()
áááŻáˇáĄááźááşá áááşáááş á¤ááąáŹáˇááťááşá áŹááŻáśá¸ááťáŹá¸ááźááˇáş áááŻááşááᯠáááŻááşá¸ááźáŹá¸ááŤáá áĄááťáŹá¸á áŻáážáŹ ááąááŹáááąáŹááşááťáŹá¸áááş ááážááááşááźá áşáááşá ááťá˝ááşáŻááşáááŻáˇáááş infimum ááᯠáááŻááşá¸ááźáŹá¸áážáŻáĄááźá áş áĄááŻáśá¸ááźáŻááŤáááşá
table = table.split("infimum".encode())á áááşáááşá áŹá¸á ááŹááąáŹááşá¸ááąáŹ ááąáˇááŹáá˝áąáˇáážáááťááş- ááąááŹáááŹá áĄáááşá¸áááşáážáááąáŹ áááŹá¸ááťáŹá¸áĄáá˝ááşá áĄááááˇáşááŻáśá¸áážááˇáş áĄááźááˇáşááŻáśá¸áĄááźáŹá¸ áááąáŹááşáĄáá˝ááşá¸áážá áĄáááşá¸áĄááąáĄáá˝ááşáĄáá˝ááş áá˝ážááşááźááťááşáá áşááŻáážááááşá
- 1st áĄáááşá¸áážááˇáşáĄáá°á
ááşá¸áááşáááŹá¸
- 2 áááşá¸áážááˇáşáĄáá°á
ááşá¸áááşáááŹá¸
áĄáááşá¸áááşá¸ááťááşá¸ááźááşá¸áááŹá¸[0] ááᯠááťáąáŹáşáá˝áŹá¸áááŻááşáááşá áááşá¸áááŻááźááˇáşááźáŽá¸ááąáŹááşá áááŹá¸ááźááşá¸ááąááŹááᯠáážáŹááá˝áąáˇááąá¸ááŤá ááźá
áşáááŻááşáááşáážáŹá á¤áááąáŹááşááᯠáĄáá˝ážááşá¸ááťáŹá¸áážááˇáş ááąáŹáˇááťáŹá¸ááááşá¸áááşá¸áááş áĄááŻáśá¸ááźáŻáááşá
áááŹá¸[1] ááźááˇáş á
áááşáᏠááááşá¸áĄáááşá¸áĄááťááşá¸áá
áşááŻáááŻáˇ ááŹááŹááźááşáááŻááźááşá¸ááźááˇáşá áĄááťááŻáˇááąáŹ ááŻáśá
áśááťáŹá¸ááᯠáááşáááááźáŻááááąááźáŽááźá
áşáááşá

áááşá¸áááŻáˇáááş á áŹááźáąáŹááşá¸áá áşááŻáá˝ááş ááááşá¸áááşá¸ááŹá¸ááąáŹ int áááşáááŻá¸ááťáŹá¸ááźá áşáááşá ááá byte áááş ááśááŤááşáááş áĄááąáŤááşá¸ áááŻáˇáááŻááş áĄááŻááşááᯠáá˝ážááşááźáááşá ááŤáˇááá ášá áá˝ááşá ááááşá¸áĄáŹá¸ááŻáśá¸áááş áĄááąáŹááşá¸ááźááşáááşá ááťááş 3 bytes áážá áááşáááş áĄáąáŹááşááŤááŻááşááąáŹááşááťááşááᯠáĄááŻáśá¸ááźáŻá ááśááŤááşááᯠááŻáśá¸ááźááşáááŻááşáááşá ááŹááşáá˝ážááşá¸-
def find_int(val: str): # example '128, 1, 2, 3'
val = [int(v) for v in val.split(", ")]
result_int = val[1]*256**2 + val[2]*256*1 + val[3]
return result_intáĽáááŹáĄáŹá¸ááźááˇáş, 128, 0, 0, 1 = 1áááŻáˇáááŻááş 128, 0, 75, 108 = 19308.
áááŹá¸áá˝ááş áĄáááŻáĄááťáąáŹááş áááŻá¸ááźááşá¸ááźááˇáş áĄáááááąáŹáˇáá
áşáᯠááŤáážáááźáŽá¸ áááşá¸áááŻáááşá¸ á¤ááąááŹáá˝ááş áá˝áąáˇáááŻááşááŤáááşá

á ááşá¸áááşáááŹá¸ááťáŹá¸ááž áĄááťááşáĄáááşááťáŹá¸ááᯠáážááŻááşá¸áážááşááźáŽá¸ DATETIME áĄááŹááášááŻáá˝ááş 5 bytes ááŤáááşááźáŽá¸ 153 (áážá áşá ááşááźáŹá¸ááŹáááťáŹá¸ááᯠáá˝ážááşááźáááŻááşááźáąááťáŹá¸ááąáŹ) ááźááˇáş á áááşáá˛áˇááźáąáŹááşá¸ áááşáážáŹá¸ááŤáááşá DATTIME áĄáááŻááşá¸áĄááźáŹá¸áááş '1000-01-01' ááž '9999-12-31' ááźá áşááąáŹááźáąáŹááˇáşá áááŻááşáĄááąáĄáá˝ááş áá˝á˛ááźáŹá¸áááŻááşáááşáᯠááťá˝ááşáŻááşáááşááąáŹáşáááşá¸á ááťá˝ááşáŻááşáááá ášá áá˝ááşá ááąááŹáááş 2016 ááž 2019 ááŹááĄáá˝ááşá¸ ááťáá˝áŹá¸ááąáŹááźáąáŹááˇáş ááťá˝ááşáŻááşáááŻáˇ áá°áááŤáááşá 5 bytes áá˛áˇ ááŻáśááąáŹááşááŤáááşá
á áášáááˇáşáááŤáᲠáĄááťáááşáááŻááŻáśá¸ááźááşáááş áĄáąáŹááşááŤááŻááşááąáŹááşááťááşááťáŹá¸ááᯠááąá¸ááŹá¸áá˛áˇáááşá ááŹááşáá˝ážááşá¸-
day_ = lambda x: x % 64 // 2 # {x,x,X,x,x }
def hour_(x1, x2): # {x,x,X1,X2,x}
if x1 % 2 == 0:
return x2 // 16
elif x1 % 2 == 1:
return x2 // 16 + 16
else:
raise ValueError
min_ = lambda x1, x2: (x1 % 16) * 4 + (x2 // 64) # {x,x,x,X1,X2}áá áşáážá áşáá˛áˇááĄáá˝ááş áĄááŻáśá¸áááşáá˛áˇ ááŻááşááąáŹááşááťááşáá áşááŻááᯠáááąá¸áááŻááşáá˛áˇáá˛áˇáĄáá˝ááş ááťá˝ááşááąáŹáş áááşááşááŻááşáá˛áˇáááŤáááşá ááŹááşáá˝ážááşá¸-
ym_list = {'2016, 1': '153, 152, 64', '2016, 2': '153, 152, 128',
'2016, 3': '153, 152, 192', '2016, 4': '153, 153, 0',
'2016, 5': '153, 153, 64', '2016, 6': '153, 153, 128',
'2016, 7': '153, 153, 192', '2016, 8': '153, 154, 0',
'2016, 9': '153, 154, 64', '2016, 10': '153, 154, 128',
'2016, 11': '153, 154, 192', '2016, 12': '153, 155, 0',
'2017, 1': '153, 155, 128', '2017, 2': '153, 155, 192',
'2017, 3': '153, 156, 0', '2017, 4': '153, 156, 64',
'2017, 5': '153, 156, 128', '2017, 6': '153, 156, 192',
'2017, 7': '153, 157, 0', '2017, 8': '153, 157, 64',
'2017, 9': '153, 157, 128', '2017, 10': '153, 157, 192',
'2017, 11': '153, 158, 0', '2017, 12': '153, 158, 64',
'2018, 1': '153, 158, 192', '2018, 2': '153, 159, 0',
'2018, 3': '153, 159, 64', '2018, 4': '153, 159, 128',
'2018, 5': '153, 159, 192', '2018, 6': '153, 160, 0',
'2018, 7': '153, 160, 64', '2018, 8': '153, 160, 128',
'2018, 9': '153, 160, 192', '2018, 10': '153, 161, 0',
'2018, 11': '153, 161, 64', '2018, 12': '153, 161, 128',
'2019, 1': '153, 162, 0', '2019, 2': '153, 162, 64',
'2019, 3': '153, 162, 128', '2019, 4': '153, 162, 192',
'2019, 5': '153, 163, 0', '2019, 6': '153, 163, 64',
'2019, 7': '153, 163, 128', '2019, 8': '153, 163, 192',
'2019, 9': '153, 164, 0', '2019, 10': '153, 164, 64',
'2019, 11': '153, 164, 128', '2019, 12': '153, 164, 192',
'2020, 1': '153, 165, 64', '2020, 2': '153, 165, 128',
'2020, 3': '153, 165, 192','2020, 4': '153, 166, 0',
'2020, 5': '153, 166, 64', '2020, 6': '153, 1, 128',
'2020, 7': '153, 166, 192', '2020, 8': '153, 167, 0',
'2020, 9': '153, 167, 64','2020, 10': '153, 167, 128',
'2020, 11': '153, 167, 192', '2020, 12': '153, 168, 0'}
def year_month(x1, x2): # {x,X,X,x,x }
for key, value in ym_list.items():
key = [int(k) for k in key.replace("'", "").split(", ")]
value = [int(v) for v in value.split(", ")]
if x1 == value[1] and x2 // 64 == value[2] // 64:
return key
return 0, 0áĄááťáááşáĄááťáŹá¸ááźáŽá¸ááŻááşáááş ááŽááŹá¸áááşáážáŻáá˝á˛ááŹááᯠááźááşáááŻááşáááşáááŻáᏠááąááťáŹááŤáááşá
áááŻáˇááąáŹááşá string áá
áşááŻááž datetime object áá
áşááŻááᯠááźááşááąá¸áááˇáş ááŻááşááąáŹááşááťááşáá
áşááŻá ááŹááşáá˝ážááşá¸-
def find_data_time(val:str):
val = [int(v) for v in val.split(", ")]
day = day_(val[2])
hour = hour_(val[2], val[3])
minutes = min_(val[3], val[4])
year, month = year_month(val[1], val[2])
return datetime(year, month, day, hour, minutes)intá intá datetimeá datetime áááŻáˇááž áááźáŹáá áááşááŤááá˛áᲠáááşáááŻá¸ááťáŹá¸ááᯠáážáŹáá˝áąáááŻááşáá˛áˇáááşá
á ááŤá áááşá¸áááŻáĄááşááŻáśáá˛á áááŻáˇáĄááźááşá áááŻáááŻáˇááąáŹ sequence áááş áá
áşááźáąáŹááşá¸ááťážááş áážá
áşááźáááş áááşáááŻááşááŤá
ááŻáśáážááşáĄááŻáśá¸áĄáážáŻááşá¸áááŻáĄááŻáśá¸ááźáŻá áááŻáĄááşááąáŹááąááŹááᯠááťá˝ááşáŻááşáááŻáˇáážáŹáá˝áąáááş-
fined = re.findall(r'128, d*, d*, d*, 128, d*, d*, d*, 153, 1[6,5,4,3]d, d*, d*, d*, 153, 1[6,5,4,3]d, d*, d*, d*', int_array)á¤áĄááŻáśá¸áĄáážáŻááşá¸áááŻáĄááŻáśá¸ááźáŻá áážáŹáá˝áąáááˇáşáĄá፠áááŻáĄááşááąáŹáĄáá˝ááşááťáŹá¸áá˝ááş NULL áááşáááŻá¸ááťáŹá¸ááᯠááŻáśá¸ááźááşáááş áááźá áşáááŻááşááźáąáŹááşá¸ ááťáąá¸áá°á¸ááźáŻá áážááşááŹá¸ááŹá¸ááŤá áááŻáˇááąáŹáş ááťá˝ááşáŻááşáĄáá˝ááşáá° áááşá¸áááş áá ááŻá¸ááááşáááŤá áááŻáˇááąáŹááş ááťá˝ááşáŻááşáááŻáˇáááş áá˝ááşá¸áááşáá áşááŻáá˝ááş áá˝áąáˇáážáááąáŹáĄááŹááᯠááźááşáááşá¸ááŤá ááŹááşáá˝ážááşá¸-
result = []
for val in fined:
pre_result = []
bd_int = re.findall(r"128, d*, d*, d*", val)
bd_date= re.findall(r"(153, 1[6,5,4,3]d, d*, d*, d*)", val)
for it in bd_int:
pre_result.append(find_int(bd_int[it]))
for bd in bd_date:
pre_result.append(find_data_time(bd))
result.append(pre_result)ááááşááąáŹáˇá ááŤááŤáá˛á ááááş array áážááąááŹáááşááťá˝ááşáŻááşáááŻáˇáááŻáĄááşááąáŹááąááŹááźá
áşáááşá ###PS.###
á¤áááşá¸áááşá¸áááş áá°áááŻááşá¸áĄáá˝ááş ááááˇáşááťáąáŹáşááźáąáŹááşá¸ ááťá˝ááşáŻááşááŹá¸áááşááŤáááşá áááŻáˇááąáŹáş ááąáŹááşá¸ááŤá¸á áĄááááááşá¸áááŻááşáážáŹ áááˇáşááźáżááŹáĄáŹá¸ááŻáśá¸ááᯠááźáąáážááşá¸áááˇáşáĄá
áŹá¸ ááťááşááťááşá¸ááŻááşááąáŹááşáááşááźá
áşáááşá áĄáážááşáááşááŻáśá¸ááźáąáážááşá¸ááťááşáááąáŹáˇ source code ááᯠáááŻááşáááŻááşá
ááąáˇááŹáááŻáˇáá˛ááźá
áşáááşáááşááŤáááşá áááŻáˇááąáŹáş áĄááťáááşáĄáááˇáşáĄáááşááźáąáŹááˇáşá áááşáážááááşá¸áááşá¸áááş áĄááźááşááŻáśá¸ááźá
áşááŻáśááááşá
áĄááťááŻáˇááá ášá ááťáŹá¸áá˝ááşá áááŻááşááᯠáááŻááşá¸ááźáŹá¸á áááşááźáŹááźáŽá¸ááąáŹááşá áááşáááş áĄááŽá¸á ááşááŻáśá¸ áá˝á˛áˇá ááşá¸ááŻáśááᯠááŻáśá¸ááźááşáááŻááşááźáŽá¸ áĄáááşááąáŹáşááźá፠áááˇáşááşááťáŹá¸ááž á áśáááşá¸áááşá¸ááťáŹá¸áá˛ááž áá áşááŻááᯠáĄááŻáśá¸ááźáŻá áááşá¸ááᯠááźááşáááşááá°áááŻááşáááşááźá áşáááşá ááŤá áááŻáážááşááźáŽá¸ ááźáżááŹáááşá¸áááşá¸áᲠááźá áşááŤááááˇáşáááşá
source: www.habr.com
