Mr_hEx icon

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

Mr_hEx | PRO | 02/12/26 08:27:14 AM UTC | 0 ⭐ | 14383 👁️ | Never ⏰ | []
Python |

1.38 KB

|

None

|

0 👍

/

0 👎

def bruteforce_lost_bits(result, mask, validation_func):
    """
    Brute force البتات المفقودة فقط
    """
    # Identify lost bits
    lost_bits_mask = ~mask & 0xFFFFFFFF
    preserved_bits = result & mask
    
    candidates = []
    
    # Try all combinations of lost bits
    num_lost_bits = bin(lost_bits_mask).count('1')
    for i in range(2 ** num_lost_bits):
        # Reconstruct candidate key
        candidate = preserved_bits
        
        # Fill in lost bits with current iteration
        bit_pos = 0
        for shift in range(32):
            if (lost_bits_mask >> shift) & 1:
                if (i >> bit_pos) & 1:
                    candidate |= (1 << shift)
                bit_pos += 1
        
        # Validate candidate
        if validation_func(candidate):
            candidates.append(candidate)
    
    return candidates
 
# Example validation: check if decryption produces valid plaintext
def validate_key(key):
    """Test if key is correct"""
    test_ciphertext = 0x12345678
    plaintext = test_ciphertext ^ key
    # Check if plaintext looks valid
    return 0x20 <= (plaintext & 0xFF) <= 0x7E  # ASCII printable
 
# Execute attack
result = 0b00010110101011110000111101010101
mask = 0x1FFFFFF
 
valid_keys = bruteforce_lost_bits(result, mask, validate_key)
print(f"Found {len(valid_keys)} valid key candidates")

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