Update packet sniffer code

This commit is contained in:
Senko-san 2020-12-31 14:17:18 +01:00
parent e172992d40
commit 7c450d5745

View File

@ -46,10 +46,11 @@ To be able to make patches, we deobfuscate the assembly. But since [de4dot](http
6. Cut-paste `Assembly-CSharp-cleaned-cleaned.dll` to `%gamedir%/EscapeFromTarkov_Data/Managed/`.
7. Open `Assembly-CSharp-cleaned-cleaned.dll` in dnSpy.
8. dnSpy > File > Save Module.
9. Apply dumper patch (appendix 1.3).
10. Apply ssl patch (appendix 1.4).
11. Apply battleye patch (appendix 1.5).
12. dnSpy > File > Save Module.
9. Apply request dumper patch (appendix 1.3).
10. Apply response dumper patch (appendix 1.4).
11. Apply ssl patch (appendix 1.5).
12. Apply battleye patch (appendix 1.6).
13. dnSpy > File > Save Module.
## Backup
@ -92,53 +93,74 @@ The data does contain sensitive information such as you account id, so be carefu
## Appendix 1: Code
All code is based on Escape From Tarkov 0.12.8.9819.
All code is based on Escape From Tarkov 0.12.9.10519.
### Deobfuscation method in assembly
### 1.1. Deobfuscation method in assembly
```csharp
// Token: 0x0600C93A RID: 51514 RVA: 0x0012038D File Offset: 0x0011E58D
Class2019.smethod_0()
// Token: 0x0600CDDD RID: 52701 RVA: 0x00400CD0 File Offset: 0x003FEED0
Class2045.smethod_0()
{
return (string)((Hashtable)AppDomain.CurrentDomain.GetData(Class2019.string_0))[int_0];
}
```
### Deobfuscation command
### 1.2. Deobfuscation command
```powershell
de4dot-x64.exe --un-name "!^<>[a-z0-9]$&!^<>[a-z0-9]__.$&![A-Z][A-Z]\$<>.$&^[a-zA-Z_<{$][a-zA-Z_0-9<>{}$.`-]*$" "Assembly-CSharp-cleaned.dll" --strtyp delegate --strtok 0x0600C93A
de4dot-x64.exe --un-name "!^<>[a-z0-9]$&!^<>[a-z0-9]__.*$&![A-Z][A-Z]\$<>.*$&^[a-zA-Z_<{$][a-zA-Z_0-9<>{}$.`-]*$" "Assembly-CSharp-cleaned.dll" --strtyp delegate --strtok 0x0600CDD7
```
### Dumper patch
### 1.3. Request dumper patch
```csharp
Class157.method_10()
Class160.method_1()
{
// add this at the end, before the method returns
Uri urlUri = new Uri(url);
string path = (System.IO.Directory.GetCurrentDirectory() + "\\HTTP_DATA\\").Replace("\\\\", "\\");
// add this at the end
var uri = new Uri(url);
var path = (System.IO.Directory.GetCurrentDirectory() + "\\HTTP_DATA\\").Replace("\\\\", "\\");
var file = uri.LocalPath.Replace('/', '.').Remove(0, 1);
var time = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
if (System.IO.Directory.CreateDirectory(path).Exists && obj != null)
{
System.IO.File.WriteAllText($@"{path}req.{file}_{time}.json", text);
}
}
```
### 1.4. Response dumper patch
```csharp
Class160.method_10()
{
// add this at the end, before "return value;"
var uri = new Uri(url);
var path = (System.IO.Directory.GetCurrentDirectory() + "\\HTTP_DATA\\").Replace("\\\\", "\\");
var file = uri.LocalPath.Replace('/', '.').Remove(0, 1);
var time = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
if (System.IO.Directory.CreateDirectory(path).Exists)
{
System.IO.File.WriteAllText(path + urlUri.LocalPath.Replace('/', '.') + ".json", value);
System.IO.File.WriteAllText($@"{path}resp.{file}_{time}.json", value);
}
}
```
### SSL cert patch
### 1.5. SSL cert patch
```csharp
Class505.ValidateCertificate()
Class511.ValidateCertificate()
{
// replace the method body content with this
return true;
}
```
### Battleye patch
### 1.6. Battleye patch
```csharp
Class784.RunValidation()
Class797.RunValidation()
{
// replace the method body content with this
this.Succeed = true;