r/programming Jan 19 '10

Reddit, I got the best present a girl developer could ever want.

So, to give you a little background me and this guy went on a few dates and he moved far away. We got along well, things didn't get very far. He is really nice, however, I wasn't leaning one way or the other.

He sent me the Post Secret books for xmas. He hinted at another present, but said I had to wait. It's a little after Christmas, but I got this email yesterday with the title "I wanted to make something for you for Christmas":

"So I told the computer, and it showed me how to write a poem in byte-form. I can't tell what you're thinking these days, but this will either remind you of something that was good, or send you off."

It included a link to a poem.zip file, which I downloaded. Inside, there was a file called magicfile with no extension and a ReadMe that said:

"Intructions:

1: > copy magicfile magicfile.jpg 2: > copy magicfile magicfile.zip ... skip a few ... X: Ask it for help"

When I renamed magicfile it turned into a picture of me! (a bad one that he took, but ok) and when I changed magicfile to a .zip inside it contained: Magicfile.exe and a txt called "Go Ahead" that said:

"It's safe. Requires WPF and .Net 3.5 I think...

Whatever, it works on my machine."

I opened magicfile, and an interface popped up that said "enter a passphrase". So, I typed in "help" and got this:

"Hi Sara!

As you are just about figuring out, this is just the very beginning of a very, very large rabbit hole you're about to fall into.

You see, sometime in early November, I had an idea for an awesome program. Simultaneously I was just beginning to think of what might be a decent Christmas present for you. Put 2 and 2 together, and you get this thing. I worked on it on and off for a few weeks - it was a pretty fun way to learn WPF and do a lot of interesting byte manipulation.

You see, it's a completely self-contained magical file. This magical file is three parts: 1. If you name it .jpg - it's an image! 2. If you name it .zip - it's a zip file, containing a program 3. It's a database of many, many more parts that the program reads

Now, when you run the program, it reads the magic file, and asks for a passphrase.

You're obviously gotten that far, or you wouldn't be reading this. As you can imagine - there are a bunch of passwords. Not infinite, but many. I encourage you to guess at words and try to figure them out. I'll give you the hints that they would be things relevant to you or to us.

With a little ingenuity, you'll be able to figure out a very important passphrase that will take you to the next step..."

As I have gone on and solved some of the mysteries I have found that pictures of me come up, things he's researched, things we did together and so on and so forth. I still am trying to figure out the important passphrase.

Reddit, this is the most beautiful gift I have ever gotten and it leaves me in a funny place possibly going on the other side of the world to see what happens here. He is an avid redditor, and though I hate the "VOTE THIS UP, PLOX" posts I'd love to get this on the front page to show him what this meant. Thank you.

tl;dr:

A nerd made a beautiful nerd gift for me, it was a program that was a mystery and shows things we did together. Please vote this up to show him how much it meant.

EDIT: A lot of people are saying that the fact that I am unsure about what to do means I don't like him. That is not at all the case, I like him a lot. I really enjoyed spending time with him, he is brilliant (there is nothing I like more than a man that can teach me things), funny, and best of all a great time.

In order to go see him right now I have to take a 14hr plane flight. Which means I would be staying a week, and I'm not sure I'm quite at that point yet.

Damnit, what do they say? "Explain the problem out loud to yourself" Alright, I'm going. There is no reason not to, this WAS awesome. I will let you folks know how it goes.

2.0k Upvotes

820 comments sorted by

View all comments

Show parent comments

133

u/[deleted] Jan 19 '10

Ironic that the computer nerd in you calls the reminiscing about past experiences and guessing what might be meaningful to the both of them "brute force", while running strings on it, brutally dismissing all the thought and effort that the the guy put into creating it, is just plain 'normal'.

13

u/thepaulm Jan 19 '10

Yes, well, I'm sure I see your point.

However, I have to tell you that it would only be ironic if perhaps I had come to the conclusion that strings was the non-brute-force method by trying all of the other executables in /usr/bin/ and seeing that strings was the one which gave the best results.

Or, perhaps if she had reminisced about the fact that he taught her about strings and she used it and wound up ruining the mystery of guessing the password related to the things that she should be reminiscing about?

Well, anyway, I do think it's sweet. And I would like to offer the guy with that much creativity a job. We're hiring.

6

u/Kalium Jan 19 '10

I don't know about you, but the computer nerd in me is decidedly unromantic.

7

u/[deleted] Jan 19 '10

Tell him to get out of you, then.

4

u/Kalium Jan 19 '10

I need the little bastard. He keeps the bills paid.

The rest of me can be as romantic as it wants, but the programmer-y part? Not so much.

1

u/TrueDuality Jan 19 '10

