Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá pessoal, apartir do update 9.1, a Cipsoft botou um novo sistema, que agora os programadores precisam pegar a base do endereço para o seu bot funcionar perfeitamente em computadores com sistemas operacionais Windows 7 e Windows Vista.

Bom, foi um sistema falho...

Declare nas uses:

PsAPI
Declare a função necessaria para pegar a base do endereço:
function GetTibiaBaseAddress(ProcessID: Cardinal): Pointer;

var

  Modules: Array of HMODULE;

  cbNeeded, i: Cardinal;

  ModuleInfo: TModuleInfo;

  ModuleName: Array [0 .. MAX_PATH] of Char;

  PHandle: THandle;

begin

  Result := nil;

  SetLength(Modules, 1024);

  PHandle := OpenProcess(PROCESS_QUERY_INFORMATION + PROCESS_VM_READ, FALSE,

    ProcessID);

  if (PHandle <> 0) then

    begin

	  EnumProcessModules(PHandle, @Modules[0], 1024 * SizeOf(HMODULE),

	    cbNeeded);

	  SetLength(Modules, cbNeeded div SizeOf(HMODULE));

	  for i := 0 to Length(Modules) - 1 do

	    begin

		  GetModuleBaseName(PHandle, Modules[i], ModuleName, SizeOf(ModuleName)

		    );

		  if AnsiCompareText('Tibia.exe', ModuleName) = 0 then

		    begin

			  GetModuleInformation(PHandle, Modules[i], @ModuleInfo, SizeOf

				  (ModuleInfo));

			  Result := ModuleInfo.lpBaseOfDll;

			  CloseHandle(PHandle);

			  Exit;

		    end;

	    end;

    end;

end;
Declare as variaveis:
  PH: THandle;

  PID, Thid: Dword;

  Offset: Integer;

  TibiaH: THandle
Declare a função para ler os endereços de memoria:
function ReadInteger(Address: Integer): Integer;

var

  value: Integer;

  ler: Dword;

begin

  Thid := GetWindowThreadProcessId(TibiaH, @PID);

  PH := OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);

  ReadProcessMemory(PH, Ptr(Address), @value, 4, ler);

  Result := value;

end;
Declare a função para pegar o ProcessID:
function ProcessID: Integer;

begin

  TibiaH := FindWindow('TibiaClient', nil);

  Thid := GetWindowThreadProcessId(TibiaH, @PID);

  PH := OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);

  Result := PID;

end;
Pronto, agora já podemos burlar o sistema da Cipsoft. Agora um simples exemplo de como você deve usar: Declare as consts:
const

  adrXOR = $7ADFD0;

  adrMyHP = $943000;

  adrMyMana = $7AE024;
Agora, declare a função para retornar o Health do seu character:
function PlayerHealth: Integer;

var

  HP: Integer;

  uXor: Integer;

begin

  Offset := Integer(GetTibiaBaseAddress(ProcessID));

  HP := ReadInteger((adrMyHP + Offset) - $400000);

  uXor := ReadInteger((adrXOR + Offset) - $400000);

  Result := HP xor uXor;

end;
Função para pegar a Mana do seu character:
function PlayerMana: Integer;

var

  Mana: Integer;

  uXor: Integer;

begin

  Offset := Integer(GetTibiaBaseAddress(ProcessID));

  Mana := ReadInteger((adrMyMana + Offset) - $400000);

  uXor := ReadInteger((adrXOR + Offset) - $400000);

  Result := Mana xor uXor;

end;
Vou deixar como o meu .pas ficou:

Qualquer duvida, só postar.

{ ---------------------------

    Feito por Kimoszin

    www.TibiaKing.com

---------------------------- }


unit uMain;


interface


uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, PsAPI, StdCtrls;


type

  TForm1 = class(TForm)

    lbHealth: TLabel;

    Button1: TButton;

    lbMana: TLabel;

    procedure Button1Click(Sender: TObject);

    private

    public

  end;


var

  Form1: TForm1;

  { Variaveis }

  PH: THandle;

  PID, Thid: Dword;

  Offset: Integer;

  TibiaH: THandle;


implementation


{$R *.dfm}


{ Endereços de Memoria Tibia 9.53 }

const

  adrXOR = $7ADFD0;

  adrMyHP = $943000;

  adrMyMana = $7AE024;


{ Função para ler números (Int)eiros }

function ReadInteger(Address: Integer): Integer;

var

  value: Integer;

  ler: Dword;

begin

  Thid := GetWindowThreadProcessId(TibiaH, @PID);

  PH := OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);

  ReadProcessMemory(PH, Ptr(Address), @value, 4, ler);

  Result := value;

end;


{ Função para pegar o número do processo do Tibia }

function ProcessID: Integer;

begin

  TibiaH := FindWindow('TibiaClient', nil);

  Thid := GetWindowThreadProcessId(TibiaH, @PID);

  PH := OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);

  Result := PID;

