Jump to content











Photo

Challenge #12 - Crack it


  • Please log in to reply
23 replies to this topic

#1 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 19 August 2011 - 09:21 AM

This challenge is 'handcrafted'. You do not need any crypting app.

2D0E1A0E0404310D330C01051B0723644E381B1C56162A142908114C000135650318071D13173C59


Maybe my latest project helps a bit in decoding.

Peter
  • florin91 likes this

#2 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 20 August 2011 - 07:35 AM

By mistake the solution has been published.

Here is a new crypted string:

3A3620215624241B37081B4C17063E310B1200


Peter

Try it here

#3 Holmes.Sherlock

Holmes.Sherlock

    Gold Member

  • Team Reboot
  • 1444 posts
  • Location:Santa Barbara, California
  •  
    United States

Posted 20 August 2011 - 07:50 AM

@reboot community
Post #2 updated with the link to try out this challenge. Now you can try it out there like the previous ones.

@pscEx
Can you please try it out & let me know that if it's working as desired?

#4 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 20 August 2011 - 10:39 AM

Link checks correctly!

BTW: 'R' is not in the result. I made the mistake ....

Peter

#5 Holmes.Sherlock

Holmes.Sherlock

    Gold Member

  • Team Reboot
  • 1444 posts
  • Location:Santa Barbara, California
  •  
    United States

Posted 20 August 2011 - 11:20 AM

BTW: 'R' is not in the result. I made the mistake ....

That's what I was trying to point out.

#6 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 20 August 2011 - 11:37 AM

That's what I was trying to point out.

:cheers:

Peter

#7 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 21 August 2011 - 07:41 PM

To avoid frustration for the next week (of my vacation):

Does not look like this is an easy challenge!

But it is!

For ICE-AGED-DOS-TIME programmers:

There are some methods to bit-wise use logical operations.

You have a string (byte array) #1
You have a string (byte array) #2

You can use logical bit operations on every byte pair of the two arrays, to create a byte array #3.

And some of the operations are reversible!

Peter

#8 Holmes.Sherlock

Holmes.Sherlock

    Gold Member

  • Team Reboot
  • 1444 posts
  • Location:Santa Barbara, California
  •  
    United States

Posted 30 August 2011 - 01:07 AM

Peter has given enough clues. Does anyone want to take up this challenge again?

#9 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 30 August 2011 - 02:42 AM

Assuming that this is one-time pad ciphertext, and since such ciphertext cannot generally be decrypted without a weak pad, in order for anyone to solve this, there must be a weak pad.

I have tried a variety of things involving XOR:
  • Used "reversible" as a hint and XORed the string with its backwards-self
  • XORed the high nibble with the low nibble for every byte and assumed an 'A'='1' code
  • XORed the whole string with every possible 8-bit byte
Oh well.

#10 Holmes.Sherlock

Holmes.Sherlock

    Gold Member

  • Team Reboot
  • 1444 posts
  • Location:Santa Barbara, California
  •  
    United States

Posted 30 August 2011 - 02:48 AM

@Sha0
Make sure that you are working on the string in Post #2

#11 Holmes.Sherlock

Holmes.Sherlock

    Gold Member

  • Team Reboot
  • 1444 posts
  • Location:Santa Barbara, California
  •  
    United States

Posted 30 August 2011 - 03:11 AM

I have tried a variety of things involving XOR:

  • Used "reversible" as a hint and XORed the string with its backwards-self
  • XORed the high nibble with the low nibble for every byte and assumed an 'A'='1' code
  • XORed the whole string with every possible 8-bit byte

Have you tried with splitting the string in two halves & XORing every character of the first string with the corresponding ones from the second?

#12 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 30 August 2011 - 04:07 AM

Have you tried with splitting the string in two halves & XORing every character of the first string with the corresponding ones from the second?

Yes I am working on the latter string. However, I am including both in my program, since information can be revealed if the pad for the first is the same as the pad for the second. Never use the same pad twice!

The first string could be hexadecimal chars for a 40-byte string. The second string could be for a 19-byte string; an odd number.

Yes I had tried splitting the string into two halves and XORing them, though I had to try a couple of different "splits" for the case of a 19-byte string.

The possible hint "ICE-AGED-DOS-TIME" is 17 chars.

Oh well.

#13 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 30 August 2011 - 07:24 AM

Maybe my latest project helps a bit in decoding.

:hypocrite:

Peter

#14 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 31 August 2011 - 05:24 PM

Before we get challenge #15 with still unsolved #12:

For those who find my projects boring or just oversee them: The actual one is named 'nativeEx_multiPE'.

And it can be concatenated to an array containing nativeEx_multiPEnativeEx_mult ...

Peter

#15 Holmes.Sherlock

Holmes.Sherlock

    Gold Member

  • Team Reboot
  • 1444 posts
  • Location:Santa Barbara, California
  •  
    United States

Posted 31 August 2011 - 05:28 PM

For those who find my projects boring or just oversee them: The actual one is named 'nativeEx_multiPE'.

No, I'm a bit ashamed to confess that even after spending more than one year in boot land reboot, I'm still ignorant of WB projects & related thingies.

#16 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1063 posts
  •  
    Belgium

Posted 31 August 2011 - 07:33 PM

@ pscEx
It also might be that nobody could solve your challenge because http://nativeex.multipe.exec-se.de/ can't be resolved :whistling: .

#17 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 01 September 2011 - 12:08 AM

Before we get challenge #15 with still unsolved #12:

For those who find my projects boring or just oversee them: The actual one is named 'nativeEx_multiPE'.

And it can be concatenated to an array containing nativeEx_multiPEnativeEx_mult ...

Well that gave it away. Try as I might, the only search results I had been able to get for your last project was PicoXP, which I know wasn't a new project, but wasn't sure if it was your "latest." So here is the code to solve the challenge, along with the answer(s).

#include <stdio.h>

#include <stdlib.h>

 

static char peter1[] = "2D0E1A0E0404310D330C01051B0723644E381B1C56162A142908114C000135650318071D13173C59";

static char peter1_bytes[(sizeof peter1 - 1) / 2 + 1];

static char peter2[] = "3A3620215624241B37081B4C17063E310B1200";

static char peter2_bytes[(sizeof peter2 - 1) / 2 + 1];

 

static void dumphex(char * bytes, int sz);

static void hex2byte(char * input, int input_sz, char * output);

 

int main(void) {

	static char pad[] = "nativeEx_multiPEnativeEx_multiPEnativeEx_multiPEnativeEx_multiPEnativeEx_multiPEnativeEx_multiPEnativeEx_multiPEnativeEx_multiPE";

	int i;

 

	/* Convert to byte arrays */

	hex2byte(peter1, sizeof peter1 - 1, peter1_bytes);

	dumphex(peter1_bytes, sizeof peter1_bytes - 1);

	hex2byte(peter2, sizeof peter2 - 1, peter2_bytes);

	dumphex(peter2_bytes, sizeof peter2_bytes - 1);

 

	/* Attempt to decode using the pad */

	for (i = 0; i < sizeof peter1_bytes - 1; ++i)

  	peter1_bytes[i] ^= pad[i];

	for (i = 0; i < sizeof peter2_bytes - 1; ++i)

  	peter2_bytes[i] ^= pad[i];

 

	printf("Answer #1: %s\n", peter1_bytes);

	printf("Answer #2: %s\n", peter2_bytes);

	return EXIT_SUCCESS;

  }

 

static void dumphex(char * bytes, int sz) {

	while (sz--)

  	printf("0x%02X ", *bytes++);

	puts("");

	return;

  }

 

static void hex2byte(char * input, int input_sz, char * output) {

	while (input_sz--) {

    	if (*input >= 'A' && *input < 'G')

      	*output = (10 + (*input - 'A')) << 4;

      	else

      	*output = (*input - '0') << 4;

    	--input_sz;

    	++input;

    	if (*input >= 'A' && *input < 'G')

      	*output += 10 + (*input - 'A');

      	else

      	*output += *input - '0';

    	++input;

    	++output;

  	}

	return;

  }

---EDIT--- I really don't like what the code tags did to the code above. :hammer:
Spoiler


#18 Holmes.Sherlock

Holmes.Sherlock

    Gold Member

  • Team Reboot
  • 1444 posts
  • Location:Santa Barbara, California
  •  
    United States

Posted 01 September 2011 - 12:59 AM

@Sha0
Well done!!! :thumbsup:

#19 Holmes.Sherlock

Holmes.Sherlock

    Gold Member

  • Team Reboot
  • 1444 posts
  • Location:Santa Barbara, California
  •  
    United States

Posted 01 September 2011 - 01:00 AM

---EDIT--- I really don't like what the code tags did to the code above. :hammer:

What's the problem with the 'code' tag? It's nicely formatted as I can see.

#20 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 01 September 2011 - 01:48 AM

What's the problem with the 'code' tag? It's nicely formatted as I can see.

Nope. I use an indentation scheme based on a unit of two spaces. The majority of that formatting has been lost, even though it shows back up if I edit the post. In the hex2byte function, the entire body (before the ending curly brace) appears at the same indentation level, which is wrong.

#21 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 01 September 2011 - 04:31 PM

Well that gave it away. Try as I might, the only search results I had been able to get for your last project was PicoXP, which I know wasn't a new project, but wasn't sure if it was your "latest." So here is the code to solve the challenge, along with the answer(s).
.....

:1st:
Peter

#22 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 01 September 2011 - 04:34 PM

@ pscEx
It also might be that nobody could solve your challenge because http://nativeex.multipe.exec-se.de/ can't be resolved :whistling: .

:frusty:
Where is this link? I'll correct.

The correct one is http://nativeex.exec-se.de/

Peter

#23 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1063 posts
  •  
    Belgium

Posted 01 September 2011 - 05:37 PM

:frusty:
Where is this link? I'll correct.

The correct one is http://nativeex.exec-se.de/

Peter

On http://nativeex.exec-se.de/ itself and the download links on http://nativeex.exec...ojects/multiPE/

#24 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 01 September 2011 - 06:13 PM

On http://nativeex.exec-se.de/ itself and the download links on http://nativeex.exec...ojects/multiPE/

OOPS!

I'l try to correct

Peter :worship:




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users