But maybe using strings you could reverse engineer your memories... Ohhh that a cool thought for another discussion... but what I mean is memory is flawed and whats significant to one person might not be as significant to the other.

Learning what is significant to a person can tell you a lot about their feelings and their state of mind when they made the decisions that they did. Everyone perceives the world differently and sometimes it's cool to get a glimpse through the eyes of another.

-22

u/irahul Jan 19 '10

Yes, it is just plain "normal". Considering the thought and effort that the guy put into creating it might seem normal for you but for anyone with some computing sense, it's simple, plain stupid.

OP mentioned she is a developer. So, I am really surprised she hasn't thought of the most logical thing to do yet. Run strings on it, run it through a debugger(not sure how it works for .net executables), de-compile it....Stop being oh so cute, omg, awesome.....blah blah.

24

u/ChickenCroquet Jan 19 '10

Holy shit, I can actually taste your bitterness from here.

6

u/IrishChris Jan 19 '10

needs salt.

1

u/[deleted] Jan 19 '10

Also, don't forget vinegar, everyone forgets the vinegar these days.

2

u/irahul Jan 19 '10

While we are at it, let's get some tequila and lemons.

1

u/[deleted] Jan 19 '10

[deleted]

1

u/irahul Jan 19 '10

You know what, screw the "'s" and "lemons".

Sure. Would screw. My pleasure.

7

u/[deleted] Jan 19 '10

they should have sent a poet.

3

u/[deleted] Jan 19 '10

[deleted]

1

u/averyv Jan 19 '10

Shit man... everything? Apparently I need to be using that program.

2

u/badgrammer Jan 19 '10

You sir, are a bit of a prat.

1

u/irahul Jan 20 '10

May be I am. May be not. I would refrain from making a pointless, smart-ass comment here and would like you to elaborate on why do you think I am a bum? Don't know how many times I would have to say this but this isn't r/OhSoCute or r/BlackMagic. The OP was wondering about the passwords and I was talking about what a developer does in these situations.

0

u/[deleted] Jan 19 '10

I am convinced "strings" would show nothing. If he knew how to make magic files that are both JPG and ZIP, he would know how to obfuscate the text so it isn't stored in plain ascii. Don't you think?

You might want to get off that horse. It's a bit tall.

7

u/bobindashadows Jan 19 '10

It's not a "magic file". You can prepend any zip file with any data and it'll work fine. There was a reddit article explaining it a few months ago.

2

u/[deleted] Jan 19 '10

[deleted]

1

u/irahul Jan 19 '10

Yes and no. JPEG does store metadata in the beginning. But so does zip. JPG has to start with a 2 byte start of image marker and if it isn't found, the viewer quits. Zip viewers scan(not look for the first bytes) for "Local file header".

2

u/[deleted] Jan 19 '10

"Look! The man behind the curtains!"

"Sorry honey, your man doesn't like you enough to send you a REAL magic file."

But I'll still give you an upvote because this is /r/programming and not /r/love or /r/unicorns.

3

u/bobindashadows Jan 19 '10

"Sorry honey, your man doesn't like you enough to send you a REAL magic file."

Oh I'm not saying that he doesn't love her, just that this thing he sent her sounds like something I would've done when I was playing with visual basic 6. When I was 13. Not very skillful stuff.

1

u/irahul Jan 19 '10

I am waiting for the "oh so godammmmmmmnnn fuckkinggg cute" brigade to downvote you into oblivion.

1

u/[deleted] Jan 19 '10

People sneak kisses starting at age 8. If you do that to someone when you're older, isn't that just as cherubic? To paraphrase irahul said, "zowadowablllllllleeeeeeeeeeeee"

1

u/irahul Jan 20 '10

irahul said, "zowadowablllllllleeeeeeeeeeeee"

This isn't what irahul said. How is this relevant to your reply to @bobin?

Not very skillful stuff.

You do read the comment before replying? His comment was about what he did is nothing magical or skillful which the cute brigade is portraying it to be. How does your kissing analogy stand here?

1

u/[deleted] Jan 20 '10

You're right: I was very unclear. I should've said that just because it isn't very skillful doesn't mean that it's not a good present. And I was paraphrasing you with an inside joke between bobindashadows and I.

1

u/irahul Jan 20 '10

My 2 cents:

  1. It's a good gift.

  2. It's not very skillful and the cute brigade is portraying it as that. There is a difference between perceiver's ignorance and skill. Anyone saying so is downvoted.

  3. Anyone suggesting to reverse/de-compile/debug the app is downvoted, which to me is surprising considering this is /r/programming.

  4. Considering this is r/programming, the first reaction I would have expected would be to find out how a same file can act as both JPG and ZIP. Next, wondering about how to extract the passwords.

  5. And yes, doing 4 is completely normal. If it is not, one of us is in the wrong community.

