/******************************************************************************
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl,
C#, OCaml, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog.
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/
#include <stdio.h>
#include <stdint.h>
#include <string.h>
/* E:\!EmuZone\!OldTimer\DosGame\!pinball\ILLUSION\ILLUSION.CFG (2025. 08. 23. 20:22:04)
Kezdőpozíció(h): 00000022, Végpozíció(h): 000000E3, Hossz(h): 000000C2 */
unsigned char rawData[200] = {
0x39, 0x35, 0x52, 0x4E, 0x39, 0x7C, 0x11, 0x0B, 0x39, 0x6C, 0x11, 0x0B,
0x39, 0x6C, 0x11, 0x4A, 0x77, 0x35, 0x11, 0x4F, 0x77, 0x35, 0x11, 0x4F,
0x77, 0x74, 0x5B, 0x03, 0x77, 0x76, 0x5B, 0x03, 0x77, 0x76, 0x0B, 0x50,
0x39, 0x56, 0x0B, 0x51, 0x39, 0x56, 0x0B, 0x51, 0x39, 0x1D, 0x43, 0x1F,
0x39, 0x1D, 0x43, 0x1F, 0x39, 0x1D, 0x13, 0x5E, 0x77, 0x44, 0x13, 0x4E,
0x77, 0x44, 0x13, 0x4E, 0x77, 0x05, 0x59, 0x02, 0x77, 0x00, 0x59, 0x02,
0x77, 0x00, 0x59, 0x51, 0x39, 0x20, 0x59, 0x53, 0x39, 0x20, 0x59, 0x53,
0x69, 0x6B, 0x11, 0x1D, 0x69, 0x6A, 0x11, 0x1D, 0x69, 0x6A, 0x11, 0x54,
0x2A, 0x2F, 0x11, 0x54, 0x2A, 0x2F, 0x11, 0x54, 0x7A, 0x6E, 0x5B, 0x18,
0x7A, 0x7E, 0x5B, 0x18, 0x7A, 0x7E, 0x5B, 0x4B, 0x34, 0x5E, 0x5B, 0x4E,
0x34, 0x5E, 0x5B, 0x4E, 0x34, 0x15, 0x13, 0x00, 0x34, 0x17, 0x13, 0x00,
0x34, 0x17, 0x43, 0x49, 0x77, 0x52, 0x43, 0x48, 0x77, 0x52, 0x43, 0x48,
0x77, 0x00, 0x0C, 0x12, 0x77, 0x00, 0x0C, 0x12, 0x67, 0x21, 0x89, 0x41,
0x29, 0x01, 0x89, 0x51, 0x29, 0x01, 0x89, 0x51, 0x29, 0x4A, 0xC1, 0x1F,
0x29, 0x4F, 0xC1, 0x1F, 0x29, 0x4F, 0xC1, 0x56, 0x6A, 0x0A, 0xC1, 0x54,
0x6A, 0x0A, 0xC1, 0x54, 0x3A, 0x4B, 0x8F, 0x0D, 0x3A, 0x4A, 0x8F, 0x0D,
0x3A, 0x4A, 0x8F, 0x4C, 0x70, 0x06, 0x8F, 0x4C
};
int main()
{
for (size_t i = 0; i < sizeof(rawData); i++) {
}
// Eredeti adatok dekódolása egy új tömbbe
unsigned char decodedData[sizeof(rawData)];
memset(decodedData
,0,sizeof(decodedData
)); for (size_t i = 0; i < sizeof(rawData) / 4; i++) {
uint32_t current = *(uint32_t *)&rawData[i * 4];
uint32_t next = (i < (sizeof(rawData) / 4 - 1)) ? *(uint32_t *)&rawData[(i + 1) * 4] : 0;
// XOR-oljuk az aktuális és a következő 4 bájtot, és tároljuk az új tömbben
if (i < (sizeof(rawData) / 4 - 1)) {
*(uint32_t *)&decodedData[(i + 1) * 4] = current ^ next;
}
// Az első 4 bájtot közvetlenül másoljuk
if (i == 0) {
*(uint32_t *)&decodedData[0] = current;
}
}
// Eredeti adatok kiírása
for (size_t i = 0; i < sizeof(decodedData); i++) {
printf("%02x ", decodedData
[i
]); }
// 0x52 0x4F 0x5A bájtsorozat keresése és módosítása
for (size_t i = 0; i < sizeof(decodedData) - 2; i++) {
if (decodedData[i] == 0x52 && decodedData[i + 1] == 0x4F && decodedData[i + 2] == 0x5A) {
decodedData[i + 2] = 'Y'; // Az utolsó 0x5A-t cseréljük 'Y'-ra
break; // Megtaláltuk, kilépünk a ciklusból
}
}
// Módosított adatok kiírása
for (size_t i = 0; i < sizeof(decodedData); i++) {
printf("%02x ", decodedData
[i
]); }
unsigned char recodedData[sizeof(rawData)];
memcpy(recodedData
,decodedData
,sizeof(recodedData
)); // XOR művelet végrehajtása
for (size_t i = 0; i < sizeof(recodedData) / 4 - 1; i++) {
uint32_t *current = (uint32_t *)&recodedData[i * 4];
uint32_t *next = (uint32_t *)&recodedData[(i + 1) * 4];
*next = *current ^ *next; // XOR-oljuk az aktuális és a következő 4 bájtot
}
// Eredeti adatok kiírása
for (size_t i = 0; i < sizeof(recodedData); i++) {
printf("%02x ", recodedData
[i
]); }
return 0;
}
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKV2VsY29tZSB0byBHREIgT25saW5lLgpHREIgb25saW5lIGlzIGFuIG9ubGluZSBjb21waWxlciBhbmQgZGVidWdnZXIgdG9vbCBmb3IgQywgQysrLCBQeXRob24sIEphdmEsIFBIUCwgUnVieSwgUGVybCwKQyMsIE9DYW1sLCBWQiwgU3dpZnQsIFBhc2NhbCwgRm9ydHJhbiwgSGFza2VsbCwgT2JqZWN0aXZlLUMsIEFzc2VtYmx5LCBIVE1MLCBDU1MsIEpTLCBTUUxpdGUsIFByb2xvZy4KQ29kZSwgQ29tcGlsZSwgUnVuIGFuZCBEZWJ1ZyBvbmxpbmUgZnJvbSBhbnl3aGVyZSBpbiB3b3JsZC4KCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkaW50Lmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCi8qIEU6XCFFbXVab25lXCFPbGRUaW1lclxEb3NHYW1lXCFwaW5iYWxsXElMTFVTSU9OXElMTFVTSU9OLkNGRyAoMjAyNS4gMDguIDIzLiAyMDoyMjowNCkKICAgS2V6ZMWRcG96w61jacOzKGgpOiAwMDAwMDAyMiwgVsOpZ3BvesOtY2nDsyhoKTogMDAwMDAwRTMsIEhvc3N6KGgpOiAwMDAwMDBDMiAqLwoKdW5zaWduZWQgY2hhciByYXdEYXRhWzIwMF0gPSB7CgkweDM5LCAweDM1LCAweDUyLCAweDRFLCAweDM5LCAweDdDLCAweDExLCAweDBCLCAweDM5LCAweDZDLCAweDExLCAweDBCLAoJMHgzOSwgMHg2QywgMHgxMSwgMHg0QSwgMHg3NywgMHgzNSwgMHgxMSwgMHg0RiwgMHg3NywgMHgzNSwgMHgxMSwgMHg0RiwKCTB4NzcsIDB4NzQsIDB4NUIsIDB4MDMsIDB4NzcsIDB4NzYsIDB4NUIsIDB4MDMsIDB4NzcsIDB4NzYsIDB4MEIsIDB4NTAsCgkweDM5LCAweDU2LCAweDBCLCAweDUxLCAweDM5LCAweDU2LCAweDBCLCAweDUxLCAweDM5LCAweDFELCAweDQzLCAweDFGLAoJMHgzOSwgMHgxRCwgMHg0MywgMHgxRiwgMHgzOSwgMHgxRCwgMHgxMywgMHg1RSwgMHg3NywgMHg0NCwgMHgxMywgMHg0RSwKCTB4NzcsIDB4NDQsIDB4MTMsIDB4NEUsIDB4NzcsIDB4MDUsIDB4NTksIDB4MDIsIDB4NzcsIDB4MDAsIDB4NTksIDB4MDIsCgkweDc3LCAweDAwLCAweDU5LCAweDUxLCAweDM5LCAweDIwLCAweDU5LCAweDUzLCAweDM5LCAweDIwLCAweDU5LCAweDUzLAoJMHg2OSwgMHg2QiwgMHgxMSwgMHgxRCwgMHg2OSwgMHg2QSwgMHgxMSwgMHgxRCwgMHg2OSwgMHg2QSwgMHgxMSwgMHg1NCwKCTB4MkEsIDB4MkYsIDB4MTEsIDB4NTQsIDB4MkEsIDB4MkYsIDB4MTEsIDB4NTQsIDB4N0EsIDB4NkUsIDB4NUIsIDB4MTgsCgkweDdBLCAweDdFLCAweDVCLCAweDE4LCAweDdBLCAweDdFLCAweDVCLCAweDRCLCAweDM0LCAweDVFLCAweDVCLCAweDRFLAoJMHgzNCwgMHg1RSwgMHg1QiwgMHg0RSwgMHgzNCwgMHgxNSwgMHgxMywgMHgwMCwgMHgzNCwgMHgxNywgMHgxMywgMHgwMCwKCTB4MzQsIDB4MTcsIDB4NDMsIDB4NDksIDB4NzcsIDB4NTIsIDB4NDMsIDB4NDgsIDB4NzcsIDB4NTIsIDB4NDMsIDB4NDgsCgkweDc3LCAweDAwLCAweDBDLCAweDEyLCAweDc3LCAweDAwLCAweDBDLCAweDEyLCAweDY3LCAweDIxLCAweDg5LCAweDQxLAoJMHgyOSwgMHgwMSwgMHg4OSwgMHg1MSwgMHgyOSwgMHgwMSwgMHg4OSwgMHg1MSwgMHgyOSwgMHg0QSwgMHhDMSwgMHgxRiwKCTB4MjksIDB4NEYsIDB4QzEsIDB4MUYsIDB4MjksIDB4NEYsIDB4QzEsIDB4NTYsIDB4NkEsIDB4MEEsIDB4QzEsIDB4NTQsCgkweDZBLCAweDBBLCAweEMxLCAweDU0LCAweDNBLCAweDRCLCAweDhGLCAweDBELCAweDNBLCAweDRBLCAweDhGLCAweDBELAoJMHgzQSwgMHg0QSwgMHg4RiwgMHg0QywgMHg3MCwgMHgwNiwgMHg4RiwgMHg0Qwp9OwoKCmludCBtYWluKCkKewogICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YocmF3RGF0YSk7IGkrKykgewogICAgICAgIHByaW50ZigiJTAyeCAiLCByYXdEYXRhW2ldKTsKICAgIH0KICAgIHByaW50ZigiXG4iKTsKCiAgICAvLyBFcmVkZXRpIGFkYXRvayBkZWvDs2RvbMOhc2EgZWd5IMO6aiB0w7ZtYmJlCiAgICB1bnNpZ25lZCBjaGFyIGRlY29kZWREYXRhW3NpemVvZihyYXdEYXRhKV07CiAgICBtZW1zZXQoZGVjb2RlZERhdGEsMCxzaXplb2YoZGVjb2RlZERhdGEpKTsKICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHJhd0RhdGEpIC8gNDsgaSsrKSB7CiAgICAgICAgdWludDMyX3QgY3VycmVudCA9ICoodWludDMyX3QgKikmcmF3RGF0YVtpICogNF07CiAgICAgICAgdWludDMyX3QgbmV4dCA9IChpIDwgKHNpemVvZihyYXdEYXRhKSAvIDQgLSAxKSkgPyAqKHVpbnQzMl90ICopJnJhd0RhdGFbKGkgKyAxKSAqIDRdIDogMDsKICAgICAgICAKICAgICAgICAvLyBYT1Itb2xqdWsgYXogYWt0dcOhbGlzIMOpcyBhIGvDtnZldGtlesWRIDQgYsOhanRvdCwgw6lzIHTDoXJvbGp1ayBheiDDumogdMO2bWJiZW4KICAgICAgICBpZiAoaSA8IChzaXplb2YocmF3RGF0YSkgLyA0IC0gMSkpIHsKICAgICAgICAgICAgKih1aW50MzJfdCAqKSZkZWNvZGVkRGF0YVsoaSArIDEpICogNF0gPSBjdXJyZW50IF4gbmV4dDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gQXogZWxzxZEgNCBiw6FqdG90IGvDtnp2ZXRsZW7DvGwgbcOhc29sanVrCiAgICAgICAgaWYgKGkgPT0gMCkgewogICAgICAgICAgICAqKHVpbnQzMl90ICopJmRlY29kZWREYXRhWzBdID0gY3VycmVudDsKICAgICAgICB9CiAgICB9CgogICAgLy8gRXJlZGV0aSBhZGF0b2sga2nDrXLDoXNhCiAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZihkZWNvZGVkRGF0YSk7IGkrKykgewogICAgICAgIHByaW50ZigiJTAyeCAiLCBkZWNvZGVkRGF0YVtpXSk7CiAgICB9CiAgICBwcmludGYoIlxuIik7CgogICAgLy8gMHg1MiAweDRGIDB4NUEgYsOhanRzb3JvemF0IGtlcmVzw6lzZSDDqXMgbcOzZG9zw610w6FzYQogICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YoZGVjb2RlZERhdGEpIC0gMjsgaSsrKSB7CiAgICAgICAgaWYgKGRlY29kZWREYXRhW2ldID09IDB4NTIgJiYgZGVjb2RlZERhdGFbaSArIDFdID09IDB4NEYgJiYgZGVjb2RlZERhdGFbaSArIDJdID09IDB4NUEpIHsKICAgICAgICAgICAgZGVjb2RlZERhdGFbaSArIDJdID0gJ1knOyAvLyBBeiB1dG9sc8OzIDB4NUEtdCBjc2Vyw6lsasO8ayAnWSctcmEKICAgICAgICAgICAgYnJlYWs7IC8vIE1lZ3RhbMOhbHR1aywga2lsw6lww7xuayBhIGNpa2x1c2LDs2wKICAgICAgICB9CiAgICB9CgogICAgLy8gTcOzZG9zw610b3R0IGFkYXRvayBracOtcsOhc2EKICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGRlY29kZWREYXRhKTsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIlMDJ4ICIsIGRlY29kZWREYXRhW2ldKTsKICAgIH0KICAgIHByaW50ZigiXG4iKTsKCiAgICB1bnNpZ25lZCBjaGFyIHJlY29kZWREYXRhW3NpemVvZihyYXdEYXRhKV07CiAgICBtZW1jcHkocmVjb2RlZERhdGEsZGVjb2RlZERhdGEsc2l6ZW9mKHJlY29kZWREYXRhKSk7CiAgICAvLyBYT1IgbcWxdmVsZXQgdsOpZ3JlaGFqdMOhc2EKICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHJlY29kZWREYXRhKSAvIDQgLSAxOyBpKyspIHsKICAgICAgICB1aW50MzJfdCAqY3VycmVudCA9ICh1aW50MzJfdCAqKSZyZWNvZGVkRGF0YVtpICogNF07CiAgICAgICAgdWludDMyX3QgKm5leHQgPSAodWludDMyX3QgKikmcmVjb2RlZERhdGFbKGkgKyAxKSAqIDRdOwogICAgICAgICpuZXh0ID0gKmN1cnJlbnQgXiAqbmV4dDsgLy8gWE9SLW9sanVrIGF6IGFrdHXDoWxpcyDDqXMgYSBrw7Z2ZXRrZXrFkSA0IGLDoWp0b3QKICAgIH0KCiAgICAvLyBFcmVkZXRpIGFkYXRvayBracOtcsOhc2EKICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHJlY29kZWREYXRhKTsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIlMDJ4ICIsIHJlY29kZWREYXRhW2ldKTsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==