Вызов функции объекта зная его адрес / создание объекта класса зная адрес класса

В общем я пропустил одну либу (il2cpp.so) через il2cppdumper, и нашел очень интересные классы: Класс 1:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using Il2CppDummyDll;
using UnityEngine;
using UnityEngine.UI;

// Token: 0x020000FF RID: 255
[Token(Token = "0x20000FF")]
public class GameWindow : MonoBehaviour
{
.... 
    // Token: 0x06000553 RID: 1363 RVA: 0x00002050 File Offset: 0x00000250
    [Token(Token = "0x6000553")]
    [Address(RVA = "0x88AE38", Offset = "0x88AE38", VA = "0x88AE38")]
    public void OnEnterSniperMode(bool enter)
    {
    }

    // Token: 0x06000554 RID: 1364 RVA: 0x00002050 File Offset: 0x00000250
    [Token(Token = "0x6000554")]
    [Address(RVA = "0x88AE58", Offset = "0x88AE58", VA = "0x88AE58")]
    public void ShowKickOutWindow()
    {
    }
.... 

Класс 2:

using System;
using Il2CppDummyDll;
using Photon.Pun;
using UnityEngine;

// Token: 0x0200011C RID: 284
[Token(Token = "0x200011C")]
public class KickOutWindow : MonoBehaviourPun
{
    // Token: 0x060005EA RID: 1514 RVA: 0x00002050 File Offset: 0x00000250
    [Token(Token = "0x60005EA")]
    [Address(RVA = "0x73DCAC", Offset = "0x73DCAC", VA = "0x73DCAC")]
    private void CreatePlayersList()
    {
    }

    // Token: 0x060005EB RID: 1515 RVA: 0x00002050 File Offset: 0x00000250
    [Token(Token = "0x60005EB")]
    [Address(RVA = "0x73E474", Offset = "0x73E474", VA = "0x73E474")]
    public void Show(bool show)
    {
    }

    // Token: 0x060005EC RID: 1516 RVA: 0x00002050 File Offset: 0x00000250
    [Token(Token = "0x60005EC")]
    [Address(RVA = "0x73E478", Offset = "0x73E478", VA = "0x73E478")]
    [Attribute(Name = "PunRPC", RVA = "0x44B308", Offset = "0x44B308")]
    private void KickPlayer(int viewId)
    {
    }

    // Token: 0x060005ED RID: 1517 RVA: 0x00002050 File Offset: 0x00000250
    [Token(Token = "0x60005ED")]
    [Address(RVA = "0x73E594", Offset = "0x73E594", VA = "0x73E594")]
    private void KickMe()
    {
    }

    // Token: 0x060005EE RID: 1518 RVA: 0x00002050 File Offset: 0x00000250
    [Token(Token = "0x60005EE")]
    [Address(RVA = "0x73E5F4", Offset = "0x73E5F4", VA = "0x73E5F4")]
    public KickOutWindow()
    {
    }

    // Token: 0x040007B7 RID: 1975
    [Token(Token = "0x40007B7")]
    [FieldOffset(Offset = "0x20")]
    public Transform rowsContainer;

    // Token: 0x040007B8 RID: 1976
    [Token(Token = "0x40007B8")]
    [FieldOffset(Offset = "0x28")]
    [SerializeField]
    private GameObject window;

    // Token: 0x040007B9 RID: 1977
    [Token(Token = "0x40007B9")]
    [FieldOffset(Offset = "0x30")]
    [SerializeField]
    private GameObject rowPrefab;

    // Token: 0x040007BA RID: 1978
    [Token(Token = "0x40007BA")]
    [FieldOffset(Offset = "0x38")]
    [SerializeField]
    private GameObject kickedMeAlert;

    // Token: 0x0200011D RID: 285
    [Token(Token = "0x200011D")]
    [Attribute(Name = "CompilerGeneratedAttribute", RVA = "0x443E9C", Offset = "0x443E9C")]
    private sealed class <>c__DisplayClass4_0
    {
        // Token: 0x060005EF RID: 1519 RVA: 0x00002050 File Offset: 0x00000250
        [Token(Token = "0x60005EF")]
        [Address(RVA = "0x60D1F8", Offset = "0x60D1F8", VA = "0x60D1F8")]
        public <>c__DisplayClass4_0()
        {
        }

        // Token: 0x060005F0 RID: 1520 RVA: 0x00002050 File Offset: 0x00000250
        [Token(Token = "0x60005F0")]
        [Address(RVA = "0x60D200", Offset = "0x60D200", VA = "0x60D200")]
        internal void <CreatePlayersList>b__1()
        {
        }

        // Token: 0x040007BB RID: 1979
        [Token(Token = "0x40007BB")]
        [FieldOffset(Offset = "0x10")]
        public int p;

        // Token: 0x040007BC RID: 1980
        [Token(Token = "0x40007BC")]
        [FieldOffset(Offset = "0x18")]
        public KickOutWindow <>4__this;
    }

    // Token: 0x0200011E RID: 286
    [Token(Token = "0x200011E")]
    [Attribute(Name = "CompilerGeneratedAttribute", RVA = "0x443EAC", Offset = "0x443EAC")]
    [System.Serializable]
    private sealed class <>c
    {
        // Token: 0x060005F2 RID: 1522 RVA: 0x00002050 File Offset: 0x00000250
        [Token(Token = "0x60005F2")]
        [Address(RVA = "0x60D150", Offset = "0x60D150", VA = "0x60D150")]
        public <>c()
        {
        }

        // Token: 0x060005F3 RID: 1523 RVA: 0x00002050 File Offset: 0x00000250
        [Token(Token = "0x60005F3")]
        [Address(RVA = "0x60D158", Offset = "0x60D158", VA = "0x60D158")]
        internal void <CreatePlayersList>b__4_0(GameObject child)
        {
        }

        // Token: 0x040007BD RID: 1981
        [Token(Token = "0x40007BD")]
        [FieldOffset(Offset = "0x0")]
        public static readonly KickOutWindow.<>c <>9;

        // Token: 0x040007BE RID: 1982
        [Token(Token = "0x40007BE")]
        [FieldOffset(Offset = "0x8")]
        public static System.Action<GameObject> <>9__4_0;
    }
}

Мне интересно либо создать kickOutWindow и вызвать в нём show , либо в gameWindow вызвать showKickOutWindow и вместе с этим sniperMode, зная адрес объекта gameWindow Причем используя c++/java


Ответы (0 шт):