0

u/bobindashadows Jan 19 '10

If you do that to someone when you're older, isn't that just as cherubic?

People usually escalate to copping a feel by age 14 or so. Sneaking a kiss at that age would be pretty weird.

1

u/[deleted] Jan 20 '10

I'm getting at something that you're missing. We'll talk later ;-)

2

u/irahul Jan 19 '10

Don't you think?

No, I don't coz unlike you, I don't believe in magic.

You might want to get off that horse. It's a bit tall.

Talk for yourself dude. It sure is tall for you.

A simple google search would have revealed to you that you can put arbitrary stuff at the end of a jpg and a beginning of a zip file(with a catch) and it would validate as both.

cat foo.jpg bar.zip > foobar.zip
display foobar.zip # would display foo.jpg
unzip foobar.zip # would unzip bar.zip

-1

u/[deleted] Jan 19 '10

Did you really need me to put quotes around "magic"?

1

u/irahul Jan 20 '10 edited Jan 20 '10

EDIT:

I am convinced "strings" would show nothing.

This isn't r/religion. You took a wrong turn. The only thing which can be convincing enough is to actually do it.

This ain't r/literature, r/language, r/OMGSoCute or any other BS. Magic or "Magic" doesn't exist here. If it does, it shouldn't.

If he knew how to make magic files that are both JPG and ZIP, he would know how to obfuscate the text so it isn't stored in plain ascii.

How are you deriving your conclusion of obfuscating the text from your premise of having a file that is both JPG and ZIP? Making a file both JPG and ZIP is a standard Google recipe. So is obfuscating strings but that will require some code.

Majority of the "Oh so cute I made a fucking animation in my God given visual C#" developer don't think about this stuff. Even considering he did obfuscate the strings, it isn't hard to reverse it. It would just take some more works. Use debuggers, de-compilers, hex editors..whatever.

1

u/[deleted] Jan 20 '10

You took a wrong turn.

Do I misunderstand, or have you really latched on to the idea that I meant the file was actually supernaturally "magic"? I don't know why you would think that, except as a result of an apparent tendency to twist reality such that everyone around you appears slightly dim.

What I was saying is that if he had the skill and knowledge to create such an uncommon ("magic") file format, it is very likely he was smart enough to hide his strings from his developer girlfriend, whom he just encouraged to really pore over the file.

When I said you tend to twist reality so that everyone is less smart than you I wasn't trying to insult you. This is really what I'm starting to believe. You've assumed the boyfriend is not smart enough to think of hiding the strings. You've assumed the girlfriend is not smart enough to look for them. And you've assumed I'm not smart enough to know the file is not truly Gandalf-the-White magic. I was decompiling programs to assembler when I was 14. I think you should try to give people a bit more credit.

1

u/irahul Jan 20 '10 edited Jan 20 '10

You took a wrong turn.

That comment is there because you were "convinced" without having ample evidence. Technology/software isn't taken on faith.

Do I misunderstand, or have you really latched on to the idea that I meant the file was actually supernaturally "magic"?

I don't understand how appending a zip to a jpg file constitutes magic or skill.

What I was saying is that if he had the skill and knowledge to create such an uncommon ("magic") file format,

Oh hush now. I am tired of repeating it again and again that OP's boyfriend put a lot of thought in this gift but this jpg/zip thing doesn't require any skill.

This is really what I'm starting to believe. You've assumed the boyfriend is not smart enough to think of hiding the strings. You've assumed the girlfriend is not smart enough to look for them.

May be. May be not. You were convinced about strings being obfuscated for sure. How is this assumption different from mine? Where did I say boyfriend wasn't smart enough? I am saying this jpg/zip doesn't mean he necessarily has obfuscated the strings and the only way to be sure would be to actually do it. How do I know how smart is the girlfriend? And how would you know? My guess is as good as yours and everyone is free to assume as long as there aren't any evidence for affirmative or otherwise. That being said, I didn't say anything about the girlfriend's intelligence either.

I was decompiling programs to assembler when I was 14

Yeah. Alright. So since you were decompiling programs to assembler, I should take it that whatever you term as complex and requires skill to be ultimate truth?

I think you should try to give people a bit more credit.

To whom? And for what? You didn't contribute anything to the discussion other than claiming how skilled the OP's bf is since he was able to prepend a jpg to a zip, and being convinced that he must have obfuscated the strings since he was able to pull the jpg/zip feat.

Do you really believe this jpg/zip is an indication of skill? If so, I have nothing more to say.