The Cipher Challenge

I was reading a post on Hacker News from a company that is hiring. They were pretty smart about it. They did not give out their name or URL. Instead they made you work for it. The ciper text "xfbhlqtlj" was provided. You were told to decipher it using Vigenère decryption.

Oh yeah. You were also told to use the number 61803398874 from their URL. What? Anyone know what the heck Vigenère decryption is? Sure. Wikipedia does. This is a Caesar ciper with a varying shift. The number provided tells you how many characters each letter in the cipher text needs to be shifted.

I tried shifting them to the right. No luck. The result was mumbo jumbo. But when I shifted the letters to the "left" in the alphabet, I got their name. Bamm. Nice way to make me work for the URL. Too bad I am not in the running for any of their positions or their location.

Not sure why a C and python program would come up with different result while decrypting the text.

Moving Cash Around with Paypal

This week there was a massive PR campaign launched againt Paypal. Here is how it went down. Somebody set up a toy campaign for some poor kids. They funded it with Paypal payments from donors. The funds were collected via Paypal. The problem was that the organizers were not charitable foundations. But they still used a Donate button on their web sites. This is against Paypal's TOS.

Paypal detected the violation and froze the account and payments. The organizer was left with a lot of toys purchased, but not funds to pay for them. The organizer started up a grass roots protest using readers of her blog. The users were outraged. Some of them had been donors. Paypal was made to look like a big Scrooge with kids getting cheated out of their gifts.

In the end, Paypal relented. They unfroze the account. Initially Paypal stated that they had to freeze the account because this is how the bad guys transfer funds via Paypal. They set up fake donation schemes to their money. This organizer figured out how to get a giant corp like Paypal to submit to their will. Make Paypal look like a bad guy. Get a lot of people outraged. Engage the media. Giant corp pwned. Brilliant.

HP Printers on Fire. Oh My.

I been seeing these sensationalist headlines about Hewlett Packard printers being able to be hacked. The ultimate danger is stated as the HP devices being overloaded and catching on fire. Makes for a great headline indeed. I thought this was just crazy talk. Turns out it probably is.

Here are the details. Apparently the printers look for software updates during each print job. It is possible to sneak in an unscrupulous update as part of a print job. The theory is that one could overload the printer, causing it to heat up, and eventually catch on fire.

HP has already come out and said that in the rare scenario where this happens and the printer does heat up, a hardware governor will kick in and shut the thing off before things heat up too make. Did anybody actually test out the theory and cause an HP printer to catch fire? No. Hell. They might as well said that HP printers would explode if they are hacked too much. Hehe.

Spammer Pwned

I had a weird spam message in my email today. The spammer made it look like the email came from one of my other email accounts. I sometimes send myself email to transfer stuff quickly between machines. This spammer must have determined my email address and forged it to fool me. This reminds me of a situation that Mike from Attack Vector ran into. His solution was to track down and call out the spammer.

Mike checks out the email headers. He gets the spammer IP and email address. He uses whois to get a phone number. Then he finds a postal address and bamn. He can now spy on the spammer's house with Google Maps. Turns out the spammer is Steve Nicholas of Spokane, WA. Mike goes on to determine the spammer's wife name, some social security numbers, and all kinds of other private info. Eventually the spammer contacts Mike and begs him to take down the info. What an unlucky day to send email spam. Hehe.

Hacking YouTube Views

I got a friend that produced a video and uploaded it to YouTube. Some other friends did the same. Now they are all seeing who gets the most hits on YouTube. My friend wondered if there was anything I could do to help increase his views. No problem.

I want to make it look like a user is viewing the video. The video is just a URL that gets accessed in a browser. I could just write a program that keeps launching the browser to start watching my friend's video. Perhaps I could have a small delay between viewings.

Let's say I want to try and fool YouTube into thinking it is a real human. I could mix in access to some other videos from my program. My program could also launch one of the many different browser available on my machine.

Let's think about taking this up a notch. I could write some hot software and release it for free. Then that software could quietly "watch" the video on some hidden screen. Makes it much harder for YouTube to detect something fishy. Let's see how far I need to take this.

Dennis Ritchie RIP

Dennis Ritchie passed away this week. In case you were unaware, he was the creator of the C programming language. He also was one of the creators of the UNIX operating system. Damn. That is some resume. Dennis was one of those early pioneers of computer science in the 1970s whose work affects a lot of us coders.

Have you ever heard of the K&R book of C programming? The R stands for Ritchie. Yep. He invented the language and wrote the seminal work on it. I measure all programming books against the K&R book. The rest usually do not even compare. How can you get so much info in such a small book? Elegance.

Hats off to you Dennis. Rest in peace.

Simpletron

I have been taking a community college class on advanced Java. The instructor is experienced in Java and that helps. However our text is a Deitel book that just can't seem to explain these advanced concepts to me successfully. I feel ripped off because the book cost me $130. Now I still read the chapters each week and work through the exercises. But I find myself googling around to figure out what the heck is going on.

The latest chapter was on common structures like stacks, queues, and lists. We got into the internal implementation of these structures. I worked through almost all the exercises in the back of the chapter. I was pleased with a calculator app that used a stack to convert math expressions to a format the computer could read. I was amazed that such little code could figure out complex expressions.

The last exercise in the chapter was to build a compiler for the BASIC programming language. Damn. That's a tall order. The problem was that this task relied on you finishing some exercises from previous chapters. Our advanced class had skipped over those chapters so I did not do them.

The crucial exercise was to implement a computer called the Simpletron. This thing has its own set of assembly language instructions, registers, memory, and so on. I started hitting those Simpletron exercises hard. I wrote out some small programs in Simpletron assembly language. This was fun. The real challenge was to build a Java program that would implement the Simpletron computer. More about that grand task later.