end;


{ Função para pegar o endereço base do Tibia }

function GetTibiaBaseAddress(ProcessID: Cardinal): Pointer;

var

  Modules: Array of HMODULE;

  cbNeeded, i: Cardinal;

  ModuleInfo: TModuleInfo;

  ModuleName: Array [0 .. MAX_PATH] of Char;

  PHandle: THandle;

begin

  Result := nil;

  SetLength(Modules, 1024);

  PHandle := OpenProcess(PROCESS_QUERY_INFORMATION + PROCESS_VM_READ, FALSE,

    ProcessID);

  if (PHandle <> 0) then

    begin

	  EnumProcessModules(PHandle, @Modules[0], 1024 * SizeOf(HMODULE),

	    cbNeeded);

	  SetLength(Modules, cbNeeded div SizeOf(HMODULE));

	  for i := 0 to Length(Modules) - 1 do

	    begin

		  GetModuleBaseName(PHandle, Modules[i], ModuleName, SizeOf(ModuleName)

		    );

		  if AnsiCompareText('Tibia.exe', ModuleName) = 0 then

		    begin

			  GetModuleInformation(PHandle, Modules[i], @ModuleInfo, SizeOf

				  (ModuleInfo));

			  Result := ModuleInfo.lpBaseOfDll;

			  CloseHandle(PHandle);

			  Exit;

		    end;

	    end;

    end;

end;


{ Função que retornar o Health(Vida) do personagem }

function PlayerHealth: Integer;

var

  HP: Integer;

  uXor: Integer;

begin

  Offset := Integer(GetTibiaBaseAddress(ProcessID));

  HP := ReadInteger((adrMyHP + Offset) - $400000);

  uXor := ReadInteger((adrXOR + Offset) - $400000);

  Result := HP xor uXor;

end;


{ Função que retornar a Mana do personagem }

function PlayerMana: Integer;

var

  Mana: Integer;

  uXor: Integer;

begin

  Offset := Integer(GetTibiaBaseAddress(ProcessID));

  Mana := ReadInteger((adrMyMana + Offset) - $400000);

  uXor := ReadInteger((adrXOR + Offset) - $400000);

  Result := Mana xor uXor;

end;


procedure TForm1.Button1Click(Sender: TObject);

begin

{ Modo de usar }

  lbHealth.Caption := 'Health: ' + IntToStr(PlayerHealth);

  lbMana.Caption := 'Mana: ' + IntToStr(PlayerMana);

end;


end.

