Neuer, schicker, virenfreier [Res Editor]

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Neuer, schicker, virenfreier [Res Editor]

      Hey

      Gibt ja schon einen Programm um die Res Files zu editieren, aber da es immer noch Zweifler bezüglich der angeblichen Viren gibt, wollte ich hier einfach mal einen geleechten Res Editor releasen (:

      Invitation schrieb:

      ...dieser Res Editor funktioniert auf 64 Bit einwandfrei.


      [FELD="Schicker (:"][/FELD]

      Downloadlink: Link
      credits to exos58

      Virustotal : Link
      Keine nervigen Virusmeldungen mehr (:

      MfG
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • vals;67270 schrieb:

      Scheiß auf Ragezone ô.O
      Ich will Core unterstützen und fördern und nicht die User dorthin verlinken.

      Warum finden die meisten eigentlich den Thanks Button nicht? ô.O

      MfG


      rofl, bist du thanks geil ?
      Weißt du wie oft jemand bei meinem release auf den download Button
      gedrückt hat und mir keins gegeben hat ?
      Ich heule deswegen doch nicht Rum, das auch noch bei einem geleechten.
      Wenn ich das schon lese, würde ich ja mein Thanks removen...
    • [FONT="Times New Roman"]Nein, aber es gibt die Res-File Struktur von Xadet auf seiner Homepage (und noch viel mehr!)

      Quellcode

      1. 001.using System;
      2. 002.using System.IO;
      3. 003.using System.Text;
      4. 004.
      5. 005.namespace Res_Example
      6. 006.{
      7. 007. class Program
      8. 008. {
      9. 009. /// <summary>
      10. 010. /// Type of .res file we are dealing with
      11. 011. /// </summary>
      12. 012. enum FileType
      13. 013. {
      14. 014. Normal = 0,
      15. 015. Obfuscated = 1
      16. 016. }
      17. 017.
      18. 018. /// <summary>
      19. 019. /// Structure of a resource file generated from the file header
      20. 020. /// </summary>
      21. 021. struct ResourceFile
      22. 022. {
      23. 023. public string FileName;
      24. 024. public int Size;
      25. 025. public int Crc32;
      26. 026. public int Offset;
      27. 027. };
      28. 028.
      29. 029. /// <summary>
      30. 030. /// File path we want to extract
      31. 031. /// Obviously we could use the "string[] args" in Main to get the file path but this is merely an example
      32. 032. /// </summary>
      33. 033. const string FILE_PATH = @"C:\Program Files (x86)\Gpotato\Flyff\World\DuKrr\DuKrr.res";
      34. 034.
      35. 035. #region Member Declarations
      36. 036.
      37. 037. static byte xorKey;
      38. 038. static FileType fileType;
      39. 039.
      40. 040. static ResourceFile[] resourceFiles;
      41. 041.
      42. 042. static string rootPath;
      43. 043.
      44. 044. #endregion
      45. 045.
      46. 046. static void Main(string[] args)
      47. 047. {
      48. 048. ExtractRes(FILE_PATH);
      49. 049. }
      50. 050.
      51. 051. /// <summary>
      52. 052. /// Open and collect information from a Flyff .res file
      53. 053. /// Then extract all of the files to the same folder as the .res file
      54. 054. /// </summary>
      55. 055. /// <param name="filePath">File path of the .res file</param>
      56. 056. static void ExtractRes(string filePath)
      57. 057. {
      58. 058. DateTime start = DateTime.Now;
      59. 059.
      60. 060. BinaryReader fh = new BinaryReader(File.OpenRead(filePath));
      61. 061. rootPath = Path.GetDirectoryName(filePath);
      62. 062.
      63. 063. xorKey = fh.ReadByte();
      64. 064. fileType = (FileType)fh.ReadByte();
      65. 065.
      66. 066. int headerSize = fh.ReadInt32();
      67. 067. byte[] header = fh.ReadBytes(headerSize);
      68. 068.
      69. 069. for (int i = 0; i < headerSize; i++)
      70. 070. header[i] = (byte)((16 * (xorKey ^ (byte)~header[i])) | ((xorKey ^ (byte)~header[i]) >> 4));
      71. 071.
      72. 072. // Open the header in a stream (a lot easier than using something like BitConverter)
      73. 073. BinaryReader headerStream = new BinaryReader(new MemoryStream(header));
      74. 074.
      75. 075. headerStream.ReadBytes(7); // Unknown
      76. 076.
      77. 077. short fileCount = headerStream.ReadInt16();
      78. 078. resourceFiles = new ResourceFile[fileCount];
      79. 079.
      80. 080. for (int i = 0; i < fileCount; i++)
      81. 081. {
      82. 082. short stringLength = headerStream.ReadInt16();
      83. 083.
      84. 084. resourceFiles[i] = new ResourceFile()
      85. 085. {
      86. 086. FileName = Encoding.ASCII.GetString(headerStream.ReadBytes(stringLength)),
      87. 087. Size = headerStream.ReadInt32(),
      88. 088. Crc32 = headerStream.ReadInt32(), // Haven't checked but it's the only logical thing I can think of
      89. 089. Offset = headerStream.ReadInt32(),
      90. 090. };
      91. 091. }
      92. 092.
      93. 093. headerStream.Close();
      94. 094.
      95. 095. // Extract and save all of the files
      96. 096. for (int i = 0; i < fileCount; i++)
      97. 097. ExtractFile(resourceFiles[i], fh);
      98. 098.
      99. 099. fh.Close();
      100. 100.
      101. 101. Console.WriteLine("Extraction Completed in {0}.{1} Seconds", (DateTime.Now - start).Seconds, (DateTime.Now - start).Milliseconds);
      102. 102. Console.ReadLine();
      103. 103. }
      104. 104.
      105. 105. /// <summary>
      106. 106. /// Extract a resource file from the Flyff .res format
      107. 107. /// </summary>
      108. 108. /// <param name="resourceFile">Resource structure for the file</param>
      109. 109. /// <param name="fh">File handler for the .res file</param>
      110. 110. static void ExtractFile(ResourceFile resourceFile, BinaryReader fh)
      111. 111. {
      112. 112. Console.WriteLine("Extracting File: {0}", resourceFile.FileName);
      113. 113.
      114. 114. string filePath = string.Format(@"{0}\{1}", rootPath, resourceFile.FileName);
      115. 115.
      116. 116. if (!File.Exists(filePath))
      117. 117. File.Create(filePath).Close();
      118. 118.
      119. 119. fh.BaseStream.Seek(resourceFile.Offset, SeekOrigin.Begin);
      120. 120.
      121. 121. byte[] fileBuffer = fh.ReadBytes(resourceFile.Size);
      122. 122.
      123. 123. // If the file type of "Obfuscated", use the same method as we used to deobfuscate the file header
      124. 124. if (fileType == FileType.Obfuscated)
      125. 125. {
      126. 126. for (int i = 0; i < resourceFile.Size; i++)
      127. 127. fileBuffer[i] = (byte)((16 * (xorKey ^ (byte)~fileBuffer[i])) | ((xorKey ^ (byte)~fileBuffer[i]) >> 4));
      128. 128. }
      129. 129.
      130. 130. // Write the buffer to the file
      131. 131. File.WriteAllBytes(filePath, fileBuffer);
      132. 132. }
      133. 133. }
      134. 134.}
      Alles anzeigen
      [/FONT]
    • >flying<;73989 schrieb:

      [FONT="Times New Roman"]Nein, aber es gibt die Res-File Struktur von Xadet auf seiner Homepage (und noch viel mehr!)

      Quellcode

      1. 001.using System;
      2. 002.using System.IO;
      3. 003.using System.Text;
      4. 004.
      5. 005.namespace Res_Example
      6. 006.{
      7. 007. class Program
      8. 008. {
      9. 009. /// <summary>
      10. 010. /// Type of .res file we are dealing with
      11. 011. /// </summary>
      12. 012. enum FileType
      13. 013. {
      14. 014. Normal = 0,
      15. 015. Obfuscated = 1
      16. 016. }
      17. 017.
      18. 018. /// <summary>
      19. 019. /// Structure of a resource file generated from the file header
      20. 020. /// </summary>
      21. 021. struct ResourceFile
      22. 022. {
      23. 023. public string FileName;
      24. 024. public int Size;
      25. 025. public int Crc32;
      26. 026. public int Offset;
      27. 027. };
      28. 028.
      29. 029. /// <summary>
      30. 030. /// File path we want to extract
      31. 031. /// Obviously we could use the "string[] args" in Main to get the file path but this is merely an example
      32. 032. /// </summary>
      33. 033. const string FILE_PATH = @"C:\Program Files (x86)\Gpotato\Flyff\World\DuKrr\DuKrr.res";
      34. 034.
      35. 035. #region Member Declarations
      36. 036.
      37. 037. static byte xorKey;
      38. 038. static FileType fileType;
      39. 039.
      40. 040. static ResourceFile[] resourceFiles;
      41. 041.
      42. 042. static string rootPath;
      43. 043.
      44. 044. #endregion
      45. 045.
      46. 046. static void Main(string[] args)
      47. 047. {
      48. 048. ExtractRes(FILE_PATH);
      49. 049. }
      50. 050.
      51. 051. /// <summary>
      52. 052. /// Open and collect information from a Flyff .res file
      53. 053. /// Then extract all of the files to the same folder as the .res file
      54. 054. /// </summary>
      55. 055. /// <param name="filePath">File path of the .res file</param>
      56. 056. static void ExtractRes(string filePath)
      57. 057. {
      58. 058. DateTime start = DateTime.Now;
      59. 059.
      60. 060. BinaryReader fh = new BinaryReader(File.OpenRead(filePath));
      61. 061. rootPath = Path.GetDirectoryName(filePath);
      62. 062.
      63. 063. xorKey = fh.ReadByte();
      64. 064. fileType = (FileType)fh.ReadByte();
      65. 065.
      66. 066. int headerSize = fh.ReadInt32();
      67. 067. byte[] header = fh.ReadBytes(headerSize);
      68. 068.
      69. 069. for (int i = 0; i < headerSize; i++)
      70. 070. header[i] = (byte)((16 * (xorKey ^ (byte)~header[i])) | ((xorKey ^ (byte)~header[i]) >> 4));
      71. 071.
      72. 072. // Open the header in a stream (a lot easier than using something like BitConverter)
      73. 073. BinaryReader headerStream = new BinaryReader(new MemoryStream(header));
      74. 074.
      75. 075. headerStream.ReadBytes(7); // Unknown
      76. 076.
      77. 077. short fileCount = headerStream.ReadInt16();
      78. 078. resourceFiles = new ResourceFile[fileCount];
      79. 079.
      80. 080. for (int i = 0; i < fileCount; i++)
      81. 081. {
      82. 082. short stringLength = headerStream.ReadInt16();
      83. 083.
      84. 084. resourceFiles[i] = new ResourceFile()
      85. 085. {
      86. 086. FileName = Encoding.ASCII.GetString(headerStream.ReadBytes(stringLength)),
      87. 087. Size = headerStream.ReadInt32(),
      88. 088. Crc32 = headerStream.ReadInt32(), // Haven't checked but it's the only logical thing I can think of
      89. 089. Offset = headerStream.ReadInt32(),
      90. 090. };
      91. 091. }
      92. 092.
      93. 093. headerStream.Close();
      94. 094.
      95. 095. // Extract and save all of the files
      96. 096. for (int i = 0; i < fileCount; i++)
      97. 097. ExtractFile(resourceFiles[i], fh);
      98. 098.
      99. 099. fh.Close();
      100. 100.
      101. 101. Console.WriteLine("Extraction Completed in {0}.{1} Seconds", (DateTime.Now - start).Seconds, (DateTime.Now - start).Milliseconds);
      102. 102. Console.ReadLine();
      103. 103. }
      104. 104.
      105. 105. /// <summary>
      106. 106. /// Extract a resource file from the Flyff .res format
      107. 107. /// </summary>
      108. 108. /// <param name="resourceFile">Resource structure for the file</param>
      109. 109. /// <param name="fh">File handler for the .res file</param>
      110. 110. static void ExtractFile(ResourceFile resourceFile, BinaryReader fh)
      111. 111. {
      112. 112. Console.WriteLine("Extracting File: {0}", resourceFile.FileName);
      113. 113.
      114. 114. string filePath = string.Format(@"{0}\{1}", rootPath, resourceFile.FileName);
      115. 115.
      116. 116. if (!File.Exists(filePath))
      117. 117. File.Create(filePath).Close();
      118. 118.
      119. 119. fh.BaseStream.Seek(resourceFile.Offset, SeekOrigin.Begin);
      120. 120.
      121. 121. byte[] fileBuffer = fh.ReadBytes(resourceFile.Size);
      122. 122.
      123. 123. // If the file type of "Obfuscated", use the same method as we used to deobfuscate the file header
      124. 124. if (fileType == FileType.Obfuscated)
      125. 125. {
      126. 126. for (int i = 0; i < resourceFile.Size; i++)
      127. 127. fileBuffer[i] = (byte)((16 * (xorKey ^ (byte)~fileBuffer[i])) | ((xorKey ^ (byte)~fileBuffer[i]) >> 4));
      128. 128. }
      129. 129.
      130. 130. // Write the buffer to the file
      131. 131. File.WriteAllBytes(filePath, fileBuffer);
      132. 132. }
      133. 133. }
      134. 134.}
      Alles anzeigen
      [/FONT]




      ty ty ty, hab nach so ner Homepgae gesucht :D

      ps: darf ich von dir paar cores geiern :D?