def fix_get_synthetic_data():
    """
    As real malware is hard to share, generate random data of the correct size
    """
    # generate dummy data
    padding_char = 256
    maxlen = 2**20

    # batch of 5 datapoints
    synthetic_data = np.ones((5, maxlen), dtype=np.uint16) * padding_char

    size_of_original_files = [
        int(maxlen * 0.1),  # 1 sample significantly smaller than the maxlen
        int(maxlen * 1.5),  # 1 sample larger then maxlen
        int(maxlen * 0.95),  # 1 sample close to the maximum of the maxlen
        int(maxlen),  # 1 sample at the maxlen
        int(maxlen),
    ]  # 1 sample at the maxlen, this will be assigned a benign label and
    # should not be perturbed by the attack.

    # two class option, later change to binary when ART is generally updated.
    y = np.zeros((5, 1))
    y[0:4] = 1  # assign the first 4 datapoints to be labeled as malware

    # fill in with random numbers
    for i, size in enumerate(size_of_original_files):
        if size > maxlen:
            size = maxlen
        synthetic_data[i, 0:size] = np.random.randint(low=0, high=256, size=(1, size))

    # set the DOS header values:
    synthetic_data[:, 0:2] = [77, 90]
    synthetic_data[:, int(0x3C) : int(0x40)] = 0  # zero the pointer location
    synthetic_data[:, int(0x3C)] = 44  # put in a dummy pointer
    synthetic_data[:, int(0x3C) + 1] = 1  # put in a dummy pointer
    return synthetic_data, y, np.asarray(size_of_original_files)

    As real malware is hard to share, generate random data of the correct size
    
tests/attacks/evasion/test_pe_malware_attack.py