Added a dummy replay response server for Mystery Dungeon Wii

This commit is contained in:
Greg Edwards
2020-03-08 00:15:59 -05:00
parent 421e4d7387
commit a37df883e7
21 changed files with 535 additions and 2 deletions

View File

@@ -392,7 +392,7 @@ namespace GamestatsBase
/// </summary>
Version1,
/// <summary>
/// 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.
/// </summary>
Version2
}

View File

@@ -65,6 +65,15 @@
<Content Include="pokedungeonds\web\common\setProfile.ashx" />
<Content Include="pokedungeonds\web\rescue\rescueList.ashx" />
<Content Include="pokedungeonds\web\rescue\rescueExist.ashx" />
<Content Include="pokedngnwii\web\common\setProfile.ashx" />
<Content Include="pokedngnwii\web\rescue\rescueComplete.ashx" />
<Content Include="pokedngnwii\web\rescue\rescueExist.ashx" />
<Content Include="pokedngnwii\web\rescue\rescueList.ashx" />
<Content Include="pokedngnwii\web\rescue\rescueEntry.ashx" />
<Content Include="pokedngnwii\web\rescue\rescueReceive.ashx" />
<Content Include="pokedngnwii\web\rescue\rescueCheck.ashx" />
<Content Include="pokedngnwii\web\rescue\rescueThanks.ashx" />
<Content Include="pokedngnwii\web\rescue\rescueRegist.ashx" />
<None Include="Properties\PublishProfiles\Public.pubxml" />
<None Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
@@ -84,6 +93,33 @@
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
<Compile Include="pokedngnwii\web\common\setProfile.ashx.cs">
<DependentUpon>setProfile.ashx</DependentUpon>
</Compile>
<Compile Include="pokedngnwii\web\rescue\rescueCheck.ashx.cs">
<DependentUpon>rescueCheck.ashx</DependentUpon>
</Compile>
<Compile Include="pokedngnwii\web\rescue\rescueEntry.ashx.cs">
<DependentUpon>rescueEntry.ashx</DependentUpon>
</Compile>
<Compile Include="pokedngnwii\web\rescue\rescueExist.ashx.cs">
<DependentUpon>rescueExist.ashx</DependentUpon>
</Compile>
<Compile Include="pokedngnwii\web\rescue\rescueComplete.ashx.cs">
<DependentUpon>rescueComplete.ashx</DependentUpon>
</Compile>
<Compile Include="pokedngnwii\web\rescue\rescueList.ashx.cs">
<DependentUpon>rescueList.ashx</DependentUpon>
</Compile>
<Compile Include="pokedngnwii\web\rescue\rescueReceive.ashx.cs">
<DependentUpon>rescueReceive.ashx</DependentUpon>
</Compile>
<Compile Include="pokedngnwii\web\rescue\rescueRegist.ashx.cs">
<DependentUpon>rescueRegist.ashx</DependentUpon>
</Compile>
<Compile Include="pokedngnwii\web\rescue\rescueThanks.ashx.cs">
<DependentUpon>rescueThanks.ashx</DependentUpon>
</Compile>
<Compile Include="pokedungeonds\web\common\setProfile.ashx.cs">
<DependentUpon>setProfile.ashx</DependentUpon>
</Compile>

View File

@@ -0,0 +1 @@
<%@ WebHandler Language="C#" CodeBehind="setProfile.ashx.cs" Class="Sample.pokedngnwii.web.common.setProfile" %>

View File

@@ -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>
/// Summary description for setProfile
/// </summary>
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);
}
}
}

View File

@@ -0,0 +1 @@
<%@ WebHandler Language="C#" CodeBehind="rescueCheck.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueCheck" %>

View File

@@ -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>
/// Summary description for rescueCheck
/// </summary>
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);
}
}
}

View File

@@ -0,0 +1 @@
<%@ WebHandler Language="C#" CodeBehind="rescueComplete.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueComplete" %>

View File

@@ -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>
/// Summary description for rescueComplete
/// </summary>
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);
}
}
}

View File

@@ -0,0 +1 @@
<%@ WebHandler Language="C#" CodeBehind="rescueEntry.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueEntry" %>

View File

@@ -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>
/// Summary description for rescueEntry
/// </summary>
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);
}
}
}

View File

@@ -0,0 +1 @@
<%@ WebHandler Language="C#" CodeBehind="rescueExist.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueExist" %>

View File

@@ -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>
/// Summary description for rescueExist
/// </summary>
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);
}
}
}
}

View File

@@ -0,0 +1 @@
<%@ WebHandler Language="C#" CodeBehind="rescueList.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueList" %>

View File

@@ -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>
/// Summary description for rescueList
/// </summary>
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);
}
}
}

View File

@@ -0,0 +1 @@
<%@ WebHandler Language="C#" CodeBehind="rescueReceive.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueReceive" %>

View File

@@ -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>
/// Summary description for rescueReceive
/// </summary>
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);
}
}
}

View File

@@ -0,0 +1 @@
<%@ WebHandler Language="C#" CodeBehind="rescueRegist.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueRegist" %>

View File

@@ -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>
/// Summary description for rescueRegist
/// </summary>
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);
}
}
}

View File

@@ -0,0 +1 @@
<%@ WebHandler Language="C#" CodeBehind="rescueThanks.ashx.cs" Class="Sample.pokedngnwii.web.rescue.rescueThanks" %>

View File

@@ -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>
/// Summary description for rescueThanks
/// </summary>
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);
}
}
}

View File

@@ -25,4 +25,4 @@ namespace Sample.pokedungeonds.web.common
}
}
}
}