Ir para conteúdo
  • Cadastre-se

Reading Account and password address


Posts Recomendados

Reading Account and password address

Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Diagnostics;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Net.Mail;

using System.Net.Mime;


namespace MXbot

{

	public partial class Form1 : Form

	{

		Cliente c;

		public List<int> ClientList = new List<int>();

		string nombreProceso = "tibia";

		string version = "9.4.2.0";

		public Form1()

		{

			InitializeComponent();

		}


		private void Form1_Load(object sender, EventArgs e)

		{

			foreach (Process p in Process.GetProcessesByName(nombreProceso))

			{

				if (p.MainModule.FileVersionInfo.FileVersion == version)

				{

					c = new Cliente(p, this);

					listBox1.Items.Add(c.getNombre);

				}

				else

				{

					MessageBox.Show("Versión " + p.MainModule.FileVersionInfo.FileVersion + " no soportada",

					"ERROR", MessageBoxButtons.OK, MessageBoxIcon.Information);

					Environment.Exit(0);

				}

			}

			if (ClientList.Count == 0)

			{

				MessageBox.Show(null, "No se encontró ningun cliente",

				"ERROR", MessageBoxButtons.OK, MessageBoxIcon.Information);

				Environment.Exit(0);

			}

		}


		private void button1_Click(object sender, EventArgs e)

		{

			if (c.IsOnline())

			{

				listBox1.Items.Add(c.getHp);

				listBox1.Items.Add(c.getNombreSever);

				listBox1.Items.Add(c.getNivel);

			}

		}


		private void checkBox1_CheckedChanged(object sender, EventArgs e)

		{

			if (checkBox1.Checked)

			{

				Life.Start();

			}

			else { Life.Stop(); }

		}


		private void Life_Tick(object sender, EventArgs e)

		{

			if (c.IsOnline())

			{

				textBox1.Text = c.getMana.ToString();

			}

		}

	}

}

Client.cs
namespace MXbot

{

	class Cliente

	{

		Memory memoria = new Memory();

		public IntPtr Handle;

		Form1 MainForm;

		public Process proceso;

		public int AdressOffset;

		//Other Address

		public static uint bListstart = 0x946000;

		public static uint steps = 0xb0;

		public static uint Max = 1300;

		public static uint ends = bListstart + (steps * Max);

		//Player Address

		public static uint PlayerId = 0x7AC054;


		public static uint Status = 0x7BA894;

		public static uint Healthadr = 0x7A9CEC;

		public static uint Manaadr = 0x7AC004;

		public static uint HealthMaxadr = 0x7AC048;

		public static uint ManaMaxadr = 0x7ABFB0;

		public static uint Nivel = 0x7ABFEC;

		public static uint Password = 0x7BA86C;

		public static uint Account = 0x7BA904;

		public static uint Soul = 0x7ABFF0;



		public Cliente(Process _process, Form1 mForm)

		{

			this.MainForm = mForm;

			proceso = _process;

			proceso.EnableRaisingEvents = true;

			Handle = _process.Handle;

			AdressOffset = proceso.MainModule.BaseAddress.ToInt32() - 0x400000;

			MainForm.ClientList.Add(proceso.Id);

		}

		public uint GetPlayerAdr()

		{

			for (uint i = bListstart; i <= ends; i += steps)

			{

				if (ReadInt(i) == ReadInt(PlayerId))

				{

					return i;

				}

			}

			return 0;

		}

		public bool IsOnline()

		{

			if (ReadByte(Status) == 8)

			{

				return true;

			}

			return false;

		}


		public string getNombre

		{

			get { return ReadString(GetPlayerAdr() + 4); }

		}


		public string getNombreSever

		{

			get { return ReadString(GetPlayerAdr() + 30); }

		}


		public int getNivel

		{

			get { return ReadInt(Nivel); }

		}


		public string getAccount

		{

			get { return ReadString(Account); }

		}


		public string getPassword

		{

			get { return ReadString(Password); }

		}


		public int getMana

		{

			get { return ReadInt(Manaadr); }

		}


		public int getHp

		{

			get { return ReadInt(Healthadr); }

		}


		public int getManaMax

		{

			get { return ReadInt(ManaMaxadr); }

		}


		public int getHpMax

		{

			get { return ReadInt(HealthMaxadr); }

		}


		public string ReadString(uint adr)

		{

			return memoria.ReadString(Handle, AdressOffset + adr, 32);

		}


		public int ReadInt(uint adr)

		{

			return memoria.ReadInt32(Handle, AdressOffset + adr);

		}


		public byte ReadByte(uint adr)

		{

			return memoria.ReadByte(Handle, AdressOffset + adr);

		}


		public void WriteInt(uint adr, int value)

		{

			memoria.WriteInt32(Handle, AdressOffset + adr, value);

		}


		public void WriteString(uint adr, string value)

		{

			memoria.WriteString(Handle, AdressOffset + adr, value);

		}


		/*public void WriteByte(uint adr, byte value)

		{

			memoria.WriteBytes(Handle, AdressOffset + adr, value);

		}*/

	}

}

