diff --git a/GamestatsBase/GamestatsHandler.cs b/GamestatsBase/GamestatsHandler.cs index 7331daa..55e49b1 100644 --- a/GamestatsBase/GamestatsHandler.cs +++ b/GamestatsBase/GamestatsHandler.cs @@ -392,7 +392,7 @@ namespace GamestatsBase /// Version1, /// - /// Response contains a salted hash at the end, in hex coded ASCII. + /// Response contains a 40-byte salted hash at the end, in hex coded ASCII. /// Version2 } diff --git a/Sample/Sample.csproj b/Sample/Sample.csproj index cfce990..ba91b78 100644 --- a/Sample/Sample.csproj +++ b/Sample/Sample.csproj @@ -65,6 +65,15 @@ + + + + + + + + + Web.config @@ -84,6 +93,33 @@ Global.asax + + setProfile.ashx + + + rescueCheck.ashx + + + rescueEntry.ashx + + + rescueExist.ashx + + + rescueComplete.ashx + + + rescueList.ashx + + + rescueReceive.ashx + + + rescueRegist.ashx + + + rescueThanks.ashx + setProfile.ashx diff --git a/Sample/pokedngnwii/web/common/setProfile.ashx b/Sample/pokedngnwii/web/common/setProfile.ashx new file mode 100644 index 0000000..3f0ea00 --- /dev/null +++ b/Sample/pokedngnwii/web/common/setProfile.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="setProfile.ashx.cs" Class="Sample.pokedngnwii.web.common.setProfile" %> diff --git a/Sample/pokedngnwii/web/common/setProfile.ashx.cs b/Sample/pokedngnwii/web/common/setProfile.ashx.cs new file mode 100644 index 0000000..0c3849e --- /dev/null +++ b/Sample/pokedngnwii/web/common/setProfile.ashx.cs @@ -0,0 +1,28 @@ +using GamestatsBase; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Web; + +namespace Sample.pokedngnwii.web.common +{ + /// + /// Summary description for setProfile + /// + public class setProfile : GamestatsHandler + { + public setProfile() : base("zjzrhOVXZKLHNspYpGoR0001c7850000620b0000000820556356pokedngnwii", + GamestatsRequestVersions.Version2, GamestatsResponseVersions.Version2) + { + + } + + public override void ProcessGamestatsRequest(byte[] request, MemoryStream response, string url, int pid, HttpContext context, GamestatsSession session) + { + response.Write(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + 0, 8); + + } + } +} diff --git a/Sample/pokedngnwii/web/rescue/rescueCheck.ashx b/Sample/pokedngnwii/web/rescue/rescueCheck.ashx new file mode 100644 index 0000000..8e898f7 --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueCheck.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="rescueCheck.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueCheck" %> diff --git a/Sample/pokedngnwii/web/rescue/rescueCheck.ashx.cs b/Sample/pokedngnwii/web/rescue/rescueCheck.ashx.cs new file mode 100644 index 0000000..a1205ac --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueCheck.ashx.cs @@ -0,0 +1,73 @@ +using GamestatsBase; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Web; + +namespace Sample.pokedngnwii.web.rescue +{ + /// + /// Summary description for rescueCheck + /// + public class rescueCheck : GamestatsHandler + { + + public rescueCheck() : base("zjzrhOVXZKLHNspYpGoR0001c7850000620b0000000820556356pokedngnwii", + GamestatsRequestVersions.Version2, GamestatsResponseVersions.Version2) + { + + } + + public override void ProcessGamestatsRequest(byte[] request, MemoryStream response, string url, int pid, HttpContext context, GamestatsSession session) + { + // replay response from Receiving a Random A-OK Mail And Sending a Random Thank You Mail.pcapng + // request data: + // 0000: 8b9ca41c0c000000 1ca49c8b00000000 + // 0010: 0001b14b + // note: the request data seems to share its format with rescueEntry + + response.Write(new byte[] { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, + 0xa9, 0x9f, 0x50, 0x07, 0x99, 0xcc, 0x61, 0xab, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xce, 0x6a, 0x33, 0x0a, 0x15, 0x85, 0x89, 0x88, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xdd, 0x30, 0xb1, 0x30, 0xe2, 0x30, 0xf3, 0x30, + 0xba, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x63, 0x81, 0x0d, 0x30, 0x0b, 0x00, 0x20, 0x00, + 0x16, 0x30, 0x32, 0x18, 0x18, 0x0e, 0x1f, 0x00, + 0x18, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x4a, 0x13, 0x40, 0x65, + 0x03, 0x28, 0x5e, 0x00, 0x00, 0x00, 0x20, 0x1c, + 0x46, 0x1d, 0x86, 0x1f, 0xe6, 0x1a, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x24, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x30, 0x6f, 0x30, 0x4c, 0x30, 0x82, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x30, 0x82, 0x30, 0x4c, + 0x30, 0x6f, 0x30, 0x88, 0x30, 0x8d, 0x30, 0x57, + 0x30, 0x4f, 0x30, 0x4d, 0x30, 0x85, 0x30, 0x46, + 0x30, 0x58, 0x30, 0x87, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x63, 0x62, 0x31, 0x64, + 0x30, 0x31, 0x31, 0x38, 0x61, 0x38, 0x63, 0x34, + 0x31, 0x35, 0x65, 0x30, 0x31, 0x34, 0x64, 0x38, + 0x62, 0x37, 0x35, 0x66, 0x32, 0x33, 0x38, 0x38, + 0x32, 0x66, 0x37, 0x33, 0x31, 0x31, 0x63, 0x33, + 0x32, 0x30, 0x31, 0x39 }, + 0, 300); + } + } +} \ No newline at end of file diff --git a/Sample/pokedngnwii/web/rescue/rescueComplete.ashx b/Sample/pokedngnwii/web/rescue/rescueComplete.ashx new file mode 100644 index 0000000..bf7fe1b --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueComplete.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="rescueComplete.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueComplete" %> diff --git a/Sample/pokedngnwii/web/rescue/rescueComplete.ashx.cs b/Sample/pokedngnwii/web/rescue/rescueComplete.ashx.cs new file mode 100644 index 0000000..cdbc317 --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueComplete.ashx.cs @@ -0,0 +1,46 @@ +using GamestatsBase; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Web; + +namespace Sample.pokedngnwii.web.rescue +{ + /// + /// Summary description for rescueComplete + /// + public class rescueComplete : GamestatsHandler + { + public rescueComplete() : base("zjzrhOVXZKLHNspYpGoR0001c7850000620b0000000820556356pokedngnwii", + GamestatsRequestVersions.Version2, GamestatsResponseVersions.Version2) + { + + } + + public override void ProcessGamestatsRequest(byte[] request, MemoryStream response, string url, int pid, HttpContext context, GamestatsSession session) + { + // replay response from A-OK Mission.pcapng + // request data: + // 0000: 8b9ca41cd4000000 1ca49c8b00000000 + // 0010: 0001b14ace6a330a 41f73da200000000 + // 0020: 0000000000000000 0000000000490000 + // 0030: 0000000000000000 0000000000000000 + // 0040: 0000000000000000 0000000000000000 + // 0050: 0000000000000000 0000000000000000 + // 0060: 0000000000000000 0000000000000000 + // 0070: 306f306f306f306f 306f306f306f304c + // 0080: 304c304c304c304c 304c304c30823082 + // 0090: 30823082306f306f 306f306f306f306f + // 00a0: 306f306f304c304c 304c304c304c304c + // 00b0: 304c304c30823082 3082308230823082 + // 00c0: 30823082304c304c 304c304c304c304c + // 00d0: 304c304c306f306f 306f306f + + response.Write(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00 }, + 0, 12); + + } + } +} diff --git a/Sample/pokedngnwii/web/rescue/rescueEntry.ashx b/Sample/pokedngnwii/web/rescue/rescueEntry.ashx new file mode 100644 index 0000000..5c2152f --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueEntry.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="rescueEntry.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueEntry" %> diff --git a/Sample/pokedngnwii/web/rescue/rescueEntry.ashx.cs b/Sample/pokedngnwii/web/rescue/rescueEntry.ashx.cs new file mode 100644 index 0000000..d1d16ac --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueEntry.ashx.cs @@ -0,0 +1,58 @@ +using GamestatsBase; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Web; + +namespace Sample.pokedngnwii.web.rescue +{ + /// + /// Summary description for rescueEntry + /// + public class rescueEntry : GamestatsHandler + { + public rescueEntry() : base("zjzrhOVXZKLHNspYpGoR0001c7850000620b0000000820556356pokedngnwii", + GamestatsRequestVersions.Version2, GamestatsResponseVersions.Version2) + { + + } + + public override void ProcessGamestatsRequest(byte[] request, MemoryStream response, string url, int pid, HttpContext context, GamestatsSession session) + { + // replay response from Random Mission.pcapng + // request data: + // 0000: 8b9ca41c0c000000 1ca49c8b00000000 + // 0010: 0001b14a + + response.Write(new byte[] { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xa9, 0x9f, 0x50, 0x07, 0x3e, 0x86, 0xf3, 0x55, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xdd, 0x30, 0xb1, 0x30, 0xe2, 0x30, 0xf3, 0x30, + 0xba, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x5b, 0x64, 0x87, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + 0, 200); + } + } +} diff --git a/Sample/pokedngnwii/web/rescue/rescueExist.ashx b/Sample/pokedngnwii/web/rescue/rescueExist.ashx new file mode 100644 index 0000000..6f644f8 --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueExist.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="rescueExist.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueExist" %> diff --git a/Sample/pokedngnwii/web/rescue/rescueExist.ashx.cs b/Sample/pokedngnwii/web/rescue/rescueExist.ashx.cs new file mode 100644 index 0000000..5e057c9 --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueExist.ashx.cs @@ -0,0 +1,78 @@ +using GamestatsBase; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Web; + +namespace Sample.pokedngnwii.web.rescue +{ + /// + /// Summary description for rescueExist + /// + public class rescueExist : GamestatsHandler + { + + public rescueExist() : base("zjzrhOVXZKLHNspYpGoR0001c7850000620b0000000820556356pokedngnwii", + GamestatsRequestVersions.Version2, GamestatsResponseVersions.Version2) + { + + } + + public override void ProcessGamestatsRequest(byte[] request, MemoryStream response, string url, int pid, HttpContext context, GamestatsSession session) + { + if (false) + { + // replay response from Invalid Code for Rescue Mission.pcapng + // request data: + // 0000: 8b9ca41c0c000000 1ca49c8b00000000 + // 0010: 0001b197 + // note: 1b197 corresponds to the inputted rescue ID of 110999 in big endian. + + response.Write(new byte[] { 0x00, 0x00, 0x00, 0x0a }, + 0, 4); + StreamWriter sw = new StreamWriter(response, Encoding.UTF8); + sw.Write(":(unknown error:'pokemonSwarm' is null or not an object."); + sw.Flush(); + } + else + { + // replay response from CodeNotWorking.pcapng + // request data: + // 0000: 8b9ca41c0c000000 1ca49c8b00000000 + // 0010: 0001b142 + + response.Write(new byte[] + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xa9, 0x9f, 0x50, 0x07, 0xed, 0xa4, 0x96, 0xf7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xdd, 0x30, 0xb1, 0x30, 0xe2, 0x30, 0xf3, 0x30, + 0xba, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x0d, 0x48, 0xa0, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x30, 0x4c, 0x30, 0x82, 0x30, 0x6f, 0x30, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x6f, + 0x30, 0x4c, 0x30, 0x00, 0x30, 0x6f, 0x30, 0x6f, + 0x30, 0x82, 0x30, 0x4c, 0x30, 0x82, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, 0, 208); + } + } + } +} diff --git a/Sample/pokedngnwii/web/rescue/rescueList.ashx b/Sample/pokedngnwii/web/rescue/rescueList.ashx new file mode 100644 index 0000000..a555ff6 --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueList.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="rescueList.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueList" %> diff --git a/Sample/pokedngnwii/web/rescue/rescueList.ashx.cs b/Sample/pokedngnwii/web/rescue/rescueList.ashx.cs new file mode 100644 index 0000000..06d013c --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueList.ashx.cs @@ -0,0 +1,62 @@ +using GamestatsBase; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Web; + +namespace Sample.pokedngnwii.web.rescue +{ + /// + /// Summary description for rescueList + /// + public class rescueList : GamestatsHandler + { + + public rescueList() : base("zjzrhOVXZKLHNspYpGoR0001c7850000620b0000000820556356pokedngnwii", + GamestatsRequestVersions.Version2, GamestatsResponseVersions.Version2) + { + + } + + public override void ProcessGamestatsRequest(byte[] request, MemoryStream response, string url, int pid, HttpContext context, GamestatsSession session) + { + // replay response from Random Mission.pcapng + // request data: + // 0000: 8b9ca41c20000000 1ca49c8b00000000 + // 0010: 000000180000000c 0000000600000000 + // 0020: 0000002000000001 + + response.Write(new byte[] { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xb1, 0x4a, 0xa9, 0x9f, 0x50, 0x07, + 0x3e, 0x86, 0xf3, 0x55, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xdd, 0x30, 0xb1, 0x30, + 0xe2, 0x30, 0xf3, 0x30, 0xba, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x5b, 0x64, 0x87, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 }, + 0, 212); + } + } +} diff --git a/Sample/pokedngnwii/web/rescue/rescueReceive.ashx b/Sample/pokedngnwii/web/rescue/rescueReceive.ashx new file mode 100644 index 0000000..b3d76ee --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueReceive.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="rescueReceive.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueReceive" %> diff --git a/Sample/pokedngnwii/web/rescue/rescueReceive.ashx.cs b/Sample/pokedngnwii/web/rescue/rescueReceive.ashx.cs new file mode 100644 index 0000000..b9a0875 --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueReceive.ashx.cs @@ -0,0 +1,58 @@ +using GamestatsBase; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Web; + +namespace Sample.pokedngnwii.web.rescue +{ + /// + /// Summary description for rescueReceive + /// + public class rescueReceive : GamestatsHandler + { + + public rescueReceive() : base("zjzrhOVXZKLHNspYpGoR0001c7850000620b0000000820556356pokedngnwii", + GamestatsRequestVersions.Version2, GamestatsResponseVersions.Version2) + { + + } + + public override void ProcessGamestatsRequest(byte[] request, MemoryStream response, string url, int pid, HttpContext context, GamestatsSession session) + { + // replay response from Random Mission.pcapng + // request data: + // 0000: 8b9ca41c0c000000 1ca49c8b00000000 + // 0010: 0001b14f + // note: the request data seems to share its format with rescueEntry + + response.Write(new byte[] { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0xa9, 0x9f, 0x50, 0x07, 0xe3, 0x53, 0x95, 0xf5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7a, 0x00, 0x00, 0xff, 0x34, 0xff, 0x39, + 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, + 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, + 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, + 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x64, 0x63, 0x66, 0x39, 0x61, 0x35, 0x35, + 0x66, 0x63, 0x38, 0x32, 0x32, 0x33, 0x61, 0x32, + 0x30, 0x30, 0x33, 0x63, 0x65, 0x39, 0x61, 0x39, + 0x36, 0x38, 0x38, 0x64, 0x32, 0x33, 0x32, 0x64, + 0x66, 0x65, 0x38, 0x33, 0x32, 0x38, 0x38, 0x64 }, + 0, 184); + } + } +} \ No newline at end of file diff --git a/Sample/pokedngnwii/web/rescue/rescueRegist.ashx b/Sample/pokedngnwii/web/rescue/rescueRegist.ashx new file mode 100644 index 0000000..3d6c414 --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueRegist.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="rescueRegist.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueRegist" %> diff --git a/Sample/pokedngnwii/web/rescue/rescueRegist.ashx.cs b/Sample/pokedngnwii/web/rescue/rescueRegist.ashx.cs new file mode 100644 index 0000000..b76bc94 --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueRegist.ashx.cs @@ -0,0 +1,45 @@ +using GamestatsBase; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Web; + +namespace Sample.pokedngnwii.web.rescue +{ + /// + /// Summary description for rescueRegist + /// + public class rescueRegist : GamestatsHandler + { + public rescueRegist() : base("zjzrhOVXZKLHNspYpGoR0001c7850000620b0000000820556356pokedngnwii", + GamestatsRequestVersions.Version2, GamestatsResponseVersions.Version2) + { + + } + + public override void ProcessGamestatsRequest(byte[] request, MemoryStream response, string url, int pid, HttpContext context, GamestatsSession session) + { + // replay response from Sending Friend Mission Request.pcapng + // request data: + // 0000: 8b9ca41cac000000 1ca49c8bce6a330a + // 0010: 24b4a64800000000 0000000000000000 + // 0020: 0000000000000044 0000000100b3979b + // 0030: 0000000100000000 0000000000000000 + // 0040: 0000000000000000 0000000000000000 + // 0050: 0000000000000000 0000000000000000 + // 0060: 0000000000000000 0000000000000000 + // 0070: 0000000000000000 0000000000000000 + // 0080: 0000000000000000 0000000000000000 + // 0090: 0000000000000000 0000000000000000 + // 00a0: 0000000000000000 0000000000000000 + // 00b0: 00000000 + + response.Write(new byte[] { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xb1, 0x4e }, + 0, 6); + } + } +} \ No newline at end of file diff --git a/Sample/pokedngnwii/web/rescue/rescueThanks.ashx b/Sample/pokedngnwii/web/rescue/rescueThanks.ashx new file mode 100644 index 0000000..abbe09c --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueThanks.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" CodeBehind="rescueThanks.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueThanks" %> diff --git a/Sample/pokedngnwii/web/rescue/rescueThanks.ashx.cs b/Sample/pokedngnwii/web/rescue/rescueThanks.ashx.cs new file mode 100644 index 0000000..20be9f7 --- /dev/null +++ b/Sample/pokedngnwii/web/rescue/rescueThanks.ashx.cs @@ -0,0 +1,40 @@ +using GamestatsBase; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Web; + +namespace Sample.pokedngnwii.web.rescue +{ + /// + /// Summary description for rescueThanks + /// + public class rescueThanks : GamestatsHandler + { + public rescueThanks() : base("zjzrhOVXZKLHNspYpGoR0001c7850000620b0000000820556356pokedngnwii", + GamestatsRequestVersions.Version2, GamestatsResponseVersions.Version2) + { + + } + + public override void ProcessGamestatsRequest(byte[] request, MemoryStream response, string url, int pid, HttpContext context, GamestatsSession session) + { + // replay response from Receiving a Random A-OK Mail And Sending a Random Thank You Mail.pcapng + // request data: + // 0000: 8b9ca41c7c000000 1ca49c8b00000000 + // 0010: 0001b14b0007000a 306f306e3067306e + // 0020: 30673092306e306b 0000000000000000 + // 0030: 0000000000000000 0000000030923092 + // 0040: 3092309230923092 3092309230923092 + // 0050: 3092309230923092 3092309230923092 + // 0060: 3092309230923092 3092309230923092 + // 0070: 3092309230923092 3092309230923092 + // 0080: 30923092 + + response.Write(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + 0, 6); + } + } +} \ No newline at end of file diff --git a/Sample/pokedungeonds/web/common/setProfile.ashx.cs b/Sample/pokedungeonds/web/common/setProfile.ashx.cs index ca3a70a..3bb32f3 100644 --- a/Sample/pokedungeonds/web/common/setProfile.ashx.cs +++ b/Sample/pokedungeonds/web/common/setProfile.ashx.cs @@ -25,4 +25,4 @@ namespace Sample.pokedungeonds.web.common } } -} \ No newline at end of file +}