.xml Datei
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
byte
code
datei
datum
file
funktion
hit
info
log
message
offset
ordern
page
region
server
string
system
url
weben
zeile
-
Hallo, ich möchte eine .xml Datei auslesen, weiß aber nicht wieso die sich nicht öffnen lässt.
Ich vermurte mal das die Datei verschlüsselt ist, gibt es eine Möglichkeit sie zu entschlüssel? Wann ja wie!
Der angezeigte Inhalt der Datei sieht in etwa so aus ^^
xÚíÛndžïäh>€<uè cÐE ’ëÄH„)RÉ$~û,WæNïÔhY½Cš½Õ}·”Lšúðwwõ_‡~ùËÙõíÅÍÉV·g¯No¾Üžž|:»¾^}XùööÝ»õçïNøóŸNN^¾¹9ûtòæ§W§ÃéÉÏWÿ=û²ùôËêýùù«S¿þø׋ßÎ/?ü¼úrsþnu±þ3wzòãÕ§§'ù²º¹ûÖÓ“×77«w¿®ƒÏW—×g›öæúíçóËW§ÿ^]\¯“»/þ±ù‹Í§×›¯?]Ý^Þl~Ö?Ï/ß¿:E^ÿéO_VÞ\¾?ûß׿8;ÿðqýß„»oý¸úõlü‘¯®nÞ®Âú¤¯¿àý×ɯü»›ó«Ë¿ÿöùëoô·ÕõõúG®?}?¡ ÐÈxË ®.‹Î¯O‡ ’D]æJA8¹.B]ÛÒ놋jAý±D:¸è̳¡¢3¯O„ P•†é…«äòéÕE5¢ÐÊgA”ÇÖLÖE‘ôE5(6ŸRžj@%¥ç¾El8Œ±Ôð€$œÌ?f4EË7‰8QÔÅ0çÊ´™ôéðc#Ù‰¯.hð XU\¹¨Á'z` ‚yq,ß'î³r[U@‰*X™û“m>\W9Í—.8½3%8¸ºnžKºàõ¥Âa÷ï:Ó;¡ 2W€‹7ˆzr;!.93¢.¤sJDT¡®0â¡ÀrGä .ßÊq¨ëÈpªcÖ7ÿÂoIðìÚ—®5]5öSû12Ó'<B õˆbØÝî’MêC3ΗʄY%ˆ_¬Ë¨t¼„„6“! CA|²!íÇ°M”d2„G+Ëd,‰bP÷õƒ.V–ʘft `a$¯¾r‚¨|M‡Å§7’-bs;=슱ùÖmiÈ ÏŒä&Ù&(‰ÀXïrÌt.˜£]9®Œumä4º62ܵ‘ÓèÚixu¼!ƒ¯|Jø*ü·ßï`¡EgZyÌÑÀ®Œ‘…^É> êÊY¨•1ÓàeŽweŒ,ôÊ
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
senshi-network schrieb:
Von wo kommt denn die Datei (woher hast du die)?
Ich vermurte mal das die Datei verschlüsselt ist, gibt es eine Möglichkeit sie zu entschlüssel? Wann ja wie!
Verschlüsselungen so zu erraten kannst du sonst vergessen, ein Anhaltspunkt (z.B. woher die Datei kommt) ist also nötig... -
Die Datei kommt von einen Browser Game und soll als Item Datenbank dienen wo dann z.B. der Name das Gegenstands Gespeichert wird.
Was muss ich wissen um diese Datei zu entschlüsseln? -
senshi-network schrieb:
Von welchem Browsergame kommt das?
Die Datei kommt von einen Browser Game und soll als Item Datenbank dienen wo dann z.B. der Name das Gegenstands Gespeichert wird. -
Von welchem Browsergame kommt das?
DDTank
Ich kann ja mal nen paar Daten uploaden
Beitrag zuletzt geändert: 26.4.2012 20:57:06 von senshi-network -
Ja eine sample Datei wäre nicht verkehrt, und natürlich, wenn es verschlüsselt sein sollte kann man es auch entschlüsseln, man braucht einrfach nur den Schlüssel...wenn allerdings etwas verschlüsselt ist dann wünscht man sich das es eben nicht jeder lesen kann...das schützt bspw. browsergames gegen Cheater...
-
fatfox schrieb:
Dazu muss man aber auch noch wissen mit welchem Algorithmus überhaupt verschlüsselt wurde...
wenn es verschlüsselt sein sollte kann man es auch entschlüsseln, man braucht einrfach nur den Schlüssel...wenn allerdings etwas verschlüsselt ist dann wünscht man sich das es eben nicht jeder lesen kann...das schützt bspw. browsergames gegen Cheater... -
fatfox schrieb:
wenn allerdings etwas verschlüsselt ist dann wünscht man sich das es eben nicht jeder lesen kann...das schützt bspw. browsergames gegen Cheater...
Ich hab die Server Daten auf mein PC und will es mit nen freund und meiner Freundin auf localhost zocken will aber noch nen paar sachen ändern dafür muss ich an denn xml Daten kommen
Ich uploade nicht die ganzen Server Daten wegen dem Urheberrechts scheiß... das sind nur einzelne .xml Daten und andere Dtaen die auf diese zugreifen
virustotal
https://www.virustotal.com/url/ccc6a59e3ad6e4d70d6a45afd0094abdc940279e4bb9ddb2b250586b5daec51b/analysis/1335469936/
Download
http://www.mediafire.com/?0ofqcfti1uj5k39
Beitrag zuletzt geändert: 26.4.2012 21:51:33 von senshi-network -
senshi-network schrieb:
Also die Zeile die dich interessieren könnte:
fatfox schrieb:
wenn allerdings etwas verschlüsselt ist dann wünscht man sich das es eben nicht jeder lesen kann...das schützt bspw. browsergames gegen Cheater...
Ich hab die Server Daten auf mein PC und will es mit nen freund und meiner Freundin auf localhost zocken will aber noch nen paar sachen ändern dafür muss ich an denn xml Daten kommenreturn csFunction.CreateCompressXml(context, result, "QuestList", true);
Du musst jetzt nur noch die Definition dieser Funktion finden, dann hast du alles was du brauchst...
Beitrag zuletzt geändert: 26.4.2012 22:07:35 von hackyourlife -
hackyourlife schrieb:
senshi-network schrieb:
Also die Zeile die dich interessieren könnte:
fatfox schrieb:
wenn allerdings etwas verschlüsselt ist dann wünscht man sich das es eben nicht jeder lesen kann...das schützt bspw. browsergames gegen Cheater...
Ich hab die Server Daten auf mein PC und will es mit nen freund und meiner Freundin auf localhost zocken will aber noch nen paar sachen ändern dafür muss ich an denn xml Daten kommenreturn csFunction.CreateCompressXml(context, result, "QuestList", true);
was muss ich da jetzt machen ^^ kann kein c# xD -
senshi-network schrieb:
Such in den .cs-Dateien eine Zeile, die auf die Art wie das anfängt:
was muss ich da jetzt machen ^^ kann kein c# xDpublic void CreateCompressXml(irgendwas) ...
-
hackyourlife schrieb:
senshi-network schrieb:
Such in den .cs-Dateien eine Zeile, die auf die Art wie das anfängt:
was muss ich da jetzt machen ^^ kann kein c# xDpublic void CreateCompressXml(irgendwas) ...
public void ProcessRequest(HttpContext context)
hab ich gefunden
Beitrag zuletzt geändert: 26.4.2012 22:54:58 von senshi-network -
Die Funktion nach der du suchen solltest muss in etwa so aussehen "public void CreateCompressXml()" nur was innerhalb der Klammern steht ist noch nicht bekannt. Zumindest eine Überlagerung hat aber 4 Parameter d.h. 4 Abschnitte jeweils durch Beistriche getrennt.
-
wasp123 schrieb:
Die Funktion nach der du suchen solltest muss in etwa so aussehen "public void CreateCompressXml()" nur was innerhalb der Klammern steht ist noch nicht bekannt. Zumindest eine Überlagerung hat aber 4 Parameter d.h. 4 Abschnitte jeweils durch Beistriche getrennt.
ach danke also muss ich jetzt alle Daten durchsuchen
Beitrag zuletzt geändert: 27.4.2012 0:00:56 von senshi-network -
senshi-network schrieb:
Wenn du den Code dann noch postest können wir dir einen Decoder für deine XML-Dateien schreiben... (Code = Alles zwischen den
wasp123 schrieb:
Die Funktion nach der du suchen solltest muss in etwa so aussehen "public void CreateCompressXml()" nur was innerhalb der Klammern steht ist noch nicht bekannt. Zumindest eine Überlagerung hat aber 4 Parameter d.h. 4 Abschnitte jeweils durch Beistriche getrennt.
ach danke also muss ich jetzt alle Daten durchsuchen
und{
)}
-
kann das auch in swf daten versteckt sein?
edit
das hab ich hier gefunden
C:\DDTank\Request\BallList.ashx.cs (1 hits)
Line 70: return csFunction.CreateCompressXml(context, result, "BallList", true);
C:\DDTank\Request\ActiveList.ashx.cs (1 hits)
Line 68: return csFunction.CreateCompressXml(context, result, "ActiveList", true);
C:\DDTank\Request\ConsortiaLevelList.ashx.cs (1 hits)
Line 60: return csFunction.CreateCompressXml(context, result, "ConsortiaLevelList", true);
C:\DDTank\Request\csFunction.cs (2 hits)
Line 195: return csFunction.CreateCompressXml(result, file, true);
Line 247: return csFunction.CreateCompressXml(result, file, true);
C:\DDTank\Request\DailyAwardList.ashx.cs (1 hits)
Line 62: return csFunction.CreateCompressXml(context, result, "DailyAwardList", true);
C:\DDTank\Request\ItemStrengthenList.ashx.cs (1 hits)
Line 61: return csFunction.CreateCompressXml(context, result, "ItemStrengthenList", true);
C:\DDTank\Request\LoadItemsCategory.ashx.cs (1 hits)
Line 60: return csFunction.CreateCompressXml(context, result, "LoadItemsCategory", true);
C:\DDTank\Request\LoadMapsItems.ashx.cs (1 hits)
Line 76: return csFunction.CreateCompressXml(context, result, "LoadMapsItems", true);
C:\DDTank\Request\LoadPVEItems.ashx.cs (1 hits)
Line 65: return csFunction.CreateCompressXml(context, result, "LoadPVEItems", true);
C:\DDTank\Request\MapServerList.ashx.cs (1 hits)
Line 62: return csFunction.CreateCompressXml(context, result, "MapServerList", true);
C:\DDTank\Request\NPCInfoList.ashx.cs (1 hits)
Line 61: return csFunction.CreateCompressXml(context, result, "NPCInfoList", true);
C:\DDTank\Request\QuestList.ashx.cs (1 hits)
Line 87: return csFunction.CreateCompressXml(context, result, "QuestList", true);
C:\DDTank\Request\ShopItemList.ashx.cs (1 hits)
Line 65: return csFunction.CreateCompressXml(context, result, "ShopItemList", true);
C:\DDTank\Request\TemplateAllList.ashx.cs (1 hits)
Line 66: return csFunction.CreateCompressXml(context, result, "TemplateAlllist", true);
Inhalt der csFunction.cs
using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.IO; using Bussiness; using SqlDataProvider.Data; using Road.Flash; using log4net; using System.Reflection; namespace Tank.Request { public class csFunction { private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); public static string GetAdminIP { get { return ConfigurationSettings.AppSettings["AdminIP"]; } } public static bool ValidAdminIP(string ip) { string ips = GetAdminIP; if (string.IsNullOrEmpty(ips) || ips.Split('|').Contains(ip)) return true; return false; } #region SQLChar /// <summary> /// 防止SQL 注入试攻击 /// </summary> /// <param name="inputString">用户输入字符串</param> public static string ConvertSql(string inputString) { inputString = inputString.Trim().ToLower(); inputString = inputString.Replace("'", "''"); inputString = inputString.Replace(";--", ""); inputString = inputString.Replace("=", ""); inputString = inputString.Replace(" or", ""); inputString = inputString.Replace(" or ", ""); inputString = inputString.Replace(" and", ""); inputString = inputString.Replace("and ", ""); if (!SqlChar(inputString)) { inputString = ""; } return inputString; } private static string[] al = ";|and|1=1|exec|insert|select|delete|update|like|count|chr|mid|master|or|truncate|char|declare|join".Split('|'); public static bool SqlChar(string v) { if (v.Trim() != "") { foreach (string a in al) { if (v.IndexOf(a + " ") > -1 || v.IndexOf(" " + a) > -1) { return false; } } } return true; } #endregion #region CompressXml public static string CreateCompressXml(HttpContext context, XElement result, string file, bool isCompress) { string path = context.Server.MapPath("~"); ; return CreateCompressXml(path, result, file, isCompress); } public static string CreateCompressXml(XElement result, string file, bool isCompress) { //string path = HttpContext.Current.Server.MapPath("~"); string path = StaticsMgr.CurrentPath; return CreateCompressXml(path, result, file, isCompress); } public static string CreateCompressXml(string path, XElement result, string file, bool isCompress) { try { file = file + ".xml"; path = Path.Combine(path , file); using (FileStream fs = new FileStream(path, FileMode.Create)) { if (isCompress) { using (BinaryWriter writer = new BinaryWriter(fs)) { writer.Write(StaticFunction.Compress(result.ToString(false))); } } else { using (StreamWriter wirter = new StreamWriter(fs)) { wirter.Write(result.ToString(false)); } } } return "Build:" + file + ",Success!"; } catch (Exception ex) { log.Error("CreateCompressXml " + file + " is fail!", ex); return "Build:" + file + ",Fail!"; } } #endregion #region Celeb public static string BuildCelebConsortia(string file, int order) { return BuildCelebConsortia(file, order, ""); } public static string BuildCelebConsortia(string file, int order, string fileNotCompress) { bool value = false; string message = "Fail!"; XElement result = new XElement("Result"); int total = 0; try { int page = 1; int size = 50; //int order = 10; int consortiaID = -1; string name = ""; int level = -1; using (ConsortiaBussiness db = new ConsortiaBussiness()) { ConsortiaInfo[] infos = db.GetConsortiaPage(page, size, ref total, order, name, consortiaID, level,-1); foreach (ConsortiaInfo info in infos) { XElement node = FlashUtils.CreateConsortiaInfo(info); if (info.ChairmanID != 0) { using (PlayerBussiness pb = new PlayerBussiness()) { PlayerInfo player = pb.GetUserSingleByUserID(info.ChairmanID); if (player != null) { node.Add(FlashUtils.CreateCelebInfo(player)); } } } result.Add(node); } value = true; message = "Success!"; } } catch (Exception ex) { log.Error(file + " is fail!", ex); } result.Add(new XAttribute("total", total)); result.Add(new XAttribute("value", value)); result.Add(new XAttribute("message", message)); result.Add(new XAttribute("date", System.DateTime.Today.ToString("yyyy-MM-dd"))); if (!string.IsNullOrEmpty(fileNotCompress)) { csFunction.CreateCompressXml(result, fileNotCompress, false); } return csFunction.CreateCompressXml(result, file, true); } public static string BuildCelebUsers(string file, int order) { return BuildCelebUsers(file, order, ""); } public static string BuildCelebUsers(string file, int order, string fileNotCompress) { bool value = false; string message = "Fail!"; XElement result = new XElement("Result"); try { int page = 1; int size = 50; //int order = 5; int userID = -1; int total = 0; bool resultValue = false; using (PlayerBussiness db = new PlayerBussiness()) { PlayerInfo[] infos = db.GetPlayerPage(page, size, ref total, order, userID, ref resultValue); if (resultValue) { foreach (PlayerInfo info in infos) { result.Add(FlashUtils.CreateCelebInfo(info)); } value = true; message = "Success!"; } } } catch (Exception ex) { log.Error(file + " is fail!", ex); } result.Add(new XAttribute("value", value)); result.Add(new XAttribute("message", message)); result.Add(new XAttribute("date", System.DateTime.Today.ToString("yyyy-MM-dd"))); //csFunction.CreateCompressXml(result, "CelebForUsers", false); if (!string.IsNullOrEmpty(fileNotCompress)) { csFunction.CreateCompressXml(result, fileNotCompress, false); } return csFunction.CreateCompressXml(result, file, true); } #endregion } }
Beitrag zuletzt geändert: 27.4.2012 13:25:44 von senshi-network -
senshi-network schrieb:
Du musst jez nach einer neuen Funktion suchen...
das hab ich hier gefunden
inCompress(string irgendwas)
StaticFunction
-
hackyourlife schrieb:
senshi-network schrieb:
Du musst jez nach einer neuen Funktion suchen...
das hab ich hier gefunden
inCompress(string irgendwas)
StaticFunction
da ist öfters Compress() enthalten aber ich glaube mal du meinst das ↓ ^^
public static byte[] Compress(byte[] src) { return Compress(src, 0, src.Length); }
Das hört sich so an als wenn die Datei damit entschlüsselt wird
public static string Uncompress(string str) { byte[] src = Encoding.UTF8.GetBytes(str); return Encoding.UTF8.GetString(Uncompress(src)); }
StaticFunction.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; using System.Configuration; using Road.Flash; using System.IO; using zlib; namespace Tank.Request { public class StaticFunction { public static RSACryptoServiceProvider RsaCryptor { get { string rsa = ConfigurationSettings.AppSettings["privateKey"]; RSACryptoServiceProvider _rsa = CryptoHelper.GetRSACrypto(rsa); return _rsa; } } #region 压缩字符串 public static byte[] Compress(string str) { byte[] src = Encoding.UTF8.GetBytes(str); return Compress(src); } /// <summary> /// Zip compress data /// </summary> /// <param name="src"></param> /// <returns></returns> public static byte[] Compress(byte[] src) { return Compress(src, 0, src.Length); } /// <summary> /// Zip compress data with offset and length. /// </summary> /// <param name="src"></param> /// <returns></returns> public static byte[] Compress(byte[] src, int offset, int length) { MemoryStream ms = new MemoryStream(); Stream s = new ZOutputStream(ms, 9); s.Write(src, offset, length); s.Close(); return (byte[])ms.ToArray(); } public static string Uncompress(string str) { byte[] src = Encoding.UTF8.GetBytes(str); return Encoding.UTF8.GetString(Uncompress(src)); } /// <summary> /// Zip uncompress data. /// </summary> /// <param name="src"></param> /// <returns></returns> public static byte[] Uncompress(byte[] src) { MemoryStream md = new MemoryStream(); Stream d = new ZOutputStream(md); d.Write(src, 0, src.Length); d.Close(); return (byte[])md.ToArray(); } #endregion } }
Beitrag zuletzt geändert: 27.4.2012 16:50:55 von senshi-network -
Hallo senshi-network,
nachdem Du den C#-Code hast, gehe ich davon aus, dass Du das auch kompilieren kannst. Soweit ich das sehen ist das nicht verschlüsselt sondern einfach mit Hilfe von zlib komprimiert. Die xml-Dateien sind also sowas ähnliches wie Zip-Dateien nur ohne den zugehörigen Dateiheader.
Du kannst folgendes versuchen:
Ersetze die Funktion Compress() durch:
Kompiliere den Code und starte das Spiel. Jetzt werden die vorhandenen XML-Dateien gelesen, dekomprimiert und beim Speichern unkomprimiert geschrieben. Nachdem Du das Spiel wieder beendet hast musst Du die Funktion Uncompress() so verändern, dass sie nichts macht:public static byte[] Compress(byte[] src, int offset, int length) { byte[] result = new byte[length]; Array.Copy(src, offset, result, 0, length); return result; }
Jetzt können die unkomprimierten Daten auch wieder gelesen werden.public static byte[] Uncompress(byte[] src) { return src; }
-
darkpandemic schrieb:
Hallo senshi-network,
nachdem Du den C#-Code hast, gehe ich davon aus, dass Du das auch kompilieren kannst. Soweit ich das sehen ist das nicht verschlüsselt sondern einfach mit Hilfe von zlib komprimiert. Die xml-Dateien sind also sowas ähnliches wie Zip-Dateien nur ohne den zugehörigen Dateiheader.
Du kannst folgendes versuchen:
Ersetze die Funktion Compress() durch:
Kompiliere den Code und starte das Spiel. Jetzt werden die vorhandenen XML-Dateien gelesen, dekomprimiert und beim Speichern unkomprimiert geschrieben. Nachdem Du das Spiel wieder beendet hast musst Du die Funktion Uncompress() so verändern, dass sie nichts macht:public static byte[] Compress(byte[] src, int offset, int length) { byte[] result = new byte[length]; Array.Copy(src, offset, result, 0, length); return result; }
Jetzt können die unkomprimierten Daten auch wieder gelesen werden.public static byte[] Uncompress(byte[] src) { return src; }
ändert sich nichts
und nein ich kanns nicht kompilieren
Beitrag zuletzt geändert: 27.4.2012 19:08:06 von senshi-network -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage