fork download
  1. /******************************************************************************
  2.  
  3. Welcome to GDB Online.
  4. GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl,
  5. C#, OCaml, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog.
  6. Code, Compile, Run and Debug online from anywhere in world.
  7.  
  8. *******************************************************************************/
  9. #include <stdio.h>
  10. #include <stdint.h>
  11. #include <string.h>
  12.  
  13. /* E:\!EmuZone\!OldTimer\DosGame\!pinball\ILLUSION\ILLUSION.CFG (2025. 08. 23. 20:22:04)
  14.   Kezdőpozíció(h): 00000022, Végpozíció(h): 000000E3, Hossz(h): 000000C2 */
  15.  
  16. unsigned char rawData[200] = {
  17. 0x39, 0x35, 0x52, 0x4E, 0x39, 0x7C, 0x11, 0x0B, 0x39, 0x6C, 0x11, 0x0B,
  18. 0x39, 0x6C, 0x11, 0x4A, 0x77, 0x35, 0x11, 0x4F, 0x77, 0x35, 0x11, 0x4F,
  19. 0x77, 0x74, 0x5B, 0x03, 0x77, 0x76, 0x5B, 0x03, 0x77, 0x76, 0x0B, 0x50,
  20. 0x39, 0x56, 0x0B, 0x51, 0x39, 0x56, 0x0B, 0x51, 0x39, 0x1D, 0x43, 0x1F,
  21. 0x39, 0x1D, 0x43, 0x1F, 0x39, 0x1D, 0x13, 0x5E, 0x77, 0x44, 0x13, 0x4E,
  22. 0x77, 0x44, 0x13, 0x4E, 0x77, 0x05, 0x59, 0x02, 0x77, 0x00, 0x59, 0x02,
  23. 0x77, 0x00, 0x59, 0x51, 0x39, 0x20, 0x59, 0x53, 0x39, 0x20, 0x59, 0x53,
  24. 0x69, 0x6B, 0x11, 0x1D, 0x69, 0x6A, 0x11, 0x1D, 0x69, 0x6A, 0x11, 0x54,
  25. 0x2A, 0x2F, 0x11, 0x54, 0x2A, 0x2F, 0x11, 0x54, 0x7A, 0x6E, 0x5B, 0x18,
  26. 0x7A, 0x7E, 0x5B, 0x18, 0x7A, 0x7E, 0x5B, 0x4B, 0x34, 0x5E, 0x5B, 0x4E,
  27. 0x34, 0x5E, 0x5B, 0x4E, 0x34, 0x15, 0x13, 0x00, 0x34, 0x17, 0x13, 0x00,
  28. 0x34, 0x17, 0x43, 0x49, 0x77, 0x52, 0x43, 0x48, 0x77, 0x52, 0x43, 0x48,
  29. 0x77, 0x00, 0x0C, 0x12, 0x77, 0x00, 0x0C, 0x12, 0x67, 0x21, 0x89, 0x41,
  30. 0x29, 0x01, 0x89, 0x51, 0x29, 0x01, 0x89, 0x51, 0x29, 0x4A, 0xC1, 0x1F,
  31. 0x29, 0x4F, 0xC1, 0x1F, 0x29, 0x4F, 0xC1, 0x56, 0x6A, 0x0A, 0xC1, 0x54,
  32. 0x6A, 0x0A, 0xC1, 0x54, 0x3A, 0x4B, 0x8F, 0x0D, 0x3A, 0x4A, 0x8F, 0x0D,
  33. 0x3A, 0x4A, 0x8F, 0x4C, 0x70, 0x06, 0x8F, 0x4C
  34. };
  35.  
  36.  
  37. int main()
  38. {
  39. for (size_t i = 0; i < sizeof(rawData); i++) {
  40. printf("%02x ", rawData[i]);
  41. }
  42. printf("\n");
  43.  
  44. // Eredeti adatok dekódolása egy új tömbbe
  45. unsigned char decodedData[sizeof(rawData)];
  46. memset(decodedData,0,sizeof(decodedData));
  47. for (size_t i = 0; i < sizeof(rawData) / 4; i++) {
  48. uint32_t current = *(uint32_t *)&rawData[i * 4];
  49. uint32_t next = (i < (sizeof(rawData) / 4 - 1)) ? *(uint32_t *)&rawData[(i + 1) * 4] : 0;
  50.  
  51. // XOR-oljuk az aktuális és a következő 4 bájtot, és tároljuk az új tömbben
  52. if (i < (sizeof(rawData) / 4 - 1)) {
  53. *(uint32_t *)&decodedData[(i + 1) * 4] = current ^ next;
  54. }
  55.  
  56. // Az első 4 bájtot közvetlenül másoljuk
  57. if (i == 0) {
  58. *(uint32_t *)&decodedData[0] = current;
  59. }
  60. }
  61.  
  62. // Eredeti adatok kiírása
  63. for (size_t i = 0; i < sizeof(decodedData); i++) {
  64. printf("%02x ", decodedData[i]);
  65. }
  66. printf("\n");
  67.  
  68. // 0x52 0x4F 0x5A bájtsorozat keresése és módosítása
  69. for (size_t i = 0; i < sizeof(decodedData) - 2; i++) {
  70. if (decodedData[i] == 0x52 && decodedData[i + 1] == 0x4F && decodedData[i + 2] == 0x5A) {
  71. decodedData[i + 2] = 'Y'; // Az utolsó 0x5A-t cseréljük 'Y'-ra
  72. break; // Megtaláltuk, kilépünk a ciklusból
  73. }
  74. }
  75.  
  76. // Módosított adatok kiírása
  77. for (size_t i = 0; i < sizeof(decodedData); i++) {
  78. printf("%02x ", decodedData[i]);
  79. }
  80. printf("\n");
  81.  
  82. unsigned char recodedData[sizeof(rawData)];
  83. memcpy(recodedData,decodedData,sizeof(recodedData));
  84. // XOR művelet végrehajtása
  85. for (size_t i = 0; i < sizeof(recodedData) / 4 - 1; i++) {
  86. uint32_t *current = (uint32_t *)&recodedData[i * 4];
  87. uint32_t *next = (uint32_t *)&recodedData[(i + 1) * 4];
  88. *next = *current ^ *next; // XOR-oljuk az aktuális és a következő 4 bájtot
  89. }
  90.  
  91. // Eredeti adatok kiírása
  92. for (size_t i = 0; i < sizeof(recodedData); i++) {
  93. printf("%02x ", recodedData[i]);
  94. }
  95. return 0;
  96. }
  97.  
