Rating: 2.7

To solve this challenge we had to create two different files with the same md5.
I downloaded the evilize tool from this link:
https://www.mscs.dal.ca/~selinger/md5collision/.

1. I created a program with two different behaviors: main_good and main_evil
2. I compiled it with goodevil:
```
gcc myprogram.c goodevil.o -o my program
```
3. I created an initialization vector:
```
./evilize myprogram -i
```
4. I created an MD5 collision using the previous IV:
```
./md5coll IV > init.txt
```
5. Generate a pair of programs with the same md5 and with the behaviorexplained in "myprogram":
```
./evilize myprogram -c init.txt -g good -e evil
```

I verified that md5 was the same even if the programs are different:
```
> md5 bad good
> MD5 (bad) = c4acfc4586ce3f2a6c8ac31f9267ee04
> MD5 (good) = c4acfc4586ce3f2a6c8ac31f9267ee04
```
Inserting these two files on the url given by the challenge text, i obtained the flag: **AFFCTF{One_Way_Or_Another}**.