It sort of work for me but i made a pyscript (with gpt) to turn unicode into hexstrings and the remove duplicates to then represent each byte as itself. So whatever unicode you got that is 2 bytes long you can plop in the python script below and it will give you Unique Byte1 and Byte2:
Byt6op125¶¥Æ¾¼§º©154
You use the Unique-Byte1 by adding 'hashcat.exe -m 0 md5.hash -a 3 -1 "byte1" -2 "byte2" -3 ?1?2 (using your example PW in post) --hex-charset Byt6op125?3?3?3?3?3?3?3?3154 ' That way you replace every Unicode with ?3 and use ?a for non-unicode i suppose. note why --hex-charset is important: it turns all the bytes from byte1&byte2 into 'unicode' when hashcracking.
Byt6op125¶¥Æ¾¼§º©154
Code:
def unicode_to_hexstring(input_string):
byte1_string = [] # Initialize a list to store byte1 values
byte2_string = [] # Initialize a list to store byte2 values
# Iterate through each character in the input string
for char in input_string:
# Encode the character to bytes using UTF-8 encoding
char_bytes = char.encode('utf-8')
# Split the bytes into two parts (byte1 and byte2)
byte1 = char_bytes[0]
byte2 = char_bytes[1] if len(char_bytes) > 1 else b'\x00'
# Convert each byte to a hexadecimal string and append to the respective list
byte1_string.append(f'{byte1:02X}')
byte2_string.append(f'{byte2:02X}')
# Join the hexadecimal strings of byte1 and byte2 and return as a tuple
return ''.join(byte1_string), ''.join(byte2_string)
def remove_duplicates(hex_string):
# Convert the hexadecimal string to a list of bytes
bytes_list = [hex_string[i:i+2] for i in range(0, len(hex_string), 2)]
# Remove duplicate bytes while preserving the order
unique_bytes = []
for byte in bytes_list:
if byte not in unique_bytes:
unique_bytes.append(byte)
# Join the unique bytes into a single hexadecimal string
return ''.join(unique_bytes)
# Input Unicode string
unicode_string = "颡£¤¥¦§¨©ª«¬®¯°±²³´µ¶¹¸º»¼½¾¿ÀÁÂÃÄ×£"
# Get hexadecimal representations of byte1 and byte2
byte1_hex, byte2_hex = unicode_to_hexstring(unicode_string)
# Remove duplicates from both byte1 and byte2 hexadecimal strings
unique_byte1 = remove_duplicates(byte1_hex)
unique_byte2 = remove_duplicates(byte2_hex)
# Print the unique byte1 and byte2 values
print("Unique-Byte1:", unique_byte1)
print("Unique-Byte2:", unique_byte2)
You use the Unique-Byte1 by adding 'hashcat.exe -m 0 md5.hash -a 3 -1 "byte1" -2 "byte2" -3 ?1?2 (using your example PW in post) --hex-charset Byt6op125?3?3?3?3?3?3?3?3154 ' That way you replace every Unicode with ?3 and use ?a for non-unicode i suppose. note why --hex-charset is important: it turns all the bytes from byte1&byte2 into 'unicode' when hashcracking.