Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Różności


iamiam

Rekomendowane odpowiedzi

Opublikowano

Wszelakie kupy, moje zbiory przez 2 lata. Większość jest moja, autorów nie-moich rzeczy raczej nie pamiętam. Najwięcej jest adresów, mam nadzieje że choć kilka osób będzie umiało tego użyć =]

 

[1.5.0]

 

00B4AC74 - ID aktywnego gracza //byte
00B26A90 - pozycja x id 1 (różnica slotów - 0x8) //float
00B26A94 - pozycja y id 1 (j.w.) //float
0070E92C - pozycja x środka ekranu //float
0070E930 - pozycja y środka ekranu //float
0071A923 - ilość amunicji dla id 1 (różnica slotów - 0xC0F0) //4bytes
0071A922 - maxymalna ilość amunciji dla broni id 1 (j.w.) //4bytes
0070E93D - czy id 1 jest na ziemi (różnica slotów - 0xC0F0) //byte
005D5E1D - czy menu broni jest otworzone (1-tak,0-nie) //byte
00B2B954 - grawitacja ludków (0.06 to normalna) //float
00B32D58 - grawitacja pocisków (j.w.) //float
005CD12C - ilość scenerii (0 by wszystkie znikły) //byte
0070EC67 - pozcyja x broni id 1 (różnica slotów 0xC0F0) //float
0070EC6B - pozcyja x broni id 1 (różnica slotów 0xC0F0) //float
00B27C10 - szybkość x id 1 (różnica slotów 0xC0F0) //float
00B27C14 - szybkość y id 1 (różnica slotów 0xC0F0) //float
00BC9A60 - pozycja x myszki na ekranie (nie na mapie, jak pozycja gracza!) //float
00BC9A64 - pozycja y myszki na ekranie (j.w.) //float
0089C776 - pozycja x flagi 1 (dodaj 0x4 dla y, różnica 0xC0F0 albo 0x74E4) //float
005CD0DC - pozycja x radaru (dodaj 0x4 dla y) //float
0071835F - pozioma długość połowy mapy (dodaj 0x4 dla pionowej) //float
0071AA14 - dróżyna id 1 (1-alpha,2-bravo itd, różnica slotów 0xC0F0) //byte
0070E952 - ilość dopalaczy dla id 1 (różnica slotów 0xC0F0) //4bytes
005CD130 - całkowita ilość dopalaczy na mapie //4bytes
0070E944 - życie id 1 (różnica 0xC0F0) //byte
0071A9E0 - nick gracza z id 1 (różnica 0xC0F0) //pointer, text
00BC9BB0 - wpisywany tekst, w chacie //pointer, text, unicode
005D5E20 - czy widoczne jest menu esc //byte

 

Skąś wygrzebałem te:

 

unsigned char * delay = (unsigned char *)0x006EF0EC+(0xC0E1*(*slot-1));
unsigned char * bink = (unsigned char *)0x006EF0F0+(0xC0E1*(*slot-1));
unsigned char * move = (unsigned char *)0x006EF0F4+(0xC0E1*(*slot-1));

 

I jeszcze jakiś plik znalazłem:

 

DUŻY CHAT:

Pierwsza wiad - B570FC
Druga wiadomo - B57100

               [...]

               B57198
Przedost wiad - B5719C
Ostatnia wiad - B571A0 //B5759E,B5759D,B5759C


red   := adr + 3FE;
green := adr + 3FD;
blue  := adr + 3FC;

MAŁY CHAT:
1 Wiadomosc - B564F0   //B568EE,B568ED,B568EC   (RGB)
2 Wiadomosc - B564F4   //B568F1,B568F0,B568EF   (RGB)
3 Wiadomosc - B564F8   //ect...
4 Wiadomosc - B564FC
5 Wiadomosc - B56500
6 Wiadomosc - B56504
7 Wiadomosc - B56508

Ilosc:
B57CF0
B570E4

001D614C
038CBFEC

BC9BB4

----------------------
DrawText

00BC9BC0 (Unicode text, pointer) - 1 tekst
00BC9BC5 (Byte) - czy 1 tekst jest widoczny
00BC9BC1 (4Bytes?) - coś, jak przezroczystość
00BC9BC4 (4Bytes) - długość wyświetlania
00BC9BC9 (Byte) - Rozmiar (0-duże, 15-małe)
00BC9BC8 (4Bytes) - Rozmiar v2 (250-duże, 1500-małe,)

00BC9BD2 (Byte) - red
00BC9BD1 (Byte) - Green
00BC9BD0 (Byte) - Blue

00BC9BD6 (Byte?) - pozycja x
00BC9BD7 (Byte?) - jeszcze coś do pozycji x
00BC9BDA (Byte?) - pozycja y
00BC9BDB (Byte?) - i jeszcze coś do pozycji y










35603C4

66B298







+++++++++++++++++++++++++++++++++++++++++++
+                 KICKBOX                 +
+++++++++++++++++++++++++++++++++++++++++++

C58675 - Czy kickbox jest widoczny?
C58678 - Kto kickuje? (pointer)
C5867C - Za co kickuje? (pointer)

 

DISCO JETS
----------

0071A9FA - Float