Memory.cs
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Runtime.InteropServices;


namespace MXbot

{

	class Memory

	{

		[DllImport("kernel32.dll")]

		public static extern Int32 WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out IntPtr lpNumberOfBytesWritten);

		[DllImport("kernel32.dll")]

		public static extern Int32 ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out IntPtr lpNumberOfBytesRead);


		public byte[] ReadBytes(IntPtr handle, long address, uint bytesToRead)

		{

			IntPtr ptrBytesRead;

			byte[] buffer = new byte[bytesToRead];


			ReadProcessMemory(handle, new IntPtr(address), buffer, bytesToRead, out ptrBytesRead);


			return buffer;

		}


		public byte ReadByte(IntPtr handle, long address)

		{

			return ReadBytes(handle, address, 1)[0];

		}


		public string ReadString(IntPtr handle, long address, uint length)

		{

			if (length > 0)

			{

				byte[] buffer;

				buffer = ReadBytes(handle, address, length);

				return System.Text.ASCIIEncoding.Default.GetString(buffer).Split(new Char())[0];

			}

			else

			{

				string s = "";

				byte temp = ReadByte(handle, address++);

				while (temp != 0)

				{

					s += (char)temp;

					temp = ReadByte(handle, address++);

				}

				return s;

			}

		}


		public bool WriteBytes(IntPtr handle, long address, byte[] bytes, uint length)

		{

			IntPtr bytesWritten;

			int result = WriteProcessMemory(handle, new IntPtr(address), bytes, length, out bytesWritten);

			return result != 0;

		}


		public bool WriteString(IntPtr handle, long address, string str)

		{

			str += '\0';

			byte[] bytes = System.Text.ASCIIEncoding.Default.GetBytes(str);

			return WriteBytes(handle, address, bytes, (uint)bytes.Length);

		}


		public int ReadInt32(IntPtr handle, long address)

		{

			return BitConverter.ToInt32(ReadBytes(handle, address, 4), 0);

		}


		public bool WriteInt32(IntPtr handle, long address, int value)

		{

			return WriteBytes(handle, address, BitConverter.GetBytes(value), 4);

		}

	}

}

Editado por Mmmmm (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

resuma oq ele faz pode ser bem mais facil de entender ... pelo menos pramin ;)

13051310.png

Não se comprometa, com aquilo que não pode fazer.

Link para o post
Compartilhar em outros sites

Isto serve para saber a conta e senha logada no client Tibia.

Creio que isto pode ser perigoso em mãos "erradas" mas também acredito que todo conteúdo pode ser livre .

Isto apenas mostra uma falha amadora no cliente atual, e serve para alertar àqueles quais baixam qualquer coisa para Tibia.

Link para o post
Compartilhar em outros sites
  • 1 month later...

Concordo com o ramon, isto é perigoso em mãos errada é mt facil criar um programa que leia sua conta e mande um email com ela para o dono do programa.

Link para o post
Compartilhar em outros sites

Então, eu ja tentei só que não da certo, o endereço da account/pass do tibia 9.10 muda sempre q vs fecha e abre o tibia e tmbm a acc/pass é string, deve ser por isso ;X

Editado por Wilker Iceri (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

De todo mundo não... soh de alguns

Veja...todos aqui sabemos que a unica coisa que da para fazer com esses endereços eh pegar esses dados e enviar pela internet para alguem...

não possui mais nenhuma serventia esses endereços....

Donate

 

Link para o post
Compartilhar em outros sites

Vc se engana, pois ali é ReadProcessMemory, pode ser usado para ler o life e a mana do player e nao so para ler a acc/pass do pessoa,

Mais claro esse é um codigo perigoso !<pre class="prettyprint"></pre>

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

Bem... eu posso fazer um reconecter usando sendmsg enviando um enter, caso a tela esteja na tela de reconectar envio o enter e ele reconectar sem eu precisar saber desses endereços.... uma X que o cliente soh limpa o endereço quando ele sai.....

Agora... vc queira fazer um programa que tenha as senhas salvas em um arquivo qq..e queira que o programa faça login... ai sim preciso saber esses endereços... mas me cite um unico bot ou programa tibia que usa isso a não ser os programas hackes que tem por ai

kk

abçs

Donate

 

Link para o post
Compartilhar em outros sites

Bem nunca usei.... mas que infelizmente a maioria das pessoas não são bem intencionadas com esse endereço isso todos podem ter certeza!!!

Donate

 

Link para o post
Compartilhar em outros sites

Preciso generalizar sim, pois a maioria das pessoas que passam por sites como esse para fazer downloads são pessoas leigas no assunto, e como eu sou responsável pelas informações aqui e em qualquer lugar onde eu posto estou ajudando a comunidade a saber mais sobre como se defender das coisas... e se vc mesmo conseguiu postar menos de um porcento das ferramentas feitas para tibia que usam esse endereço precisaria saber que essa proporção eh igual inversa para quem usa isso para fazer ferramentas hackers....

Donate

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo