ArticleTagsPostHistory

Congrats guys! You managed to beat my team by a few places despite us figuring out some other things about the system that we weren't able to work with very well.

If you want to grab a copy of our simulator and renderer (written in C++ in Visual Studio using the .NET 2.0 framework), you can pull a copy from http://hkn.berkeley.edu/~alam/ICFP2007.zip

SPOILERS BELOW

I don't know if you noticed this, but one of the help pages is the "Gene table" and at the top it says "Page 1 of 14". Now, I'm sure you tried the actually changing the page number (we tried that too) and it doesn't actually go anywhere. However, the first entry is __AAA_GeneTable_PageNr. It has a listed offset from the "Green Zone". How to find the "Green Zone" is described in another of the help pages that you have access to from the catalog index.

So if you find that spot that holds __AAA_GeneTable_PageNr (we actually went in and edited endo.dna) and change the number there, then BOOM, you get new Gene Table pages! Including some other help pages that weren't listed in the original catalog.

Using those pages, we figured out how call Green Table functions as what their fonts looked like. Unfortunately, we didn't really get much farther than that, and by the end all we had was the ability to hack apples into pears on the new trees. =)

The main thing that stopped us was trying to figure out the encrypted pages. We found the cracker definition a bit confusing and the cracker we wrote ended up not working. Either because we had a bad implementation, or we didn't understand the specification correctly.

Anonymous, Tue Jul 24 08:27:29 2007


Congratulations

Thanks for sharing experiences! I loved reading this.

I suspected that once prefix 27 shows up below top 20, many would start doing brute force deleting :D But it was easy to come up with if you inspect what the DNS in prefix 28 actually does. That brought us in the top 20 for around a day (and in top 50 in the end ;)).

Anonymous, Tue Jul 24 09:35:35 2007


Thanks for the comments

Thans for the comments. I'll try implementing the programs of the contest myself :)

arhuaco, Tue Jul 24 15:05:08 2007


My post-mortem is here: http://blogs.msdn.com/cashto/archive/2007/07/23/the-icfp-10th-annual-programming-contest.aspx

I didn't brute-force the 27-prefix thing either. In trying to decipher the 1337 thing, I finally took a look at what the prefix was actually doing – searching for a five-byte pattern and then replacing one byte after it. I wondered if I could get essentially the same command by searching for the last four bytes instead, and sure enough, I could.

I got stuck at the 1337 clue for a few hours. The repair guide strings all had an instruction to skip n bytes (I forget the value of n), so I was trying to change the value of n. Actually what you were supposed to realize is that at byte n in the pattern, there's a 23-bit integer stored there – initially all 0, but you could change the value there and get a different help guide page. All you had to do was make sure not to change the size of the integer.

I think if I hadn't blown the second day trying to get my performance up, I could have gotten a bit farther and probably would have followed the same tack as you did – modifying the image post-render, rather than reverse-engineering the DNA and trying to "call into" various genes.

cashto, Tue Jul 24 17:06:47 2007


More pages

Hi cashto, I just added a section for the writeups of other teams. It would be good to link more teams from there. Regards.

arhuaco, Tue Jul 24 17:45:48 2007


Another writeup from a top 15 team: http://tapani.cs.chalmers.se/cgi-bin/ssi/icfp/writeup.html

Anonymous, Sat Jul 28 15:30:46 2007


Anonymous,that entry was added to the list. Thanks.

arhuaco, Sun Jul 29 03:09:21 2007

Subject:

Comment:

Identity

Author:

Spam control:

3 + 7

Last update: 2007-07-28 (Rev 12539)

svnwiki $Rev: 12966 $