Пример #1
0
        /// <summary>
        ///     Extracts the key and initialization vector to decrypt the Data Center from the game client, then unpacks the Data
        ///     Center.
        /// </summary>
        /// <param name="path">The path to the Data Center file.</param>
        /// <param name="analyzer">The <see cref="GameClientAnalyzer"/> instance that will scan the client.</param>
        /// <param name="cancellationToken">
        ///     The token to monitor for cancellation requests. The default value is <see cref="CancellationToken.None" />.
        /// </param>
        /// <returns>
        ///     A task that represents the Data Center's loading. The task's <see cref="Task{T}.Result" /> contains the
        ///     unpacked Data Center.
        /// </returns>
        public static async Task <DataCenter> Load(
            string path,
            GameClientAnalyzer analyzer,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            var info = await analyzer.Analyze(cancellationToken);

            return(await Load(path, info.DataCenterKey, info.DataCenterIv, cancellationToken));
        }
Пример #2
0
 public InjectionEntryPoint(RemoteHooking.IContext context, string ipcChannelName)
 {
     gameClientAnalyzer = RemoteHooking.IpcConnectClient <GameClientAnalyzer>(ipcChannelName);
 }