Difference between revisions of "Sombra ARG"

From Game Detectives Wiki
Jump to: navigation, search
[unchecked revision][unchecked revision]
(Added old trails section as suggested by Svard.)
(Merging in http://wiki.gamedetectives.net/index.php?title=Sombra_ARG:Cryptography)
Line 89: Line 89:
 
  xxqklaxbm4cMeh2oKhqlHhdaBKOi6XX2XDWpa6+P5o9MQw==
 
  xxqklaxbm4cMeh2oKhqlHhdaBKOi6XX2XDWpa6+P5o9MQw==
  
Decrypting the above yielded the following string:
+
Using a tool to decode the Base64 results in the following output:
  
  Salted__ifK/Ei9^1Q*Qt+V= /عW'͠/ _V?qfF"=q[ z * Zu\5kLC
+
  Salted__���ifK/E�i��9^1Q�*Q�t+V=
 +
                                /ع��W/
 +
                                      �_����V��?q����f�F���"��=q�������[��
 +
                                                                          z��*����Z����u�\5�k�C
 
(Note: copy/pasting this string will not work; some of the characters will not paste properly)
 
(Note: copy/pasting this string will not work; some of the characters will not paste properly)
  
The "Salted__" header at the start of the string indicates that the remainder of the text is encoded in an OpenSSL cipher, which requires a key. The key has yet to be discovered. You can read more about this on the [http://wiki.gamedetectives.net/index.php?title=Sombra_ARG:Cryptography Sombra ARG Cryptography] page.
+
==== Decrypting the encryption ====
 +
 
 +
The "Salted__" header at the start of the string indicates that the remainder of the text is encoded in an OpenSSL cipher, which requires a key and a known cipher. Salts are added to encrypted data to ensure uniqueness.
 +
 
 +
Since we know the salt, and we know the input data, '''all we need to decrypt is the password and cipher method'''. Since OpenSSL has been around for ages, there are many different cipher methods.
 +
 
 +
'''A Cipher''' is a mathematical algorithm to convert data into unreadable binary data.
 +
 
 +
'''A Password''' is key to the box, if you know it you can easily decrypt the data.
 +
 
 +
==== Narrowing Down Ciphers ====
 +
 
 +
[[File:HexOfEncryptedMessage.png|thumbnail|right|Hex view of the encrypted string]]
 +
 
 +
The Cipher used has been narrowed down by looking at a Hex Dump of the encrypted string. There are two major types of ciphers, stream ciphers and block ciphers. Stream ciphers encrypt only the data fed into them, whereas block ciphers will always be a set chunk length.
 +
 
 +
A byte is roughly a single character, but special characters can take up multiple bytes. We know that OpenSSL Salted Encryption uses the first 8 bytes of the output for <code>Salted__</code> and the next 8 bytes for the actual salt. The rest of the information is the '''encrypted message'''.
 +
 
 +
The immediately interesting thing here is that the '''encrypted message''' data stops 3 bytes short of a full chunk. This is a excellent indicator that the cipher used is a stream cipher (or a block cipher in CTR/OFB/CFB mode). This narrows our cipher list down significantly. This also means that the final string that Blizzard encrypted is less than 93 bytes!
  
 
=== Directions & Letters ===
 
=== Directions & Letters ===

Revision as of 14:49, 8 August 2016

Sombra ARG
Active since 06-12-2016
Overwatch logo.jpg
The Sombra ARG - an ARG involving an unreleased Overwatch hero.
Type [[List_of_Investigations#Official|Official]]
Creator Blizzard
Discovered 06-12-2016

The Sombra ARG is an ARG involving Overwatch, a game made by Blizzard. Sombra is the name of an unreleased Overwatch hero that has been hinted at by Blizzard as being an upcoming playable character. Clues and ciphers referencing Sombra were found in various developer updates and short animations released by Blizzard, and this ARG is comprised of those clues.

Ana Videos

Ana Origin Video

On July 12, 2016, a video for the new Overwatch hero named Ana was released. By pausing the video at the 2:11 time mark, a bunch of hexadecimal numbers were discovered:

Ana Hex.png

65 76 2E 2E 2E 7B 76 20 66 62 72 20 63 7E 72 79 72 20 7B 76
20 7E 79 71 78 65 7A 76 74 7E D4 A4 79 2C 20 63 7E 72 79 72
20 72 7B 20 67 78 73 72 65 2E 2E 2E 7B 76 20 66 62 72 20 63
7E 72 79 72 20 7B 76 20 7E 79 71 78 65 7A 76 74 7E 04 A4 79
2C 20 63 7E 72 79 72 20 72 7B 20 67 78 73 72 65 2E 2E 2E 7B
76 20 66 62 72 20 63 7E 72 79 72 20 7B 76 20 7E 79 71 78 65
7A 76 74 7E 04 A4 79 2C 20 63 7E 72 79 72 20 72 7B 20 67 78
73 72 65 2E 2E 2E 7B 76 20 66 62 72 20 63 7E 72 79 72 20 7B
76 20 7E 79 71 78 65 7A 76 74 7E 04 A4 79 2C 20 63 7E 72 79
72  20  72  7B   20   67   78   73   72   65   2E   2E   2E

From Hex to ASCII this decoded to:

ev...
{v fbr c~ryr {v ~yqxezvt~Ô¤y, c~ryr r{ gxsre...
{v fbr c~ryr {v ~yqxezvt~Ô¤y, c~ryr r{ gxsre...
{v fbr c~ryr {v ~yqxezvt~Ô¤y, c~ryr r{ gxsre...
{v fbr c~ryr {v ~yqxezvt~Ô¤y, c~ryr r{ gxsre...

When passed through an XOR Cipher with constant 23, this returned:

ra...

la que tiene la información; tiene el poder...
la que tiene la información; tiene el poder...
la que tiene la información; tiene el poder...
la que tiene la información; tiene el poder...

Note the "ra" preceding the Spanish message. It translates to

She who has the information; has the power...

A second frame of hexadecimal numbers was discovered at the 1:16 time mark of the video:

Ana Hex2.png

When put through the same process, the same string was discovered, but at the end, the letters Somb appeared. These letters were combined with ra from the first cipher to create Sombra, the name of an unreleased hero that has been hinted at by Blizzard in the past. This led us to believe that this ARG had to do with Sombra, and the ARG was named accordingly.

Dev Update Video

The vertical barcodes found at the end of the Ana Dev Update video

At the end of this video, a series of vertical barcodes were discovered. The barcodes were solved to be binary, a dump of which is available here, credit of redditor /u/zapu.

Discord user Crauss turned the ones and zeroes into black and white pixels, which formed a QR code:

Sombra QR code.png

Scanning this QR code yielded the following message:

Estuvo eso facilito? Ahora que tengo su atencion, dejenme se las pongo mas dificil

And translated from Sombra's native language of Spanish into English:

Was that easy? Well, now that I have your attenion, allow me to make things much more difficult

Summer Games

Summer Games Video

The base64 cipher in the Summer Games video

On August 2, another cipher was discovered in this video - this time, the ciphertext was in base64:

U2FsdGVkX1+vupppZksvRf5pq5g5XjFRlipRkwB0K1Y96Qsv2L
m+31cmzaAILwytX/z66ZVWEQM/ccf1g+9m5Ubu1+sit+A9cenD
xxqklaxbm4cMeh2oKhqlHhdaBKOi6XX2XDWpa6+P5o9MQw==

Using a tool to decode the Base64 results in the following output:

Salted__���ifK/E�i��9^1Q�*Q�t+V=�
                                /ع��W/
                                      �_����V��?q����f�F���"��=q�������[��
                                                                          z��*����Z����u�\5�k�C

(Note: copy/pasting this string will not work; some of the characters will not paste properly)

Decrypting the encryption

The "Salted__" header at the start of the string indicates that the remainder of the text is encoded in an OpenSSL cipher, which requires a key and a known cipher. Salts are added to encrypted data to ensure uniqueness.

Since we know the salt, and we know the input data, all we need to decrypt is the password and cipher method. Since OpenSSL has been around for ages, there are many different cipher methods.

A Cipher is a mathematical algorithm to convert data into unreadable binary data.

A Password is key to the box, if you know it you can easily decrypt the data.

Narrowing Down Ciphers

Hex view of the encrypted string

The Cipher used has been narrowed down by looking at a Hex Dump of the encrypted string. There are two major types of ciphers, stream ciphers and block ciphers. Stream ciphers encrypt only the data fed into them, whereas block ciphers will always be a set chunk length.

A byte is roughly a single character, but special characters can take up multiple bytes. We know that OpenSSL Salted Encryption uses the first 8 bytes of the output for Salted__ and the next 8 bytes for the actual salt. The rest of the information is the encrypted message.

The immediately interesting thing here is that the encrypted message data stops 3 bytes short of a full chunk. This is a excellent indicator that the cipher used is a stream cipher (or a block cipher in CTR/OFB/CFB mode). This narrows our cipher list down significantly. This also means that the final string that Blizzard encrypted is less than 93 bytes!

Directions & Letters

There are references to directions that are present in the North American version of the video. These references are conspicuously absent from other versions of the trailer. These references are shown below, with the relevant heroes and timestamps:

Here are the screencaps, arranged according to their directions:

Overwatch map.jpg

Album of full screencaps

Old Trails

A Code In the Sky

On the developer livestream that happened on August 3rd, Jeff Kaplan and other members of the dev team were asked about the compass (video) (mirror):

"I'm being told to ask you guys about the compass.  Are you allowed to make any comments on that?"
"The compass."  "The compass?"  "The compass?  That sounds like deep CIA level stuff.  Way above our heads."

The phrase "above our heads" led solvers to look towards the sky. They found that on the Dorado map, looking directly up at the sky would reveal this image after some editing. Even more visible images are available here, the bottom two pictures have been "unwrapped" to be a square. This pattern was not visible in previous updates.

It is confirmed that the code in the sky is not a regular ShotCode, since a regular ShotCode can only contain 40 bits of data, and the code we are seeing in the sky is atleast 128 bytes big. It is also not an Annular Barcode since those need to have a startpoint, which ours does not.

Flight Times Board

Players also took use of the developer quote of "Way above our heads." as possible hint to the flight board in Numbani. Many attempts to correlate it to usable data have been proven inconclusive.

One of the attempts was to try an ADFGVX cipher on the flight number prefixes, to try to see if any pertinent data was available. Nothing has been recovered from the cipher.

Another attempt was to map out all of the locations listed on the flight board, but nothing has come out of that yet.


References

Media Appearances

3rd Aug. 2016

[EN] Kotaku - Overwatch Fans Find New Clues About The Mysterious Hero Sombra

[EN] Polygon - Overwatch fans are trying to crack the latest mystery about Sombra

[EN] PCGamesN - Overwatch's Sombra ARG continues with new clues, but no solutions

[EN] Team-Dignitas - Who is Sombra? All facts and clues about Sombra

[FR] Gamewave - UN NOUVEAU CODE CACHÉ DANS LA DERNIÈRE CINÉMATIQUE D'OVERWATCH!

[EN] FollowNews - Overwatch Fans Find New Clues About The Mysterious Hero Sombra

4th Aug. 2016

[EN] PCGamer - Overwatch Summer Games trailer hides a mysterious secret

[SK] Sector - Nové Overwatch video obsahuje ďalšie tajomstvá

[EN] Techinsider - 'Overwatch' players are going to insane lengths to solve a mystery that Blizzard's teased for months

[EN] Gamerant - Overwatch Players Uncover More ‘Sombra’ Clues

5th Aug. 2016

[EN] Kotaku - Days Later, Overwatch Fans Can't Figure Out The 'Sky Code' Mystery

[NL] Gamersnet - Cryptische speurtocht naar Overwatch' nieuwe heldin Sombra gaat bizar diep

[ES] Alfa Beta Jeuga - Overwatch: El enigma de Sombra sigue ofreciendo nuevos detalles

Temporary resources

(This content will be deleted after we've solved the riddles. It serves currently as a repo of tools for the Discord community)


Potential Clues / (mostly) Speculations: https://docs.google.com/document/d/1D-VSNpY1gpNwCDJ2Ocl2VM6bdiggU-NsZJbfDvLOOAk/edit?pli=1

https://github.com/glv2/bruteforce-salted-openssl

http://axxim.net/ow/gol-guesser/

Spreadsheet of what is being tested and what has already been tested: https://docs.google.com/spreadsheets/d/1rI08baFQmAwaqHC-9GF9VNGCYjuRE-q4LN9k4ottjuQ/pubhtml