- 确保C盘有70G的闲余空间
- 去到 AppxUtils 文件夹并执行 .\Get-AppxPackageExt SunriseBaseGame | .\Debug-AppxPackage -OnLaunch “LOCATION OF YOUR X64DBG EXE”
- 启动地平线4然后一旦出现x64dbg中的反汇编, 按暂停按钮 (如果您太慢,整个方法可能行不通), 然后按F2设置断点
- 运行 uwpdumper dll 和 threadject exe 在同一文件夹内 并打开 powershell/cmd 窗口在相同文件夹内
- 启动 processhacker, 点击地平线4进程记下进程id关于 the main thread down (主线程是起始地址所在的线程 ntdll.dll!DbgUiRemoteBreakin)
- 运行 threadject 像这样: threadject.exe 进程id 线程id (例如: “threadject.exe 1234 5678” 1234 是地平线4的进程id 而 5678 是主要的线程id)
- 返回到x64dbg and double-click on the RIP to confirm that it has changed to the manualmap-dll loader.
- 按下F9, 确认x64dbg告诉您该进程正在运行。 现在您应该看到转录文件开始出现在 %localappdata%\Packages\Microsoft.SunriseBaseGame_8wekyb3d8bbwe\AC\DUMP
- 等待直到x64Dbg停止(左下角的黄色指示器)并且磁盘活动停止 (那可能要花几分钟,毕竟fh4是一个非常大的游戏). 恭喜,您成功地自己转录了Forza Horizon 4
- 返回到 Appxutils 目录并输入 .\Get-AppxPackageExt SunriseBaseGame | .\Debug-AppxPackage -Off 去移除 x64dbg hook 去玩游戏像正常一样
class VehicleInfo_T
{
UIntPtr Unk1;//0x0
float Gravity-重量(t); //0x8
float Downforce-压力(t); //0xC
float VelocityX轴速度(M/S); // 0x20
float VelocityY轴速度(M/S); // 0x24
float VelocityZ轴速度(M/S); // 0x28
float AngularVelocityX轴旋转速度(M/S); // 0x30
float AngularVelocityY轴旋转速度(M/S); // 0x34
float AngularVelocityZ轴旋转速度(M/S); // 0x38
float PositionX轴坐标(M); // 0x40
float PositionY轴坐标(M); // 0x44
float PositionZ轴坐标(M); // 0x48
float X-Yaw角度; // 0xE0
float Y-Roll角度; // 0xE4
float Z-Pitch角度; // 0xE8
float X-Yaw角度; // 0xF0
float Y-Roll角度; // 0xF4
float Z-Pitch角度; // 0xF8
float X-Yaw角度; // 0x100
float Y-Roll角度; // 0x104
float Z-Pitch角度; // 0x108
float X-Yaw角度; // 0x150
float Y-Roll角度; // 0x154
float Z-Pitch角度; // 0x158
float X-Yaw角度; // 0x160
float Y-Roll角度; // 0x164
float Z-Pitch角度; // 0x168
float X-Yaw角度; // 0x170
float Y-Roll角度; // 0x174
float Z-Pitch角度; // 0x178
float X实体相对坐标; // 0x190
float Y实体相对坐标; // 0x194
float Z实体相对坐标; // 0x198
float Xidk; // 0x1A0
float Yidk; // 0x1A4
float Zidk; // 0x1A8
float Xidk; // 0x1B0
float Yidk; // 0x1B4
float Zidk; // 0x1B8
float Xidk; // 0x1C0
float Yidk; // 0x1C4
float Zidk; // 0x1C8
//0x7DC
float FrontLeftTireSpeed-左前轮胎转速; // 0x1DBC
float 轮胎方向// +2C
float idk; // +0x30
//0x15E0
float FrontRightTireSpeed-右前轮胎转速; // 0x339C
float 轮胎方向// +2C
float idk; // +0x30
//0x15E0
float RearRightTireSpeed-右后轮胎转速; // 0x497C
float 轮胎方向// +2C
float idk; // +0x30
//0x15E0
float RearLeftTireSpeed-左后轮胎转速; // 0x5F5C
float 轮胎方向// +2C
float idk; // +0x30
int CarOrdinal-当前车辆ID; //0x10ECC
}