HNHacker News
TopNewBestAskShowJobs

jgeralnik

1,174 karma · joined June 17, 2011

Contact me. jgeralnik at gmail
submissionscomments
jgeralnik··on Kongregate closed to new games, shutting down forums and chat
Yes! I was definitely on Kongrehack and used Niflheim. I never used mass submission of badges, I would break each game individually. Hacking the game became the challenge, and games that nobody else on Kongrehack had managed to cheat at were the best challenge of all
jgeralnik··on Kongregate closed to new games, shutting down forums and chat
I spent middle school hacking games on Kongregate to obtain badges and high scores. There were incredible tools available for hacking flash games - debuggers, decompilers, cheat engine like tools. Most of the tools were dedicated to kongregate games and allowed easy interfacing with the website. Years later I tried to remember exactly what tools I had used and what communities I participated in and was never able to find them.

Anyone else do the same and have a better recollection of the tools you used?

jgeralnik··on Pwnat – Autonomous Nat Traversal (2010)
As long as only one side of the connection is behind a corporate NAT you could simply try all 65535 ports until you find the one that works. The side behind the NAT would receive the packet and then be able to respond.
jgeralnik··on Pwnat – Autonomous Nat Traversal (2010)
The really cool part about this is that the server does not need to know the client's ip address. Instead a new original form of ICMP hole punching is used to allow any client to punch the NAT so that the server can dynamically learn the client ip, and then regular UDP hole punching is used.
jgeralnik··on The French semaphore system hack of 200 years ago
My favorite story that I've talked about as the first "cyber" attack for years is from the time of the second Jewish temple, a few hundred years B.C.

The Jewish calendar is based on the lunar cycle, and each month has either 29 or 30 days. Back then the length of months was not declared in advance. Instead, each month when a new moon was spotted witnesses could come to the religious court (called Sanhedrin) in Jerusalem claiming to have witnessed the new moon, and if the court accepted their testimony that day was declared the first of the month. To spread the word they would light a bonfire on a mountain, and every city that saw the bonfire would light their own and the message would quickly spread. (Similar to the semaphore system but only transmitting a single bit. Because the signal was just a fire at nighttime it would reach very far very quickly)

Now, there was a small offshoot of Jews known as Karaits, whose interpretation of the Bible caused them to believe that passover must fall on a Sunday (the passage says something like "on the first day [of passover] " which can also be interpeted as "on Sunday"). "Mainstream" (at the time) Judaism did not agree with this interpretation. So what did the Karaits do? On the day that they wanted to be the first of the month (such that Passover, the fourteenth of the month, would fall on Sunday) they went to a nearby mountain and lit a bonfire. The other cities saw the bonfire and assumed it was legitimate, and so lit their own bonfires as well, and the fake message was spread. Classic man in the middle attack!

So how did the Sanhedrin solve this issue? One way would be to sign their messages with RSA. Generate two large prime numbers p and q, have N=p*q and e=65537 be public, known parameters, figure out how to properly pad your messages so that you're not using a completely broken system, and sign the hash of the message with phi=(p-1)(q-1).

There are a few problems with this. First, it's difficult to transmit 1024 bit messages over fire signals. Second - Rivest, Shamir and Adelman wouldn't be born for another 2000 years or so.

Instead, the solution was to move to a different, more secure medium. Instead of lighting a fire, the Sanhedrin would send messengers to spread the word to nearby cities, and each city would send their own messengers to their neighbors. Each city would trust their immediate neighbors and a chain of trust could be established.

The problem with the new solution is that it is much much slower than the traditional fire signals, so some far off places wouldn't know when the previous month started by the time the 14th of the month (passover) came around. To handle this, far off cities would celebrate two days of passover - one on the 14th assuming the previous month had 29 days, and one on the following day under the assumption that there were 30 days.

To this day, the tradition of Jews in far off places celebrating 2 days of holidays remains. Orthodox religious Jews outside of Israel celebrate 2 days of each of the 3 major Jewish holidays out of a sense of "doubt" over which day the holiday actually falls on because the message would not arrive in time.

jgeralnik··on How to explain infinity to kids
True, but the GP claimed that if we can order alphabetically we can create a one to one correspondence with natural numbers.

Obviously we can order reals (using <), I interpreted the original post as referring not to your definition but to "order and count"

jgeralnik··on Georgia Tech Creates Cybersecurity Master’s Degree Online for Less Than $10k
The challenges are years old and not actively maintained. Until this thread I haven't seen any people who passed level 12 or so
jgeralnik··on Georgia Tech Creates Cybersecurity Master’s Degree Online for Less Than $10k
The challenge in question is just a jpg of the logo of ruxcon 2004. The password for the next level is presumably steganographically encoded in it. The challenge is much easier (and perhaps only possible) given the original image, but the logo is no longer on the internet. After scouring web archive and using all Google fu at my command I found some instances of the image but all in different sizes/dimensions.

The name of the level is "the properties of a mirror" which hints that you need to find a mirror of the original site in order to solve the level, and I think that the mirrors are no longer online.

Note for anyone unfamiliar that this level is not at all representative of vortex - all the other levels are all hard core exploit implementation and not stego challenges. In general I don't like stego because I feel that it is more of "try to guess what I'm thinking" than solving interesting challenges.

jgeralnik··on Georgia Tech Creates Cybersecurity Master’s Degree Online for Less Than $10k
+1 to vortex. I participate often in CTF competitions and it's my go to recommendation for serious people looking to get more involved. Most of the early stages are great because they are no nonsense - they give you the papers explaining the solution, and just ask you to do the work of understanding and implementing them.

Stage 16 is one of my favorite challenges all time. It took me weeks to solve and the solution is very impressive.

I've been stuck for the last few years on stage 23. Unlike the rest of the challenges it is a stenography level, and I'm not convinced that it is still solvable today.

jgeralnik··on How to explain infinity to kids
Not quite, you can't order all natural numbers alphabetically either but that doesn't mean you can't count them.

A better way to count based on names would be to first count all single letter names alphabetically, then all two letter names alphabetically, etc.

jgeralnik··on IoT Goes Nuclear: Creating a ZigBee Chain Reaction
> The worm spreads by jumping directly from one lamp to its neighbors, using only their built-in ZigBee wireless connectivity and their physical proximity. The attack can start by plugging in a single infected bulb anywhere in the city, and then catastrophically spread everywhere within minutes, enabling the attacker to turn all the city lights on or off, permanently brick them, or exploit them in a massive DDOS attack

> To make such an attack possible, we had to find a way to remotely yank already installed lamps from their current networks, and to perform over-the-air firmware updates. We overcame the first problem by discovering and exploiting a major bug in the implementation of the Touchlink part of the ZigBee Light Link protocol, which is supposed to stop such attempts with a proximity test. To solve the second problem, we developed a new version of a side channel attack to extract the global AES-CCM key that Philips uses to encrypt and authenticate new firmware.

Fantastic work!

jgeralnik··on Regular Expression Crossword Puzzle
The original source for this puzzle was the 2013 MIT Mystery Hunt:

http://www.mit.edu/~puzzle/2013/coinheist.com/rubik/a_regula...

jgeralnik··on Ask HN: My school needs a data storage solution
The email field on hn profiles is hidden, if you want people to see it you should post it in the about field.
jgeralnik··on The Man Who Knows Whether Any Startup Will Live or Die
Nope, you're still right.

Assume startups fail 90% of the time. 50% of the time your coin comes up tails, and you claim the startup will fail. 50% of the time your coin comes up heads and you claim the startup will succeed.

You guess correctly 0.5 (the chance your coin comes up tails) * 0.9 (the chance the startup fails) + 0.5 (heads) * 0.1 (success) = 0.5 of the time.

jgeralnik··on 0x40 Assembly Riddles
Yup. The xadd opcode adds the two registers together and swaps them so that the previous element is always in the same register.
jgeralnik··on 0x40 Assembly Riddles
Agreed. The second snippet (http://www.xorpd.net/pages/xchg_rax/snip_01.html) is relatively simple to understand and is now my favorite two opcode program.
jgeralnik··on CVE-2014-7169: Bash Fix Incomplete, Still Exploitable
Switch sh to bash and it will work (create a file called echo)
jgeralnik··on I wrote the original blue screen of death, sort of

    > Imagine if you did that today. "Press any key to ignore this kernel panic." 
Linux still does this today. Not for kernel panics, but for kernel oops, which is the error you will usually get when doing something bad (say a null pointer dereference in a kernel module). The thread that causes a kernel oops is killed and a stack trace is written to dmesg but the rest of the system attempts to continue chugging on.
jgeralnik··on Project Euler Returns
bcrypt and scrypt are always salted (it's part of their algorithms - there is not such thing as unsalted bcrypt/scrypt)
jgeralnik··on A Third Order Quine in Three Languages [2008]
Incredible.

Save the program to a file and run: runhaskell quine.hs | python | ruby to get the original file.

If you look it through it's just a trivial extension of the "classical" quine. The function q prints it's arguments followed by printing a call to the function q with escaped arguments. Except instead of getting a single argument it gets 3, each of which is the corresponding function in a different language, and the function cycles to the next one.

See also http://blog.sigfpe.com/2011/01/quine-central.html

jgeralnik··on PaperCoin - paper offline Bitcoin wallets
You're back! Good to have you here again.
jgeralnik··on Google Glass
What the hell? Seriously. This was not a silly one line meme reminiscent of reddit. Someone posted a long, well written story questioning the social implications of a new piece of technology, which generated a huge amount of discussion.

A one liner saying go back to reddit is not HN material. Please go back to reddit.

jgeralnik··on Password Hashing Competition
For reference, it looks like he's referring to this:

http://freecode.com/articles/suse-new-krb5-packages-fix-remo...

jgeralnik··on Password Hashing Competition
How about this: http://blog.fortify.com/blog/fortify/2009/02/20/SHA-3-Round-...?

Granted, these were just candidates and not actually NIST defined algorithms, but the point stands that algorithms can be fine while standard implementations have bugs.

jgeralnik··on Password Cracking AES-256 DMGs and Epic Self-Pwnage
Using a slow implementation of PBKDF2 is not going to slow down attackers who use a fast implementation.
jgeralnik··on Go and Assembly
Don't bother with the else. Just continue with your code outside a nested block since the if returns.
jgeralnik··on Kim Dotcom puts up €10,000 bounty for first person to break Mega's security
He didn't say the item doesn't apply, he said that it is a warning sign. Holding a contest doesn't make a product snake oil, but it certainly correlates to snake oil products.
jgeralnik··on UK High Court Finds Programming Languages Uncopyrightable
So in the case of software, how is a patent different from a copyright on your code?
jgeralnik··on UK High Court Finds Programming Languages Uncopyrightable
[..] to accept that the functionality of a computer program can be protected by copyright would amount to making it possible to monopolise ideas, to the detriment of technological progress and industrial development.

How are patents justified if the law recognizes that monopolizing ideas is bad?

jgeralnik··on Atari Declares Bankruptcy
This reddit comment also explains:

http://www.reddit.com/r/technology/comments/16zlo7/atari_fil...

← PreviousPage 2 of 7Next →