Success #stdin #stdout 0.01s 5312KB
stdin
Standard input is empty
stdout
39 35 52 4e 39 7c 11 0b 39 6c 11 0b 39 6c 11 4a 77 35 11 4f 77 35 11 4f 77 74 5b 03 77 76 5b 03 77 76 0b 50 39 56 0b 51 39 56 0b 51 39 1d 43 1f 39 1d 43 1f 39 1d 13 5e 77 44 13 4e 77 44 13 4e 77 05 59 02 77 00 59 02 77 00 59 51 39 20 59 53 39 20 59 53 69 6b 11 1d 69 6a 11 1d 69 6a 11 54 2a 2f 11 54 2a 2f 11 54 7a 6e 5b 18 7a 7e 5b 18 7a 7e 5b 4b 34 5e 5b 4e 34 5e 5b 4e 34 15 13 00 34 17 13 00 34 17 43 49 77 52 43 48 77 52 43 48 77 00 0c 12 77 00 0c 12 67 21 89 41 29 01 89 51 29 01 89 51 29 4a c1 1f 29 4f c1 1f 29 4f c1 56 6a 0a c1 54 6a 0a c1 54 3a 4b 8f 0d 3a 4a 8f 0d 3a 4a 8f 4c 70 06 8f 4c 
39 35 52 4e 00 49 43 45 00 10 00 00 00 00 00 41 4e 59 00 05 00 00 00 00 00 41 4a 4c 00 02 00 00 00 00 50 53 4e 20 00 01 00 00 00 00 00 4b 48 4e 00 00 00 00 00 00 50 41 4e 59 00 10 00 00 00 00 00 41 4a 4c 00 05 00 00 00 00 00 53 4e 20 00 02 00 00 00 00 50 4b 48 4e 00 01 00 00 00 00 00 49 43 45 00 00 00 00 00 00 50 41 4a 4c 00 10 00 00 00 00 00 53 4e 20 00 05 00 00 00 00 00 4b 48 4e 00 02 00 00 00 00 50 49 43 45 00 01 00 00 00 00 00 52 4f 5a 00 00 00 00 10 21 85 53 4e 20 00 10 00 00 00 00 00 4b 48 4e 00 05 00 00 00 00 00 49 43 45 00 02 00 00 00 00 50 41 4e 59 00 01 00 00 00 00 00 41 4a 4c 00 00 
39 35 52 4e 00 49 43 45 00 10 00 00 00 00 00 41 4e 59 00 05 00 00 00 00 00 41 4a 4c 00 02 00 00 00 00 50 53 4e 20 00 01 00 00 00 00 00 4b 48 4e 00 00 00 00 00 00 50 41 4e 59 00 10 00 00 00 00 00 41 4a 4c 00 05 00 00 00 00 00 53 4e 20 00 02 00 00 00 00 50 4b 48 4e 00 01 00 00 00 00 00 49 43 45 00 00 00 00 00 00 50 41 4a 4c 00 10 00 00 00 00 00 53 4e 20 00 05 00 00 00 00 00 4b 48 4e 00 02 00 00 00 00 50 49 43 45 00 01 00 00 00 00 00 52 4f 59 00 00 00 00 10 21 85 53 4e 20 00 10 00 00 00 00 00 4b 48 4e 00 05 00 00 00 00 00 49 43 45 00 02 00 00 00 00 50 41 4e 59 00 01 00 00 00 00 00 41 4a 4c 00 00 
39 35 52 4e 39 7c 11 0b 39 6c 11 0b 39 6c 11 4a 77 35 11 4f 77 35 11 4f 77 74 5b 03 77 76 5b 03 77 76 0b 50 39 56 0b 51 39 56 0b 51 39 1d 43 1f 39 1d 43 1f 39 1d 13 5e 77 44 13 4e 77 44 13 4e 77 05 59 02 77 00 59 02 77 00 59 51 39 20 59 53 39 20 59 53 69 6b 11 1d 69 6a 11 1d 69 6a 11 54 2a 2f 11 54 2a 2f 11 54 7a 6e 5b 18 7a 7e 5b 18 7a 7e 5b 4b 34 5e 5b 4e 34 5e 5b 4e 34 15 13 00 34 17 13 00 34 17 43 49 77 52 43 48 77 52 43 48 77 00 0c 11 77 00 0c 11 67 21 89 42 29 01 89 52 29 01 89 52 29 4a c1 1c 29 4f c1 1c 29 4f c1 55 6a 0a c1 57 6a 0a c1 57 3a 4b 8f 0e 3a 4a 8f 0e 3a 4a 8f 4f 70 06 8f 4f