Initially, you have a ballance of 10$ and must make 10 transactions to user 1/2/3
Then you can see all transactions, a special transaction, enter encrypted transactions and if you get over 5k$ you get a flag.
When listing encrypted transactions, you see patterns, that some substrings are repeating.
When entering a transaction, and you enter an invalid text, you get: the format is sender/receiver/amount, 16 bytes each.
So we split all transactions in 3-parts, get the senders, receivers and amounts and create all possible transactions to ourself.
To run the solver, we have to copy out all the listed transactions as well as the special transaction into the data-string.
# Source Solver
```pythonfrom collections import Counter
# print all transactions + special transactiondata = """61f1af1f7ec0ca9a08bbfa4245b27363ff06e912546f85871e27719d158ebe491efc9f19a764bf518a35d35ffcda48e9ff06e912546f85871e27719d158ebe49f1e4e585af5702eb9a7863d3a927555f80d81f68672ba4ee9880e993a2d9f09961f1af1f7ec0ca9a08bbfa4245b27363ff06e912546f85871e27719d158ebe491efc9f19a764bf518a35d35ffcda48e961f1af1f7ec0ca9a08bbfa4245b27363ff06e912546f85871e27719d158ebe491efc9f19a764bf518a35d35ffcda48e961f1af1f7ec0ca9a08bbfa4245b27363ecb851bad7b21e00a6ca25298349dc981efc9f19a764bf518a35d35ffcda48e9f1e4e585af5702eb9a7863d3a927555fecb851bad7b21e00a6ca25298349dc98a25a7611d056fdddc941683aa27b1f4761f1af1f7ec0ca9a08bbfa4245b27363ff06e912546f85871e27719d158ebe491efc9f19a764bf518a35d35ffcda48e9f1e4e585af5702eb9a7863d3a927555fff06e912546f85871e27719d158ebe49bdb46b8645e80cb03a14c1f8a3b4a333ff06e912546f85871e27719d158ebe49ecb851bad7b21e00a6ca25298349dc983eb3967be7610edcc9e339bcb9112f2a61f1af1f7ec0ca9a08bbfa4245b27363ff06e912546f85871e27719d158ebe491efc9f19a764bf518a35d35ffcda48e961f1af1f7ec0ca9a08bbfa4245b27363f1e4e585af5702eb9a7863d3a927555f1efc9f19a764bf518a35d35ffcda48e9ff06e912546f85871e27719d158ebe49ecb851bad7b21e00a6ca25298349dc98a3f36791a6cdfdf53acde5cbdd51e929ecb851bad7b21e00a6ca25298349dc98f1e4e585af5702eb9a7863d3a927555f61c0cccb78c661a7b97e4724ef6774d3ff06e912546f85871e27719d158ebe49ecb851bad7b21e00a6ca25298349dc98b1ba2b9422a517f2882bdf2ba780ebc9ff06e912546f85871e27719d158ebe49f1e4e585af5702eb9a7863d3a927555f2309125193b399c36a0204b5b37a16a661f1af1f7ec0ca9a08bbfa4245b27363ff06e912546f85871e27719d158ebe491efc9f19a764bf518a35d35ffcda48e961f1af1f7ec0ca9a08bbfa4245b27363ecb851bad7b21e00a6ca25298349dc981efc9f19a764bf518a35d35ffcda48e9f1e4e585af5702eb9a7863d3a927555fecb851bad7b21e00a6ca25298349dc98a25a7611d056fdddc941683aa27b1f47ff06e912546f85871e27719d158ebe49ecb851bad7b21e00a6ca25298349dc98ea9aac6681fa4467b02f4528244e0e1b61f1af1f7ec0ca9a08bbfa4245b27363ff06e912546f85871e27719d158ebe491efc9f19a764bf518a35d35ffcda48e9ff06e912546f85871e27719d158ebe49ecb851bad7b21e00a6ca25298349dc98c4dbb0b91adc58c6268a8ca9deaae792"""
# create arrays of the senders, receivers and amountssender, receiver, amount = [], [], []data = data.split("\n")for line in data:	sender.append(line[0:32])	receiver.append(line[32:64])	amount.append(line[64:96])
print("sender", Counter(sender))print("receiver", Counter(receiver))print("amount", Counter(amount))
my_id = Counter(sender).most_common()[0][0]print("my id", my_id)
people = set(sender)|set(receiver)-set([my_id]) # i don't want to send to myself
# generate all possible people as senders + me as receiver + all possible mi=0for p in people:	for a in amount:		print(p+my_id+a)		if i % 3 == 2:			print(4)		i+=1```