Witajcie, rozszerzam funkcję pewnej gry za pomocą Proxy DLL, czyli robie detour funkcji i ją przepisuje.
Chciałbym się dowiedzieć czy jest możliwość rozszerzenia właściwości klasy za pomocą.
Powiedzmy, że chcę dodać jakieś nowe ‘pole’, do którego mógłbym się odwołać za pomocą pointera gracza.
Jest to możliwe?
int __userpurge KlasaGracza:KlasaGracza(int *PointerGracza, int a5, int a6, int a7)
{
*(_DWORD *)PointerGracza = &off_4BCE10;
*(_DWORD *)(PointerGracza + 440) = 0;
*(_DWORD *)(PointerGracza + 444) = 0;
*(_DWORD *)(PointerGracza + 24) = 1;
*(_DWORD *)(PointerGracza + 1676) = a5;
*(_DWORD *)(PointerGracza + 448) = a6;
*(_DWORD *)(PointerGracza + 452) = a7;
*(_DWORD *)(PointerGracza + 456) = 0;
*(_DWORD *)(PointerGracza + 460) = 0;
*(_DWORD *)(PointerGracza + 464) = 0;
*(_DWORD *)(PointerGracza + 468) = 0;
*(_DWORD *)(PointerGracza + 472) = 0;
*(_DWORD *)(PointerGracza + 476) = 0;
*(_DWORD *)(PointerGracza + 480) = 0;
*(_DWORD *)(PointerGracza + 484) = 0;
*(_DWORD *)(PointerGracza + 488) = 0;
memset((void *)(PointerGracza + 492), 0, 0x11u);
*(_DWORD *)(PointerGracza + 512) = 0;
*(_DWORD *)(PointerGracza + 516) = 0;
memset((void *)(PointerGracza + 520), 0, 0xFu);
*(_DWORD *)(PointerGracza + 536) = 0;
*(_DWORD *)(PointerGracza + 540) = 0;
*(_DWORD *)(PointerGracza + 544) = 0;
*(_DWORD *)(PointerGracza + 548) = 0;
*(_DWORD *)(PointerGracza + 552) = 0;
*(_DWORD *)(PointerGracza + 556) = 0;
*(_DWORD *)(PointerGracza + 560) = 0;
*(_DWORD *)(PointerGracza + 564) = 0;
*(_DWORD *)(PointerGracza + 568) = 0;
*(_DWORD *)(PointerGracza + 572) = 0;
*(_DWORD *)(PointerGracza + 576) = 0;
*(_DWORD *)(PointerGracza + 580) = 0;
*(_DWORD *)(PointerGracza + 584) = 0;
*(_DWORD *)(PointerGracza + 588) = 0;
*(_DWORD *)(PointerGracza + 592) = 0;
*(_DWORD *)(PointerGracza + 596) = 0;
*(_DWORD *)(PointerGracza + 600) = 0;
*(_DWORD *)(PointerGracza + 604) = 0;
*(_DWORD *)(PointerGracza + 608) = 0;
*(_DWORD *)(PointerGracza + 612) = 0;
*(_DWORD *)(PointerGracza + 616) = 0;
*(_DWORD *)(PointerGracza + 620) = 0;
*(_DWORD *)(PointerGracza + 1016) = 0;
memset((void *)(PointerGracza + 1052), 0, 0xEu);
*(_DWORD *)(PointerGracza + 1096) = 0;
*(_DWORD *)(PointerGracza + 1100) = 0;
*(_DWORD *)(PointerGracza + 1104) = 0;
*(_DWORD *)(PointerGracza + 1108) = 0;
*(_DWORD *)(PointerGracza + 1112) = 0;
*(_DWORD *)(PointerGracza + 1116) = 0;
*(_DWORD *)(PointerGracza + 1120) = -1;
*(_DWORD *)(PointerGracza + 1124) = 0;
memset((void *)(PointerGracza + 1152), 0, 0x41u);
*(_DWORD *)(PointerGracza + 1220) = 0;
*(_DWORD *)(PointerGracza + 1440) = 0;
*(_DWORD *)(PointerGracza + 1476) = GetTickCount();
*(_DWORD *)(PointerGracza + 1472) = *(_DWORD *)(PointerGracza + 1476);
*(_DWORD *)(PointerGracza + 1448) = *(_DWORD *)(PointerGracza + 1472);
*(_DWORD *)(PointerGracza + 1444) = *(_DWORD *)(PointerGracza + 1448);
*(_DWORD *)(PointerGracza + 1456) = *(_DWORD *)(PointerGracza + 1444);
*(_DWORD *)(PointerGracza + 1460) = *(_DWORD *)(PointerGracza + 1456);
*(_DWORD *)(PointerGracza + 1480) = *(_DWORD *)(PointerGracza + 1460);
*(_DWORD *)(PointerGracza + 1464) = 0;
*(_DWORD *)(PointerGracza + 1468) = 0;
*(_DWORD *)(PointerGracza + 1484) = GetTickCount() + 1800000;
*(_DWORD *)(PointerGracza + 1488) = 0;
*(_DWORD *)(PointerGracza + 1496) = -1;
*(_DWORD *)(PointerGracza + 1492) = -1;
*(_DWORD *)(PointerGracza + 1512) = 0;
*(_DWORD *)(PointerGracza + 1516) = 0;
*(_DWORD *)(PointerGracza + 1520) = 0;
*(_DWORD *)(PointerGracza + 1268) = 0;
*(_DWORD *)(PointerGracza + 1300) = 0;
*(_DWORD *)(PointerGracza + 1304) = 0;
*(_DWORD *)(PointerGracza + 1340) = 0;
*(_DWORD *)(PointerGracza + 1344) = 0;
*(_DWORD *)(PointerGracza + 1348) = 0;
*(_DWORD *)(PointerGracza + 1636) = 0;
*(_DWORD *)(PointerGracza + 1640) = 0;
return PointerGracza;
}