Long story short, I have a program that generates 32 character keys. These keys change every second so I assume they are time based. Some of these keys are as follows:

  • 8é 03]TyjzyQ;µ°g'Ôñ"KL2ûä*ª
  • ÁÁÚô£÷=ÁËè«-w¢c ££ià(tóWìQÁ
  • œÃ¶~çY»BõÙ)ýŒdÒŒDîýWH (œI
  • .ë[VÒ;S÷:uYªaCXZÃ.0Þ¯ó{œü X·ú

These keys go together with another parameter called serialNumber. The program, after generating a key like above, forms (with serialNumber and key) a 52 character base32 string called secret. I do not know how to relate the keys to the exact second they were created (maybe unix time stamp encryption?) but I have a secret value, and a serialNumber, and my goal is to reverse engineer the key from it. Given this is possible, can someone lead me down the right path? I'm told I have enough information to actually get the key from the secret and serialNumber I just don't know how to decrypt my secret (looks something like TQCN562J5NUVFWMNCMHFJLXHWU4R2T7MAC4NFHMFGJD4NNTYWW7A) with my serialNumber (looks something like 49284393). Any advice would be appreciated.

BTW this is extra credit work, I don't care about the points just want to learn how to solve this problem. Any hints would be appreciated!

  • 1
    How are the keys output? Are you given the binary that generates the keys? If so, why don't you just disassemble the program to find out the key? If you know that the problem is solvable without disassembling the program, what did you cover in class recently? (I'm assuming this was assigned as part of a class since you said that it's extra credit work.)
    – WillS
    Commented Sep 12, 2016 at 2:40
  • @WillS Yes I am given the binary executable that generates secrets. If I try and create a secret without giving it a key to build it with, it will generate a key to build the secret with, then output both the secret and the key. The key it auto-generates though is different every second you run the program. Assuming I disassemble it, could I find how it creates a secret from a given key and serialNumber? Commented Sep 12, 2016 at 2:55
  • @WillS BTW running objdump -Mintel -d ./keygen gives me a file with 270,000 lines in it. Not sure if this is crazy or not but seems nearly impossible to sift through haha Commented Sep 12, 2016 at 2:58
  • @BradWerth Yes it was..I deleted my previous question so that this is the only version of it Commented Sep 12, 2016 at 6:05


Browse other questions tagged .