Kolory:

0 - czarny
2,5 - czerwony
6 - fioletowy
-1 - zółty

 

Wszystkie funkcje z serwera 2.5.3

  Sender.AddFunction(@WriteLn, 'procedure WriteLn(Data: string)'); //
 Sender.AddFunction(@inc, 'procedure inc(var X: Integer; N: Integer)'); //
 Sender.AddFunction(@dec, 'procedure dec(var X: Integer; N: Integer)'); //
 Sender.AddFunction(@MySqrt, 'function sqrt(A:Extended):Extended'); //
 Sender.AddFunction(@ArrayHigh, 'function ArrayHigh(X: Array of String): integer'); //
 Sender.AddFunction(@SRand, 'function Random(A,B:Integer):Integer'); //

 Sender.AddFunction(@SCreateBullet, 'function CreateBullet(A,B,C,D,E:Single;F,G: Byte): integer');
 Sender.AddFunction(@SSMakeSay, 'procedure BotChat(A:Byte;B:string);');
 Sender.AddFunction(@SGiveBonus, 'procedure GiveBonus(A,B:Byte)');

 Sender.AddFunction(@SRayCast, 'function RayCast(A,B,C,D:Single;var E:Single;F:Integer): Boolean'); //
 Sender.AddFunction(@SetTeamScore, 'procedure SetTeamScore(A:Byte;B:Integer)'); //
 Sender.AddFunction(@MD5String, 'function MD5String(A:String):String'); //

 Sender.AddFunction(@SArcTan, 'function ArcTan(A:Extended):Extended');
 Sender.AddFunction(@LogN, ' function LogN(A,B:Extended):Extended;');

 Sender.AddFunction(@MovePlayer, 'procedure MovePlayer(A: byte;X,Y: single)'); //
 Sender.AddFunction(@GetObjectStat, 'function GetObjectStat(A:byte;B:string): Variant'); //
 Sender.AddFunction(@ForwardClient, 'procedure ForwardClient(A:String;B:Integer;C:String;D:Integer)');
 Sender.AddFunction(@CrossFunc, 'function CrossFunc(const A:Array of Variant;B:String): variant;'); //

 Sender.AddFunction(@GetSpawnStat, 'function GetSpawnStat(A:byte;B:string):Variant');
 Sender.AddFunction(@SetSpawnStat, 'procedure SetSpawnStat(A:byte;B:string;C:Variant)');

 Sender.AddFunction(@Length, 'function Length(S: string):integer'); //
 Sender.AddFunction(@ReadINI, 'function ReadINI(A,B,C,D: string): string'); //
 Sender.AddFunction(@RegExpMatch, 'function RegExpMatch(A,B: string):boolean'); //
 Sender.AddFunction(@RegExpReplace, 'function RegExpReplace(A,B,C: string;D: boolean):String'); //

 Sender.AddFunction(@MyRoundTo, 'function RoundTo(A:Extended;B:Integer):Extended'); //
 Sender.AddFunction(@MyDate, 'function FormatDate(A: string):String'); //

 Sender.AddFunction(@SDoThreadFunc, 'procedure ThreadFunc(Params: Array of Variant;FuncName: String)');
 Sender.AddFunction(@WriteConsole, 'procedure WriteConsole(A:Byte;B:string;C:Longint)'); //
 Sender.AddFunction(@DrawText, 'procedure DrawText(A:Byte;B:string;C:Integer;D:Longint;E:Single;F,G:Integer)'); //
 Sender.AddFunction(@GetSystem, 'function GetSystem(): string'); //
 Sender.AddFunction(@SGetTickCount, 'function GetTickCount():Cardinal'); //

 Sender.AddFunction(@SRGB, 'function RGB(R,G,B:Byte):Longint'); //

 Sender.AddFunction(@IDtoName, 'function IDToName(A: integer): string'); //
 Sender.AddFunction(@NameToID, 'function NameToID(A: string): integer'); //
 Sender.AddFunction(@IDToIP, 'function IDToIP(ID: Byte): string'); //
 Sender.AddFunction(@SpriteNumFromIP, 'function IPToID(A: string): integer'); //
 Sender.AddFunction(@SendMessageToAdmin, 'procedure TCPAdminPM(A,B: string)'); //
 Sender.AddFunction(@WeaponNameByNum, 'function WeaponNameByNum(A: integer): string'); //
 Sender.AddFunction(@RandomBot, 'function RandomBot: string'); //
 Sender.AddFunction(@SKickPlayer, 'procedure KickPlayer(A: byte)'); //
 Sender.AddFunction(@MyStartVoteKick, 'procedure StartVoteKick(A,B: byte; C: string)'); //

 Sender.AddFunction(@MyStartVoteMap, 'procedure StartVoteMap(A: byte;B: string)'); //
 Sender.AddFunction(@SBanPlayer, 'procedure BanPlayer(A: byte;B: integer)'); //
 Sender.AddFunction(@SBanPlayerReason, 'procedure BanPlayerReason(A: byte;B:integer;C:String)'); //

 Sender.AddFunction(@CheckWeaponAllowed, 'function CheckWeaponAllowed(A: byte): boolean'); //
 Sender.AddFunction(@SCommand, 'function Command(A: string):variant'); //

 Sender.AddFunction(@StartServer, 'procedure StartServer'); //
 Sender.AddFunction(@GetPID, 'function GetPID:integer'); //
 Sender.AddFunction(@Shutdown, 'procedure Shutdown'); //
 Sender.AddFunction(@UpdateGameStats, 'procedure UpdateGameStats'); //
 Sender.AddFunction(@DoDamage, 'procedure DoDamage(A:Byte;B:Integer)'); //

 Sender.AddFunction(@DoDamage, 'procedure DoDamage(A:Byte;B:Integer)'); //
 Sender.AddFunction(@DoDamageBy, 'procedure DoDamageBy(A,B:Byte;C:Integer)'); //

 Sender.AddFunction(@ForceWeapon, 'procedure ForceWeapon(A,B,C,D: Byte)'); //
 Sender.AddFunction(@SetWeaponActive, 'procedure SetWeaponActive(A,B: Byte;C:Boolean)'); //
 Sender.AddFunction(@SetScore, 'procedure SetScore(A:Byte;B:Integer)'); //
 Sender.AddFunction(@Distance, 'function Distance(A,B,C,D:Single):Single'); //
 Sender.AddFunction(@SCreateThing, 'function SpawnObject(A,B:Single;D: Byte): integer'); //
 Sender.AddFunction(@KillThing, 'procedure KillObject(A:integer)'); //

 Sender.AddFunction(@GetPlayerXY, 'procedure GetPlayerXY(A: byte;var X,Y: single)'); //
 Sender.AddFunction(@GetPlayerStat, 'function GetPlayerStat(A:byte;B:string): Variant'); //

 Sender.AddFunction(@GetFlagsXY, 'procedure GetFlagsXY(var A,B,C,D: single)'); //
 Sender.AddFunction(@GetFlagsSpawnXY, 'procedure GetFlagsSpawnXY(var A,B,C,D: single)'); //
 Sender.AddFunction(@SSendStringToPlayer, 'procedure SayToPlayer(A: Byte;B: string)'); //
 Sender.AddFunction(@SSleep, 'procedure sleep(A: cardinal)'); //
//  Sender.AddFunction(@SetVariables, 'procedure UpdateVars()'); //

 Sender.AddFunction(@MatchesMask, 'function MaskCheck(const A: string;const B: string):Boolean'); //
 Sender.AddFunction(@util.iif, 'function iif(const A: boolean; const B: variant; const C: variant): variant'); //
 Sender.AddFunction(@MyGetPiece, 'function GetPiece(const A,B: string; const C: Integer): String'); //

 Sender.AddFunction(@MyReadFile, 'function ReadFile(A: string): string'); //
 Sender.AddFunction(@WriteFile, 'function WriteFile(A,B: string): boolean'); //
 Sender.AddFunction(@AppendFile, 'function WriteLnFile(A: string; B: string): boolean'); //
 Sender.AddFunction(@FileExists, 'function FileExists(F: String): boolean'); //
 Sender.AddFunction(@AnsiContainsStr, 'function ContainsString(const A, B: string): Boolean'); //
 Sender.AddFunction(@AnsiIndexStr, 'function GetStringIndex(const A: string; const B: array of string): Integer'); //
 Sender.AddFunction(@AnsiPos, 'function StrPos(const A, S: string): Integer'); //
 Sender.AddFunction(@AnsiReplaceStr, 'function StrReplace(const A, B, C: string): string');
 Sender.AddFunction(@HTTPEncode, 'function HTTPEncode(A: string):string'); //
 Sender.AddFunction(@HTTPDecode, 'function HTTPDecode(A: string):string'); //

 // Safe Mode Functions //
 Sender.AddFunction(@shell_exec, 'function shell_exec(A: string): integer'); //
 Sender.AddFunction(@GetURL, 'function GetURL(A: string):string'); //
 Sender.AddFunction(@CreateSocket, 'procedure ConnectSocket(A: string;B: Integer;var C:Integer)'); //
 Sender.AddFunction(@CloseSocket, 'procedure CloseSocket(A: integer)'); //
 Sender.AddFunction(@SendData, 'function SendData(Index: Integer;Data: String):boolean'); //
 Sender.AddFunction(@ReadLnSocket, 'procedure ReadLnSocket(Index: Integer;var Buffer: String)'); //

 // Variables //
 Sender.AddRegisteredVariable('ReqPort', 'integer'); //
 Sender.AddRegisteredVariable('CoreVersion', 'string'); //
 Sender.AddRegisteredVariable('ScriptName', 'string'); //
 Sender.AddRegisteredVariable('SafeMode', 'byte'); //
 Sender.AddRegisteredVariable('MaxPlayers', 'byte'); //
 Sender.AddRegisteredVariable('NumPlayers', 'byte'); //
 Sender.AddRegisteredVariable('NumBots', 'byte'); //
 Sender.AddRegisteredVariable('CurrentMap', 'string'); //
 Sender.AddRegisteredVariable('NextMap', 'string'); //
 Sender.AddRegisteredVariable('TimeLimit', 'integer'); //
 Sender.AddRegisteredVariable('TimeLeft', 'integer'); //
 Sender.AddRegisteredVariable('ScoreLimit', 'integer'); //
 Sender.AddRegisteredVariable('GameStyle', 'byte'); //
 Sender.AddRegisteredVariable('Version', 'string'); //
 Sender.AddRegisteredVariable('ServerVersion', 'string'); //
 Sender.AddRegisteredVariable('ServerName', 'string'); //
 Sender.AddRegisteredVariable('ServerIP', 'string'); //
 Sender.AddRegisteredVariable('ServerPort', 'integer'); //
 Sender.AddRegisteredVariable('DeathmatchPlayers', 'byte'); //
 Sender.AddRegisteredVariable('Spectators', 'byte'); //
 Sender.AddRegisteredVariable('AlphaPlayers', 'byte'); //
 Sender.AddRegisteredVariable('BravoPlayers', 'byte'); //
 Sender.AddRegisteredVariable('CharliePlayers', 'byte'); //
 Sender.AddRegisteredVariable('DeltaPlayers', 'byte'); //
 Sender.AddRegisteredVariable('AlphaScore', 'byte'); //
 Sender.AddRegisteredVariable('BravoScore', 'byte'); //
 Sender.AddRegisteredVariable('CharlieScore', 'byte'); //
 Sender.AddRegisteredVariable('DeltaScore', 'byte'); //

 Sender.AddRegisteredVariable('DisableScript', 'boolean'); //

 

Coś jeszcze, dla ciekawskich :]

Knife from cursor

X:
00588c7c - mov eax,[ebx+0000032f]

Y:
00588C85 - mov eax,[ebx+00000333]



ebx = 70E938


nop dolne linijki od tych



orginal: 17801
 17801

noped:   -28528
 -28528









orginal (integer):
-1946925687
1794655625

noped (integer):
-1953460080
1787859088

adresy:
00588C82
00588C8B

5803138
5803147







Force2Mouse

4838378
4838389

ORGINAL: (integer)
-1460435831
-1393326967

NOPED: (integer)
-1869574000
-1869574000



2425393296
2425393296

2834531465
2901640329









Knives Spam:

005594D4
00585A20

5608660
5790240

ORGINAL INTEGER:

-1076068154
-1076067386


NOPED INTEGER:

-1869574000
-1869574000

 

Mapa:

00663972 - R Gornego koloru mapy
00663971 - G Gornego koloru mapy
00663970 - B Gornego koloru mapy

006639A8 - R Dolnego koloru mapy
006639A9 - G Dolnego koloru mapy
006639AA - B Dolnego koloru mapy

 

Obiekty:

OBIEKTY:

1 - CZERWONA FLAGA
2 - NIEBIESKA FLAGA
3 - ŻÓŁTA FLAGA!
4 - ??
15 - Something
16 - Apteczka
17 - Granaty
18 - Flamegod
19 - Predator
20 - Kamizelka (Vest)
21 - Berseker
22 - Granaty odlamkowe (Cluster)


00895038 - Obiekt włączony?
00895062 - Obiekt w grze?

00895039 - Typ

00895292 - Pozycja X
00895296 - Pozycja Y

74E4 - Różnica

 

Pociski:

velx B2F014
vely B2F018
posx B2DE94
posy B2DE98

890738 - czy istnieje (38 różnica)
890739 - rodzaj pocisku (38 różnica)

00890738 - Bullet exist (+38) - Byte (56)
0089073C - Bullet "author" (+38) - Byte (56)

 

Kiedyś to pisałem, ale nie chciało mi się dokończyć :]

ID obecnego gracza
$00B4AC74 - 1 bajt

Granaty na granaty odłamkowe
Upewnij się że posiadasz id 1, mając zwykłe granaty szukaj bajtu 9, mając odłamkowe szukasz dla 2, aż zostanie jeden zielony adres. Następnie kożystając z wzoru: $ZNALEZIONY_ADRES + (id-1) * $C0F0 wpisujesz ciągle do tego adresu bajt 9. Adres do id obecnego gracza, powyżej.

Pozycja gracza (do TeleFly, Tele2Mouse, Save/Load i SlotKill)
Osobny artykuł - http://www.mpcforum.pl/topic/140564-pozycja-gracza-przyklad/

AirMan
$0070E93D - Mająć id 1 w Cheat Engine szukasz co wpisuje do tego adresu i nopujesz, potem po kolei wpisujesz do znopowanych bajtów (w cheacie) 0x90 ( na zwykłą liczbę - 144 ), przy dezaktywacji wpisujesz orginalny kod, brany po 2 znaki, zaczynąjąc od tyłu (widzisz go w dissasamblerze Cheat Engine obok adresu), i zamieniając w kalkulatorze z hex na dec. Po aktywacji musisz wpisać jeszcze bajt 1 do podanego na początku adresu, aby gracz był na ziemi (znaczy, żeby Solat tak myślał)

Nieskończona Amunicja
$0071A923 + (id - 1) * $C0F0   <--- do tego adresu co chwile wpisujesz ilość amunicji, najlepiej maxymalną, z adresu:  $0071A922 + (id - 1) * $C0F0

Inna grawitacja
$00B2B954 - float. Standardowa grawitacja to 0.06, niska zastosowana w moim hacku to 0.018

Bez scenerii
$005CD12C - bajt - ilość scenerii. Ustawiasz na 0 aby żadna nie była widoczna.

Weapons Menu
Sprawdzasz czy nacisnieto tab, jesli tak wpisujesz bajt 1 do adresu $5D5E1D

 

[1.5.1]

 

#define playerx 0xB3D81C
#define playery 0xB3D820
#define onground 0x7252B1
#define xmouse 0xBE0A10
#define ymouse 0xBE0A14
#define xscreen 0x7252A0
#define yscreen 0x7252A4
#define jets 0x7252C6
#define xspeed 0xB3E99C
#define yspeed 0xB3E9A0

 

Powyższe adresy, są dla ostatniej bety, więcej mi się ich nie chciało szukać, bo i tak się zmienią w kolejnej.

 

I to chyba tylko tyle z moich zbiorów, poszukam może później jeszcze czegoś, w każdym razie w soldata już nie gram, bo mi się nie chce (i karta graficzna mi nie pozwala xD).

Moi drodzy, bo najważniejsze w kochaniu zwłok jest to, że nie marudzą.

Opublikowano

Dobre,dobre :) przyda sie w 100%! Masz +. Nie grasz w soldka bo ci karta nie pozwala hah... Mozna z tego wywnioskowac ze masz karte sprzed 20 lat :) ale raczej ci sie przysmarzyła.

09071535498836998897.png

Opublikowano

Riva tnt2 robi swoje. Wcześniejsza mi się spaliła niestety, takie to już te nowe syfy robią.

---

 

Procedura pisania w konsoli Soldata, dla wstrzykiwanych dll'ek, c++. (TmTgr)

void SoldatConsole(char* msg, DWORD color) 
{
   // make a pointer to our function, we will call it later
   typedef void (__fastcall* ConsoleFunc) (DWORD color, const DWORD* msg);
   ConsoleFunc pFunc = (ConsoleFunc)ADDR_WRITECONSOLE;

   // allocate space for our delphi string ?
   DWORD* realmsg = (DWORD*)malloc(strlen(msg)*sizeof(WCHAR) + 2*sizeof(DWORD));

   // set the whole array to 0
   memset(realmsg, 0, strlen(msg)*sizeof(WCHAR) + 2*sizeof(DWORD));
   realmsg[0] = 1; // Set refrence count.
   realmsg[1] = strlen(msg)*sizeof(WCHAR); // Set string length.
   mbstowcs((wchar_t*)(realmsg+2), msg, strlen(msg)); // convert to wchars

   // finally call our function :P
   pFunc(color, realmsg + 2);

   // free allocated memory
   //free(realmsg);
}

void SoldatPrintf(char* fmt, DWORD color ...)
{
   static char buf[320]; // just seems like a nice number, change it as you like
   va_list va_alist;
   va_start(va_alist, color);
   _vsnprintf_s(buf, sizeof(buf), fmt, va_alist);
   va_end(va_alist);
   SoldatConsole(buf, color);
}

 

Funkcje, do użycia po zhookowaniu d3d8 (mogą być trochę nieogarnięte).

 

Draw bullets

if (showbullets)
		{
			int ii;

			byte ist;

			for (ii=1; ii<150; ++ii)
			{
				// CZY POCISK ISTNIEJE
				adre=0x00890738 + (ii - 1) * 0x38;
				ReadProcessMemory(hProcess, (LPVOID)adre, &ist, 1, &ble);
				if (ist==1)
				{
					// JESLI ISTNIEJE
					float xxx;
					float yyx;

					adre=0x00B2DE94 + (ii - 1) * 0x8;
					ReadProcessMemory(hProcess, (LPVOID)adre, &xxx, 4, &ble);

					adre=0x00B2DE98 + (ii - 1) * 0x8;
					ReadProcessMemory(hProcess, (LPVOID)adre, &yyx, 4, &ble);

					short int iksx;
					short int iksy;

					addr = (void*)0x005CD0C0;
					ReadProcessMemory(hProcess, addr, &iksx, 2, &ble);

					addr = (void*)0x005CD0C4;
					ReadProcessMemory(hProcess, addr, &iksy, 2, &ble);

					xxx=inScreenXX(xxx);
					yyx=inScreenYY(yyx);


					if (testx(xxx,yyx)==true)
					{


					xxx=gp(xxx);
					yyx=gp(yyx);

					adre=0x00890739 + (ii - 1) * 0x38;
					byte typ;
					ReadProcessMemory(hProcess, (LPVOID)adre, &typ, 1, &ble);

					D3DCOLOR kolor;
					int w;

					if (typ==1) {kolor = D3DCOLOR_XRGB(255,255,255); w = 8;}
					if (typ==2) {kolor = D3DCOLOR_XRGB(0,255,0); w = 8;}
					if (typ==3) {kolor = D3DCOLOR_XRGB(255,255,255); w = 6;}
					if (typ==4) {kolor = D3DCOLOR_XRGB(255,0,0); w = 10;}
					if (typ==5) {kolor = D3DCOLOR_XRGB(255,128,0); w = 6;}
					if (typ==6) {kolor = D3DCOLOR_XRGB(0,0,0); w = 4;}
					if (typ==7) {kolor = D3DCOLOR_XRGB(0,255,0); w = 8;}
					if (typ==8) {kolor = D3DCOLOR_XRGB(0,128,0); w = 8;}
					if (typ==11) {kolor = D3DCOLOR_XRGB(0,0,128); w = 8;}
					if (typ==12) {kolor = D3DCOLOR_XRGB(255,0,0); w = 10;}
					if (typ==13) {kolor = D3DCOLOR_XRGB(0,128,255); w = 10;}
					if (typ==14) {kolor = D3DCOLOR_XRGB(255,255,255); w = 8;}
					if (w==0) {kolor = D3DCOLOR_XRGB(0,0,0); w = 10;}

					DrawBox(xxx-w/2,yyx-w/2,w,w,kolor,d3d8_dev);

					//free(&kolor);
					//free(&typ);
					//free(&w);


					}

					//free(&iksx);
					//free(&iksy);
					//free(&xxx);
					//free(&yyx);
			   }
		  }
		//free(&ii);
		//free(&ist);
	}

 

Force mode

if (forcemode)
	{

		float VelX;
		float VelY;

		VelX = ReadFloat(0x00B27C10+(id-1)*0x8);
		VelY = ReadFloat(0x00B27C14+(id-1)*0x8);

		if (GetKeyState(0x57)&1)
		{
			VelY=-15;
		}

		if (GetKeyState(0x53)&1)
		{
			VelY=15;
		}

		if (GetKeyState(0x41)&1)
		{
			VelX=-15;
		}

		if (GetKeyState(0x44)&1)
		{
			VelX=15;
		}

		WriteFloat(0x00B27C10+(id-1)*0x8, VelX);
		WriteFloat(0x00B27C14+(id-1)*0x8, VelY);

		//free(&VelX);
		//free(&VelY);

	}

 

Nicki graczy, nad nimi:

		if (names)
	{
		int aj;

		for (aj=1; aj<32; ++aj)
		{
			if (PlayerJest(aj))
			{
				if (Team(aj)<5)
				{
					float PlaX;
					float PlaY;

					PlaX = ReadFloat(0x00B26A90+(aj-1)*0x8);
					PlaY = ReadFloat(0x00B26A94+(aj-1)*0x8); //8

					int len;

					len = strlen(PlayerName(aj))*8;

					len = len / 2;

					DWORD kolor;

					if (Team(aj)==0) {kolor = D3DCOLOR_XRGB(255,255,255);}
					if (Team(aj)==1) {kolor = D3DCOLOR_XRGB(255,0,0);}
					if (Team(aj)==2) {kolor = D3DCOLOR_XRGB(0,0,255);}
					if (Team(aj)==3) {kolor = D3DCOLOR_XRGB(255,255,0);}
					if (Team(aj)==4) {kolor = D3DCOLOR_XRGB(0,255,0);}

					Text(Font10, PlayerName(aj), 1, inScreenX(PlaX-len+4+len/7), inScreenY(PlaY-50), kolor, NULL);

					//free(&PlaX);
					//free(&PlaY);
					//free(&len);
				}
			}
		}

		//free(&aj);
	}

char* PlayerName(byte id)
{

SIZE_T ble;
UINT_PTR adre;

char name[24];
DWORD a;

adre=0x0071A9E0+(id-1)*0xC0F0;
ReadProcessMemory(hProcess, (LPVOID)adre, &a, 4, &ble);

ReadProcessMemory(hProcess, (LPVOID)a, &name, 24, &ble);

//free(&ble);
//free(&adre);
//free(&a);

return name;

}

 

Czy gracz jest w grze, i w jakiej jest drużynie

bool PlayerJest(byte id)
{
byte rzycie;
rzycie = ReadByte(0x0070E938 + (id - 1) * 0xC0F0);
if (rzycie==1) {return true;} else {return false;}
}

byte Team(byte id)
{
byte droz;
droz = ReadByte(0x0071AA14 + (id - 1) * 0xC0F0);
return droz;
}

 

Kąt, pomiędzy dwoma punktami

float Angle(double x1, double y1, double x2, double y2)
{

 const double Pi = 3.141592654;

 if ((x2 - x1) != 0)
 {
 if (x1 > x2)
 {
	 return (atan((y2 - y1) / (x2 - x1))) + Pi;
 }
 else
 {
	 return (atan((y2 - y1) / (x2 - x1)));
 }
 }
 else
 {
  if (y2 > y1)
  {
	  return Pi / 2;
  }
  if (y2 < y1)
  {
	  return -Pi / 2;
  }
 }

}

 

Rysowanie "linii snajperskiej" (mocno nieogarnięte)

void DrawSniperLine(float x, float y, float x2, float y2, float speed, bool bullet, float velx, float vely, DWORD kolor, LPDIRECT3DDEVICE8 pDevice)
{

float xx;
float yy;
float dx;
float dy;

if (bullet==false)
{

	float a;

	a = Angle(x,y,x2,y2);

	dx = cos(a) * speed;

	dy = sin(a) * speed;

	//xx = x + dx * 7;
	//yy = y + dy * 7;

}
else
{
	dx = velx;
	dy = vely;

	//xx = x + dx;
	//yy = y + dy;
}

xx = x + dx;// * 7;
yy = y + dy;// * 7;

// slider_pos - 0>>200

struct Vertex 
{
	float x,y,z,ht;
	DWORD Color;
}
V[300];

V[0].x = x;
V[0].y = y;
V[0].z = 0.0f;
V[0].ht = 0.0f;
V[0].Color = kolor;

for(int i = 1;i<150;++i)
{
	V[i].x = xx;
	V[i].y = yy;
	V[i].z = 0.0f;
	V[i].ht = 0.0f;
	V[i].Color = kolor;

	xx += dx;
	dx *= 0.99;

	dy += 0.14;
	//dy += slider_pos / 740.74;
	yy += dy;
	dy *= 0.99;

}

/*for (a=1;a<100;++a)
{
	//DrawLine(inScreenX(xx),inScreenY(yy),gp(vx),gp(vy),kolor,pDevice);
	V[a].x = inScreenX(xx);
	V[a].y = inScreenY(yy);
	V[a].z = 0.0f;
	V[a].ht = 0.0f;
	V[a].Color = kolor;
	vx=vx-speed/2500;
	vy=vy+speed/25;
	xx+=vx;
	yy+=vy;
}*/

pDevice->SetTexture(0, NULL);
pDevice->SetVertexShader(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1); 
pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
pDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
pDevice->DrawPrimitiveUP(D3DPT_LINESTRIP,149,V,sizeof(Vertex));

//free(&PI);
//free(&G);
//free(&xx);
//free(&yy);
//free(&kat);
//free(&v0);
//free(&z);
//free(&ile);
free(&V);

}

 

Force 2 mouse

if (force2mouse)
	{

		if (GetKeyState(VK_CONTROL)&1)
		{
			float PlaX;
			float PlaY;
			float MouX;
			float MouY;
			float TempX;
			float TempY;

			MouX = ReadFloat(0x0070E92C);
			MouY = ReadFloat(0x0070E92C+0x4);

			PlaX = ReadFloat(0x00B26A90+(id-1)*0x8);
			PlaY = ReadFloat(0x00B26A94+(id-1)*0x8);

			TempX = (MouX - PlaX) / 4;
			TempY = (MouY - PlaY) / 4;

			/*

				(7399724-11692688+(7399732-1)*8)/8

			*/

			WriteFloat(0x00B27C10+(id-1)*0x8, TempX);
			WriteFloat(0x00B27C14+(id-1)*0x8, TempY);

			//free(&PlaX);
			//free(&PlaY);
			//free(&MouX);
			//free(&MouY);
			//free(&TempX);
			//free(&TempY);

		}

	}

 

Rysowanie obiektów (wielkie takie)

if (obiects)
	{
		byte ingame;
		byte onned;
		byte typ;
		float xx;
		float yy;
		float oldx;
		float oldy;

		adre=0x00B26A90 + (id - 1) * 0x8;
		ReadProcessMemory(hProcess, (LPVOID)adre, &oldx, 4, &ble);

		adre=0x00B26A94 + (id - 1) * 0x8;
		ReadProcessMemory(hProcess, (LPVOID)adre, &oldy, 4, &ble);

		for (int i=1;i<50;++i)
		{
			adre=0x00895062 + (i - 1) * 0x74E4;
			ReadProcessMemory(hProcess, (LPVOID)adre, &ingame, 1, &ble);

			if (ingame==1)
			{
				adre=0x00895038 + (i - 1) * 0x74E4;
				ReadProcessMemory(hProcess, (LPVOID)adre, &onned, 1, &ble);

				if (onned==1)
				{
					adre=0x00895292 + (i - 1) * 0x74E4;
					ReadProcessMemory(hProcess, (LPVOID)adre, &xx, 4, &ble);

					adre=0x00895296 + (i - 1) * 0x74E4;
					ReadProcessMemory(hProcess, (LPVOID)adre, &yy, 4, &ble);

					adre=0x00895039 + (i - 1) * 0x74E4;
					ReadProcessMemory(hProcess, (LPVOID)adre, &typ, 1, &ble);

					// JEŚLI NIE JEST ZA BLISKO   // tak ogólnie to ten cały if jest do wywalenia
					if (tescik(oldx,oldy,xx,yy))
					{
						// APTECZKA
						if (typ==16)
						{
							DrawBox(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(255,255,255),d3d8_dev);
							DrawBox(inScreenX(xx)-4,inScreenY(yy)-15,8,30,D3DCOLOR_XRGB(255,0,0),d3d8_dev);
							DrawBox(inScreenX(xx)-15,inScreenY(yy)-4,30,8,D3DCOLOR_XRGB(255,0,0),d3d8_dev);
							DrawBorder(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(0,0,0),d3d8_dev);
						}
						// GRANATY
						if (typ==17)
						{
							DrawBox(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(0,128,0),d3d8_dev);
							DrawBox(inScreenX(xx)-8,inScreenY(yy)-8,16,16,D3DCOLOR_XRGB(0,255,0),d3d8_dev);
							DrawBorder(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(0,0,0),d3d8_dev);
						}
						// FLAMEGOD
						if (typ==18)
						{
							DrawBox(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(255,128,0),d3d8_dev);
							DrawBox(inScreenX(xx)-8,inScreenY(yy)-8,16,16,D3DCOLOR_XRGB(255,255,0),d3d8_dev);
							DrawBorder(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(0,0,0),d3d8_dev);
						}
						// PREDATOR
						if (typ==19)
						{
							DrawBox(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(60,60,140),d3d8_dev);
							DrawBox(inScreenX(xx)-8,inScreenY(yy)-8,16,16,D3DCOLOR_XRGB(128,128,200),d3d8_dev);
							DrawBorder(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(0,0,0),d3d8_dev);
						}
						// VEST
						if (typ==20)
						{
							DrawBox(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(70,70,70),d3d8_dev);
							DrawBox(inScreenX(xx)-8,inScreenY(yy)-8,16,16,D3DCOLOR_XRGB(140,140,140),d3d8_dev);
							DrawBorder(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(0,0,0),d3d8_dev);
						}
						// VEST
						if (typ==20)
						{
							DrawBox(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(70,70,70),d3d8_dev);
							DrawBox(inScreenX(xx)-8,inScreenY(yy)-8,16,16,D3DCOLOR_XRGB(140,140,140),d3d8_dev);
							DrawBorder(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(0,0,0),d3d8_dev);
						}
						// BERSEKER
						if (typ==21)
						{
							DrawBox(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(128,0,0),d3d8_dev);
							DrawBox(inScreenX(xx)-8,inScreenY(yy)-8,16,16,D3DCOLOR_XRGB(255,0,0),d3d8_dev);
							DrawBorder(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(0,0,0),d3d8_dev);
						}
						// CLUSTER
						if (typ==22)
						{
							DrawBox(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(200,200,0),d3d8_dev);
							DrawBox(inScreenX(xx)-8,inScreenY(yy)-8,16,16,D3DCOLOR_XRGB(255,255,0),d3d8_dev);
							DrawBorder(inScreenX(xx)-15,inScreenY(yy)-15,30,30,D3DCOLOR_XRGB(0,0,0),d3d8_dev);
						}
					}
				}
			}
		}

		//free(&ingame);
		//free(&onned);
		//free(&typ);
		//free(&xx);
		//free(&yy);
		//free(&oldx);
		//free(&oldy);
	}

 

Shot from mouse (strzelanie z pozycji myszki, tak samo z nożami, granatami, piłą, i samymi rękami (można zabić kogoś z daleka, bez żadnej broni))

if (frommouse)
		{

			// AKCJA

			// X
			adre=0x00B26A90 + (id-1) * 0x8;
			float h1;
			ReadProcessMemory(hProcess, (LPVOID)adre, &h1, 4, &ble);

			adre=0x0070E92C;
			float h2;
			ReadProcessMemory(hProcess, (LPVOID)adre, &h2, 4, &ble);

			float xx;
			xx=h1+(h2-h1)*2;

			// Y
			adre=0x00B26A94 + (id-1) * 0x8;
			ReadProcessMemory(hProcess, (LPVOID)adre, &h1, 4, &ble);

			adre=0x0070E92C+4;
			ReadProcessMemory(hProcess, (LPVOID)adre, &h2, 4, &ble);

			float yy;
			yy=h1+(h2-h1)*2;

			// WPISANIE
			adre=0x0070EC67 + (id-1) * 0xC0F0;
			WriteProcessMemory(hProcess, (LPVOID)adre, &xx, 4, &ble);

			adre=0x0070EC6B + (id-1) * 0xC0F0;
			WriteProcessMemory(hProcess, (LPVOID)adre, &yy, 4, &ble);

			POINT punkt;
			punkt.x = inScreenX(xx);
			punkt.y = inScreenY(yy);

			//Draw2DCircle(punkt, 20, D3DCOLOR_ARGB(128,255,0,0), d3d8_dev);

			//free(&punkt);
			//free(&yy);
			//free(&xx);
			//free(&h1);
			//free(&h2);

		}

 

I takie triko na koniec.

#define DONTSENDMYWEAPONINFO 0x00596280

Nop'ujemy powyższy adres (7 bajtów), i dostajemy votekicka z serwera za 'possible cheating'.

Moi drodzy, bo najważniejsze w kochaniu zwłok jest to, że nie marudzą.

  • 7 miesięcy temu...
  • 1 rok później...
Opublikowano

I do not get how you can implement this in c++, to my understanding you must use borland delphi?

 

||

 

Nie rozumiem, jak można zaimplementować to w c + +, w moim rozumieniu należy użyć Borland Delphi?

Opublikowano

W dllce w c++:

costam = (*(typ_zmiennej*)(ADRES)) // odczytanie
(*(typ_zmiennej*)(ADRES)) = 0x12345678 // wpisanie

 

W osobnym exe musisz użyć ReadProcessMemory/WriteProcessMemory tak samo jak w Delphi.

Twoja stara robi catch the clowny w Game Makerze.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...