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[194] = {
  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
  34. };
  35.  
  36. int main()
  37. {
  38. for (size_t i = 0; i < sizeof(rawData); i++) {
  39. printf("%02x ", rawData[i]);
  40. }
  41. printf("\n");
  42.  
  43. // Eredeti adatok dekódolása egy új tömbbe
  44. unsigned char decodedData[sizeof(rawData)];
  45. memset(decodedData,0,sizeof(decodedData));
  46. for (size_t i = 0; i < sizeof(rawData) / 4; i++) {
  47. uint32_t current = *(uint32_t *)&rawData[i * 4];
  48. uint32_t next = (i < (sizeof(rawData) / 4 - 1)) ? *(uint32_t *)&rawData[(i + 1) * 4] : 0;
  49.  
  50. // XOR-oljuk az aktuális és a következő 4 bájtot, és tároljuk az új tömbben
  51. if (i < (sizeof(rawData) / 4 - 1)) {
  52. *(uint32_t *)&decodedData[(i + 1) * 4] = current ^ next;
  53. }
  54.  
  55. // Az első 4 bájtot közvetlenül másoljuk
  56. if (i == 0) {
  57. *(uint32_t *)&decodedData[0] = current;
  58. }
  59. }
  60.  
  61. // Eredeti adatok kiírása
  62. for (size_t i = 0; i < sizeof(decodedData); i++) {
  63. printf("%02x ", decodedData[i]);
  64. }
  65.  
  66. printf("\n");
  67. unsigned char recodedData[sizeof(rawData)];
  68. memcpy(recodedData,decodedData,sizeof(recodedData));
  69. // XOR művelet végrehajtása
  70. for (size_t i = 0; i < sizeof(recodedData) / 4 - 1; i++) {
  71. uint32_t *current = (uint32_t *)&recodedData[i * 4];
  72. uint32_t *next = (uint32_t *)&recodedData[(i + 1) * 4];
  73. *next = *current ^ *next; // XOR-oljuk az aktuális és a következő 4 bájtot
  74. }
  75.  
  76. // Eredeti adatok kiírása
  77. for (size_t i = 0; i < sizeof(recodedData); i++) {
  78. printf("%02x ", recodedData[i]);
  79. }
  80. return 0;
  81. }
  82.  
Success #stdin #stdout 0s 5288KB
stdin
45
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 
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 
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 00 00