Mr_hEx

Brute Force على البتات المفقودة

Feb 12th, 2026
6,108
0
Never
2
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.38 KB | None | 0 0
  1. def bruteforce_lost_bits(result, mask, validation_func):
  2.     """
  3.    Brute force البتات المفقودة فقط
  4.    """
  5.     # Identify lost bits
  6.     lost_bits_mask = ~mask & 0xFFFFFFFF
  7.     preserved_bits = result & mask
  8.    
  9.     candidates = []
  10.    
  11.     # Try all combinations of lost bits
  12.     num_lost_bits = bin(lost_bits_mask).count('1')
  13.     for i in range(2 ** num_lost_bits):
  14.         # Reconstruct candidate key
  15.         candidate = preserved_bits
  16.        
  17.         # Fill in lost bits with current iteration
  18.         bit_pos = 0
  19.         for shift in range(32):
  20.             if (lost_bits_mask >> shift) & 1:
  21.                 if (i >> bit_pos) & 1:
  22.                     candidate |= (1 << shift)
  23.                 bit_pos += 1
  24.        
  25.         # Validate candidate
  26.         if validation_func(candidate):
  27.             candidates.append(candidate)
  28.    
  29.     return candidates
  30.  
  31. # Example validation: check if decryption produces valid plaintext
  32. def validate_key(key):
  33.     """Test if key is correct"""
  34.     test_ciphertext = 0x12345678
  35.     plaintext = test_ciphertext ^ key
  36.     # Check if plaintext looks valid
  37.     return 0x20 <= (plaintext & 0xFF) <= 0x7E  # ASCII printable
  38.  
  39. # Execute attack
  40. result = 0b00010110101011110000111101010101
  41. mask = 0x1FFFFFF
  42.  
  43. valid_keys = bruteforce_lost_bits(result, mask, validate_key)
  44. print(f"Found {len(valid_keys)} valid key candidates")
Advertisement