Editado por Kimoszin (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Respostas 23
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Olá pessoal, apartir do update 9.1, a Cipsoft botou um novo sistema, que agora os programadores precisam pegar a base do endereço para o seu bot funcionar perfeitamente em computadores com sistemas operacionais Windows 7 e Windows Vista. Bom, foi um sistema falho... Declare nas uses: PsAPI Declare a função necessaria para pegar a base do endereço: function GetTibiaBaseAddress(ProcessID: Cardinal): Pointer; var Modules: Array of HMODULE; cbNeeded, i: Cardinal; ModuleIn

Offset não precisa de base, é sempre a mesma coisa, tu só tem que pegar a base do endereço.

Funciona perfeitamente no Delphi 7

  • 2 weeks later...
  • 3 weeks later...

.

Editado por yurinho190 (veja o histórico de edições)

"Cada um de nós é livre para acreditar no que quiser, e minha resposta mais simples para isso é: Deus não existe. Ninguém criou o universo e ninguém comanda a nossa fé."

-Stephen Hawking

stephen-hawking-250x200.jpg

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

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.

  • Conteúdo Similar

    • Por Under
      ATENÇÃO, DESENVOLVEDORES DE OTSERV! 
      Uma nova era está chegando — e você vai fazer parte dela desde o começo! 
       Ferramentas de IA + Formação Completa
      Estamos finalizando ferramentas exclusivas de inteligência artificial que vão revolucionar a forma como você cria e gerencia servidores de Tibia.
      E pra abrir com estilo, chegou a primeira etapa da nossa formação completa:
       Curso de Pixel Art para Tibia e Derivados


      Instrutor: Brendon Nogard, fundador da Pixel Art School
      Uma das maiores referências em arte para servidores de tibia no Brasil!
       Quem é o Nogard? @Nogard
      video-de-apresent.mp4
       
      Criador das primeiras remakes gráficas da PXG
      Mais de 10 anos de experiência com Pixel Art
      Conduziu a evolução da perspectiva GBA para um visual moderno e imersivo
      Influenciou uma geração inteira de criadores na comunidade OTServer no Brasil.
       O que você vai aprender nesse curso?
      Compre Aqui!
       Perspectiva 45° para Tibia e derivados
       Criação de itens: pokébolas, loots, mochilas, poções
       Personagens animados com variações de cabelo
       Criaturas como Wolf, Werewolf, Snake, Horse e Centauro
       Cenários: paredes, cortinas, troféus
       Texturas: folhas, rochas
       Fundamentos de estilo, coerência e construção de sprites profissionais
        Duração: 12 horas
        VALOR : R$250,00
       BÔNUS POR R$50,00
      Também está disponível o Curso de Pixel Art Top Down, ideal pra quem quer começar do zero absoluto:
      Crie personagens, inimigos, chefes
      Monte todo o ambiente do seu jogo
         Duração: 3 horas
       Por que isso é importante pra você?
      Esse é o primeiro passo pra criar um OTServer com:
       Identidade visual única
       Alto nível gráfico
       Suporte de ferramentas de IA exclusivas
       E um método claro, testado e acessível!
       Nas próximas 4 semanas...
      Vamos liberar novos cursos sobre:
       Criação de mapas
       Desenvolvimento de sistemas e scripts
       IA aplicada ao design de jogo (desenvolvimento)
       Balanceamento, mecânicas e muito mais!
       Garanta sua vaga agora!
      Comece hoje mesmo com o pé direito.
      Compre Aqui!
    • Por Under
      A CipSoft acaba de anunciar uma grande novidade: a empresa agora também será responsável pelo desenvolvimento e operação do clássico The Settlers Online! 
      O time que já cuidava do jogo seguirá dedicado ao projeto, mas agora diretamente do novo escritório da CipSoft em Düsseldorf, na Alemanha.
       
      Pra quem não conhece, The Settlers Online é um jogo com uma base de jogadores muito fiel e engajada — algo que a CipSoft conhece bem graças à comunidade Tibiana que, há décadas, mostra paixão, comprometimento e amor pelo jogo. 
      O mais importante:
      É incrível ver a CipSoft crescendo e levando seu espírito de comunidade para novos horizontes, sem esquecer de onde veio e quem está com ela há tantos anos. 
      Anúncio oficial no fórum do Tibia
      Site oficial de The Settlers Online (Brasil)
       
    • Por Under
      Apresentando o Tibia-IA: A IA para Desenvolvimento de Servidores Tibia! 
       O que é o Tibia-IA?
      Um modelo de IA especializado para Tibia! Ele está atualmente em teste gratuito, e eu adoraria que vocês o experimentassem. Basta acessar https://ai.tibiaking.com, criar uma conta e começar a usar totalmente de graça! 
       Versão Experimental Fechada
      Atualmente, algumas funcionalidades ainda estão em desenvolvimento. No momento, apenas a geração de scripts está disponível para o público.
      Se encontrarem qualquer problema nos scripts gerados, me avisem! Vamos juntos construir a IA mais poderosa para ajudar no desenvolvimento de servidores Tibia!  
      Contato direto discord : underewar
       Acesse agora: https://ai.tibiaking.com
       Como funciona?
       Geração automática de scripts LUA para TFS  Suporte a diferentes eventos, criaturas, NPCs, magias, etc.  Ferramenta em constante evolução para aprimorar o desenvolvimento Novidades em breve confira no site. O acesso ao Tibia-IA está disponível para testes GRATUITOS! 
      Basta criar uma conta em: https://ai.tibiaking.com
      Utilize a IA para gerar seus scripts de forma simples e rápida
      Envie feedbacks para ajudarmos a tornar a ferramenta ainda melhor!

      Problemas relatar diretamente no meu discord pessoal : underewar
       
       
    • Por Raito
      Eu e mais 3 pessoas gostariamos de criar um digitibia alguem poderia me ajudar disponibilizando uma base que esteja funcionando, as unicas que eu encontrei nao funcionam. se alguem tiver para disponibilizar eu agradesço muito.
      meu email é 
      [email protected]
    • Por BTitan
      Reviva a nostalgia do Tibia 8.6 com um toque das novidades modernas, mantendo a essência clássica que você ama. Nosso mapa é limpo e otimizado, perfeito para wars intensas e estratégicas.
      Com mais de 100 áreas de caça, vocações equilibradas e eventos automáticos diários, garantimos diversão sem limites para todos os jogadores.
       
      ACC Manager: 1/1
      IP: go.baiaktitan.com
      https://www.baiaktitan.com
       
      Principais informações:
       
      Dedicado 24 horas sem lag Attack Speed moderado Cast System DODGE! CRITICAL! REFLECT! Upgrade Weapon Forge System Autoloot Anti Rollbacks Eventos exclusivos (Battle Royale, DOTA, Team Battle, entre outros...) Servidor integrado com Telegram (Contato direto com ADM) Cliente próprio (com novos itens, montarias e outfits) Mapa Baiak, modificado exclusivamente para o PvP Servidor otimizado, suportando mais de 1.000 players online  
      »» EXP Rate: 200x
      »» Skill Rate: 20x
      »» Magic Rate: 10x
      »» Loot Rate: 3x
       
      Aguardamos por você!
  • Estatísticas dos Fóruns

    96842
    Tópicos
    519594
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo