Post: [NOT TESTED] Hud elems + RPC FIX
07-10-2013, 03:58 AM #1
(adsbygoogle = window.adsbygoogle || []).push({}); so after editing and looking through seb5594's rpc and hud elems code i eventually got no syntax errors, also this has not been tested yet and if it doesent work just try to make some changes in the coding untill it does. i will update this code if it doesnt work with a new one that will but anyways you might need visual studios 2010 for the "boolean" to work

      public Boolean Enable114RPC()
{
SetMemory(0x10030000, new byte[] { 0x00, 0x72, 0x4C, 0x38, 0x00, 0x73, 0x4B, 0xE8 });
return false;

SetMemory(0x1d0ce6c, new byte[1]);
return false;

SetMemory(0x38ede8, new byte[] {
0xf8, 0x21, 0xff, 0x61, 0x7c, 8, 2, 0xa6, 0xf8, 1, 0, 0xb0, 60, 0x60, 0x10, 3,
0x80, 0x63, 0, 0, 0x60, 0x62, 0, 0, 60, 0x60, 0x10, 4, 0x80, 0x63, 0, 0,
0x2c, 3, 0, 0, 0x41, 130, 0, 40, 60, 0x60, 0x10, 4, 0x80, 0x63, 0, 4,
60, 160, 0x10, 4, 0x38, 0x80, 0, 0, 0x30, 0xa5, 0, 0x10, 0x4b, 0xe8, 0xb2, 0x7d,
0x38, 0x60, 0, 0, 60, 0x80, 0x10, 4, 0x90, 100, 0, 0, 60, 0x60, 0x10, 5,
0x80, 0x63, 0, 0, 0x2c, 3, 0, 0, 0x41, 130, 0, 0x24, 60, 0x60, 0x10, 5,
0x30, 0x63, 0, 0x10, 0x4b, 0xe2, 0xf9, 0x7d, 60, 0x80, 0x10, 5, 0x90, 100, 0, 4,
0x38, 0x60, 0, 0, 60, 0x80, 0x10, 5, 0x90, 100, 0, 0, 60, 0x60, 0x10, 3,
0x80, 0x63, 0, 4, 0x60, 0x62, 0, 0, 0xe8, 1, 0, 0xb0, 0x7c, 8, 3, 0xa6,
0x38, 0x21, 0, 160, 0x4e, 0x80, 0, 0x20});
return false;

return true;
}
private void SetMemory(uint Address, byte[] Bytes)
{
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0xFFFFFFFF, Address, Bytes);
}
private void GetMemory(uint Address, byte[] Bytes)
{
PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, Address, ref Bytes);
}
public UInt32 SetText(Int32 client, String text, Int32 Font, float fontsize, float x, float y, Int32[] colors)
{
UInt32 elem = HudElem_Alloc();

SetMemory(elem, Reverse(BitConverter.GetBytes(1)));
SetMemory(elem + 0x84, Reverse(BitConverter.GetBytes(MakeString(text))));
SetMemory(elem + 0x88, new Byte[] { 0x44, 0x7A, 0x40, 0x00 });
SetMemory(elem + 0x04, Reverse(BitConverter.GetBytes(y)));
SetMemory(elem + 0x08, Reverse(BitConverter.GetBytes(x)));
SetMemory(elem + 0x28, Reverse(BitConverter.GetBytes(Font)));
SetMemory(elem + 0xA8, Reverse(BitConverter.GetBytes((UInt32)client)));
SetMemory(elem + 0x14, Reverse(BitConverter.GetBytes(fontsize)));
SetMemory(elem + 0x4c, Reverse(BitConverter.GetBytes(0)));
SetMemory(elem + 0x34, new Byte[] { BitConverter.GetBytes(colors[0])[0], BitConverter.GetBytes(colors[1])[0], BitConverter.GetBytes(colors[2])[0], BitConverter.GetBytes(colors[3])[0] });
SetMemory(elem + 0xB3, new Byte[1] { 0x01 });
Thread.Sleep(30);
return elem;
}

public UInt32 SetIcon(Int32 client, Int32 shader, Int32 width, Int32 height, float x, float y, Int32[] colors)
{
UInt32 elem = HudElem_Alloc();

SetMemory(elem + 0x4C, Reverse(BitConverter.GetBytes(shader)));
SetMemory(elem + 0x04, Reverse(BitConverter.GetBytes(y)));
SetMemory(elem + 0x08, Reverse(BitConverter.GetBytes(x)));
SetMemory(elem + 0x44, Reverse(BitConverter.GetBytes(width)));
SetMemory(elem + 0x48, Reverse(BitConverter.GetBytes(height)));
SetMemory(elem + 0x34, new Byte[] { BitConverter.GetBytes(colors[0])[0], BitConverter.GetBytes(colors[1])[0], BitConverter.GetBytes(colors[2])[0], BitConverter.GetBytes(colors[3])[0] });
SetMemory(elem + 0xA8, Reverse(BitConverter.GetBytes((UInt32)client)));
SetMemory(elem, Reverse(BitConverter.GetBytes(6)));

Thread.Sleep(30);
return elem;
}
public Byte[] Reverse(Byte[] bytes)
{
Array.Reverse(bytes);
return bytes;
}
private UInt32 HudElem_Alloc()
{
Byte[] buffer = new Byte[1];
UInt32 address;
LocalizedString(-1);
for (Int32 i = 0; i < 1024; i++)
{
address = (0x12E9858 + 3 + ((UInt32)i * 0xB4));
if (GetMemory(address, ref buffer))
{
if (buffer[0] == 0x00)
{
SetMemory(address, new byte[0xB3]);
return address - 3;
}
}
}
return 0x12E9858;
}

private bool GetMemory(uint address, ref byte[] buffer)
{
throw new NotImplementedException();
}

public UInt32 MakeString(String text)
{
LocalizedString(-1);
byte[] array = new byte[4];
byte[] buffer = Encoding.ASCII.GetBytes(text);
Array.Resize<Byte>(ref buffer, buffer.Length + 1);
SetMemory(0x10050010, buffer);
SetMemory(0x10050000, new byte[] { 0x00000001 });
Thread.Sleep(30);
GetMemory(0x10050004, ref array);
Array.Reverse(array);

return BitConverter.ToUInt32(array, 0);
}
public void DestroyElem(UInt32 address)
{
SetMemory(address, new Byte[0xB4]);
}

public UInt32 Index(UInt32 address, Int32 client, UInt32 size = 0x3700)
{
return (address + ((UInt32)client * size));
}
public void LocalizedString(Int32 client)
{
SetDvar(client, "loc_warnings", "0");
SetDvar(client, "loc_warningsAsErrors", "0");
}
public void SetDvar(Int32 client, String input, String value)
{
ServerCommand(client, "v " + input + " \"" + value + "\"");
}


public void ServerCommand(Int32 client, String input)
{
Byte[] buffer = new Byte[4];
Byte[] bytes = Encoding.ASCII.GetBytes(input);
Array.Resize<Byte>(ref bytes, bytes.Length + 1);
Byte[] array = BitConverter.GetBytes((UInt32)client);
Array.Reverse(array);

SetMemory(0x10040010, bytes);
SetMemory(0x10040004, array);
SetMemory(0x10040000, new byte[] { 0x00000001 });
do
{
GetMemory(0x10040000, ref buffer);
}
while (buffer[3] != 0);
}


}


plz leave feed back if it works Smile
(adsbygoogle = window.adsbygoogle || []).push({});

The following user thanked milky4444 for this useful post:

zZHackzZ
07-10-2013, 02:33 PM #2
seb5594
Proud Former Admin
I will fix it. I seen yesterday on a other Guy the Fail Smile
07-10-2013, 02:40 PM #3
zZHackzZ
Climbing up the ladder
Originally posted by milky4444 View Post
so after editing and looking through seb5594's rpc and hud elems code i eventually got no syntax errors, also this has not been tested yet and if it doesent work just try to make some changes in the coding untill it does. i will update this code if it doesnt work with a new one that will but anyways you might need visual studios 2010 for the "boolean" to work

      public Boolean Enable114RPC()
{
SetMemory(0x10030000, new byte[] { 0x00, 0x72, 0x4C, 0x38, 0x00, 0x73, 0x4B, 0xE8 });
return false;

SetMemory(0x1d0ce6c, new byte[1]);
return false;

SetMemory(0x38ede8, new byte[] {
0xf8, 0x21, 0xff, 0x61, 0x7c, 8, 2, 0xa6, 0xf8, 1, 0, 0xb0, 60, 0x60, 0x10, 3,
0x80, 0x63, 0, 0, 0x60, 0x62, 0, 0, 60, 0x60, 0x10, 4, 0x80, 0x63, 0, 0,
0x2c, 3, 0, 0, 0x41, 130, 0, 40, 60, 0x60, 0x10, 4, 0x80, 0x63, 0, 4,
60, 160, 0x10, 4, 0x38, 0x80, 0, 0, 0x30, 0xa5, 0, 0x10, 0x4b, 0xe8, 0xb2, 0x7d,
0x38, 0x60, 0, 0, 60, 0x80, 0x10, 4, 0x90, 100, 0, 0, 60, 0x60, 0x10, 5,
0x80, 0x63, 0, 0, 0x2c, 3, 0, 0, 0x41, 130, 0, 0x24, 60, 0x60, 0x10, 5,
0x30, 0x63, 0, 0x10, 0x4b, 0xe2, 0xf9, 0x7d, 60, 0x80, 0x10, 5, 0x90, 100, 0, 4,
0x38, 0x60, 0, 0, 60, 0x80, 0x10, 5, 0x90, 100, 0, 0, 60, 0x60, 0x10, 3,
0x80, 0x63, 0, 4, 0x60, 0x62, 0, 0, 0xe8, 1, 0, 0xb0, 0x7c, 8, 3, 0xa6,
0x38, 0x21, 0, 160, 0x4e, 0x80, 0, 0x20});
return false;

return true;
}
private void SetMemory(uint Address, byte[] Bytes)
{
PS3TMAPI.ProcessSetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0xFFFFFFFF, Address, Bytes);
}
private void GetMemory(uint Address, byte[] Bytes)
{
PS3TMAPI.ProcessGetMemory(0, PS3TMAPI.UnitType.PPU, ProcessID, 0, Address, ref Bytes);
}
public UInt32 SetText(Int32 client, String text, Int32 Font, float fontsize, float x, float y, Int32[] colors)
{
UInt32 elem = HudElem_Alloc();

SetMemory(elem, Reverse(BitConverter.GetBytes(1)));
SetMemory(elem + 0x84, Reverse(BitConverter.GetBytes(MakeString(text))));
SetMemory(elem + 0x88, new Byte[] { 0x44, 0x7A, 0x40, 0x00 });
SetMemory(elem + 0x04, Reverse(BitConverter.GetBytes(y)));
SetMemory(elem + 0x08, Reverse(BitConverter.GetBytes(x)));
SetMemory(elem + 0x28, Reverse(BitConverter.GetBytes(Font)));
SetMemory(elem + 0xA8, Reverse(BitConverter.GetBytes((UInt32)client)));
SetMemory(elem + 0x14, Reverse(BitConverter.GetBytes(fontsize)));
SetMemory(elem + 0x4c, Reverse(BitConverter.GetBytes(0)));
SetMemory(elem + 0x34, new Byte[] { BitConverter.GetBytes(colors[0])[0], BitConverter.GetBytes(colors[1])[0], BitConverter.GetBytes(colors[2])[0], BitConverter.GetBytes(colors[3])[0] });
SetMemory(elem + 0xB3, new Byte[1] { 0x01 });
Thread.Sleep(30);
return elem;
}

public UInt32 SetIcon(Int32 client, Int32 shader, Int32 width, Int32 height, float x, float y, Int32[] colors)
{
UInt32 elem = HudElem_Alloc();

SetMemory(elem + 0x4C, Reverse(BitConverter.GetBytes(shader)));
SetMemory(elem + 0x04, Reverse(BitConverter.GetBytes(y)));
SetMemory(elem + 0x08, Reverse(BitConverter.GetBytes(x)));
SetMemory(elem + 0x44, Reverse(BitConverter.GetBytes(width)));
SetMemory(elem + 0x48, Reverse(BitConverter.GetBytes(height)));
SetMemory(elem + 0x34, new Byte[] { BitConverter.GetBytes(colors[0])[0], BitConverter.GetBytes(colors[1])[0], BitConverter.GetBytes(colors[2])[0], BitConverter.GetBytes(colors[3])[0] });
SetMemory(elem + 0xA8, Reverse(BitConverter.GetBytes((UInt32)client)));
SetMemory(elem, Reverse(BitConverter.GetBytes(6)));

Thread.Sleep(30);
return elem;
}
public Byte[] Reverse(Byte[] bytes)
{
Array.Reverse(bytes);
return bytes;
}
private UInt32 HudElem_Alloc()
{
Byte[] buffer = new Byte[1];
UInt32 address;
LocalizedString(-1);
for (Int32 i = 0; i < 1024; i++)
{
address = (0x12E9858 + 3 + ((UInt32)i * 0xB4));
if (GetMemory(address, ref buffer))
{
if (buffer[0] == 0x00)
{
SetMemory(address, new byte[0xB3]);
return address - 3;
}
}
}
return 0x12E9858;
}

private bool GetMemory(uint address, ref byte[] buffer)
{
throw new NotImplementedException();
}

public UInt32 MakeString(String text)
{
LocalizedString(-1);
byte[] array = new byte[4];
byte[] buffer = Encoding.ASCII.GetBytes(text);
Array.Resize<Byte>(ref buffer, buffer.Length + 1);
SetMemory(0x10050010, buffer);
SetMemory(0x10050000, new byte[] { 0x00000001 });
Thread.Sleep(30);
GetMemory(0x10050004, ref array);
Array.Reverse(array);

return BitConverter.ToUInt32(array, 0);
}
public void DestroyElem(UInt32 address)
{
SetMemory(address, new Byte[0xB4]);
}

public UInt32 Index(UInt32 address, Int32 client, UInt32 size = 0x3700)
{
return (address + ((UInt32)client * size));
}
public void LocalizedString(Int32 client)
{
SetDvar(client, "loc_warnings", "0");
SetDvar(client, "loc_warningsAsErrors", "0");
}
public void SetDvar(Int32 client, String input, String value)
{
ServerCommand(client, "v " + input + " \"" + value + "\"");
}


public void ServerCommand(Int32 client, String input)
{
Byte[] buffer = new Byte[4];
Byte[] bytes = Encoding.ASCII.GetBytes(input);
Array.Resize<Byte>(ref bytes, bytes.Length + 1);
Byte[] array = BitConverter.GetBytes((UInt32)client);
Array.Reverse(array);

SetMemory(0x10040010, bytes);
SetMemory(0x10040004, array);
SetMemory(0x10040000, new byte[] { 0x00000001 });
do
{
GetMemory(0x10040000, ref buffer);
}
while (buffer[3] != 0);
}


}


plz leave feed back if it works Smile


didnt work for me but i fixed it myself , thanks anyway Smile
07-10-2013, 05:37 PM #4
Originally posted by zZHackzZ View Post
didnt work for me but i fixed it myself , thanks anyway Smile

how did u do it?

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo