📜 ⬆️ ⬇️

In the screenshots of the game WoW found digital watermarks (userID, time, realm)



Users of the OwnedCore gaming forum have discovered hidden watermarks that are automatically embedded in JPG files if you take a screenshot in World of Warcraft. If you take a screenshot of a clean area, open the file in IrfanView or some editor, increase the sharpness with the maximum filter setting, repeat the procedure several times, you will notice an obvious pattern that repeats many times.

Users have already written a program that automatically extracts information from a watermark. This is unencrypted ASCII text containing the user name, the time taken to take a screenshot accurate to the minute, and the real-time IP address, including private servers .

Thus, if you got the original screenshot from the WoW game, you can restore the name of the user who made it, the time taken to take a screenshot and the coordinates (realm). Blizzard probably needs this to investigate any incidents involving the illegal trade in digital goods, the sale of accounts and other violations of the rules.
')
Program for decoding graphic files: ImageToBinary.exe

Another C # program (requires .NET 4.5): WatermarkTool.rar



Java program to extract a digital label
import java.awt.image.BufferedImage; import java.io.*; import javax.imageio.*; public class ReadWatermark { static final int pWidth=352; // Pattern width static final int pHeight=240; // Pattern height static final int pxWidth=4; // Bit width static final int pxHeight=5; // Bit height static final int bWidth=88; // Bits table width static final int bHeight=48; // Bits table height static final int Black=0xFF000000; // Black = 0 static final int White=0xFFFFFFFF; // White = 1 static final String filenameSrc = "pattern.bmp"; // Stores the filename public static byte[][] getPatternBits(BufferedImage image) { byte barcode[][] = new byte[bWidth][bHeight]; // Stores the bits for (int y=0, i=0; y<pWidth; y+=pxWidth, i++) for (int x=0, j=0; x<pHeight; x+=pxHeight, j++) if (image.getRGB(y+1,x)==Black) // we check y+1 to target correctly (see pattern) barcode[i][j]=0; // got black else barcode[i][j]=1; // got white return barcode; } public static BufferedImage readImage(File file) { try { return (ImageIO.read(file)); } catch (IOException e) { return (null); } } public static void main(String[] args) { byte barcode[][]; // Stores the bits File fileSrc = new File(filenameSrc); // Create file reference BufferedImage imageSrc=readImage(fileSrc); // Read file if (imageSrc==null) System.exit(1); // no file found barcode=getPatternBits(imageSrc); // Get bits for (int i=bWidth-1; i>=0; i--) { // Print the pattern (1 row here is 1 column there, right to left) for (int j=bHeight-1; j>=0; j--) System.out.print(barcode[i][j]); System.out.println(); } } } 

As you can see, among the WoW players there are many literate guys. They researched their archives and found that hidden code has been embedded in screenshots since at least 2008 (Patch 3+), when Blizzard was purchased by Activision.

You can look at the code in your screenshots by taking a screenshot with a quality of less than 1-9, and running one of the above programs.

/console SET screenshotQuality "9"

So far, we have not been able to make a tool that extracts watermarks from screenshots with a quality of 10, as well as from screenshots in a lossless TGA compression format. Perhaps there are no watermarks.

Source: https://habr.com/ru/post/151297/


All Articles