Rating:

Given binary have a lot of "X"'s in it. In order to find correct binary, combine fragments data and replace with those X's.

Bruteforcing all options.

```import itertools

f = open("broken")
brokendata = f.read()
f.close()

head = 0x5ad
tail = 0x8d4

brokenhead = brokendata[0:head]
mid = brokendata[head:tail]
brokentail = brokendata[tail:]

fragments = []

for i in range(1,9):
s = "fragment_" + str(i) + ".dat"
print "Reading " + s
t = open(s,"r")
data = t.read()
fragments.append(data)
t.close()

print fragments

x = [1,2,3,4,5,6,7,8]

perms = list(itertools.permutations(x,8))

print "Perms created size : " + str(len(perms))

dat = ""

c = 0
for idx,i in enumerate(perms):
dat = brokenhead
for k in i:
dat += fragments[k-1]
dat += brokentail
j = open("bin_"+str(c),"w")
j.write(dat)
j.close()
c += 1
if(c%100):
print "bin_" + str(c) +" created"

"""
bash script to run all of them , correct binary is 39690 so it will take time
for i in {1..40260}
do
NAME="bin_$i"
./$NAME
done
"""
```

prints : ```welc00me```