Cliente -
Unrea1 - 13.06.2014
Hola, quisiera saber los pasos para crear un cliente, solamente quiero lo bбsico:
- Para jugar el servidor es necesario dicho cliente.
- Que el cliente detecte el archivo d3d9.dll de la carpeta del GTA SA, si es distinto el peso al archivo original, que no entre al servidor si su peso original es cambiado.
Sуlo eso, muchas gracias.
Respuesta: Cliente -
aoEXE - 14.06.2014
creo que te puedes basar en esto?
https://sampforum.blast.hk/showthread.php?tid=449430
Re: Cliente -
Unrea1 - 14.06.2014
Segъn el autor:
" sergios:
Este mйtodo esta obsoleto lo hice hace bastante tiempo y no es practico, no recomiendo su uso.Tengo un proyecto en C++ utilizando sockets y aplicando ingenierнa inversa en algunos complementos de SAMP que si que merece la pena, en un futuro lo publicare. "
Respuesta: Cliente -
aoEXE - 14.06.2014
pues el es bastante bueno en eso, y no he visto a mas que sepan tanto de ese tema u.u habrб que esperar o que salga otro que sepa tanto como el xD
Re: Cliente -
Unrea1 - 15.06.2014
Bien, ojalб alguien me pueda dar un asesoramiento o como crear йsto, lo colocarнa en los crйditos internos y por comandos de mi servidor.
Respuesta: Cliente -
DesingMyCry - 15.06.2014
Parte aprendiendo C++.
Respuesta: Cliente -
Zume - 15.06.2014
no sй si te sirva esto, es un cуdigo publicado por Leonardo (ex programador de Gamerol)
Код:
_chdir("C:\\Archivos de programa\\Rockstar Games\\GTA San Andreas"); // No es necesario si el launcher estб en el directorio del GTA.
PROCESS_INFORMATION pi;
STARTUPINFO si;
memset(&pi, 0, sizeof(pi));
memset(&si, 0, sizeof(si));
si.cb = sizeof(si);
if(CreateProcess("gta_sa.exe", "-c -n Leonardo_Almeida -h 127.0.0.1 -p 7777", NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi))
{
HANDLE process = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, FALSE, pi.dwProcessId);
if(process)
{
LPVOID LoadLibAddr = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
LPVOID RemoteString = (LPVOID)VirtualAllocEx(process, NULL, strlen("samp.dll"), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
WriteProcessMemory(process, RemoteString, "samp.dll", strlen("samp.dll"), NULL);
CreateRemoteThread(process, NULL, NULL, (LPTHREAD_START_ROUTINE)LoadLibAddr, (LPVOID)RemoteString, NULL, NULL);
CloseHandle(process);
}
}
Respuesta: Cliente -
Tirael - 15.06.2014
Necesitaras varias cosas:
1є. Conocimiento de un lenguaje a travйs del cual programar dicho cliente ( Yo lo hice a travйs de c++).
2є. Crear 2 archivos ( El cliente y el servidor ).
3є. Si lo que deseas es que se detecte algunos archivos tendrбs que crear una funciуn que lo realice o simplemente buscar por internet.
Respuesta: Cliente -
JustBored - 15.06.2014
pawn Код:
#include <boost/filesystem.hpp>
bool fexists(char *file)
{
if(boost::filesystem::exists(file))
{
return true;
} else return false;
return ;
}
Eso te sirve para comprobar si existe un determinado archivo, usй la libreria boost.
Respuesta: Cliente -
oOFotherOo - 15.06.2014
Es simple debes utilizar sockets y verificar si el jugador esta conectado al servidor o no, respecto al DirectX 9 recuerde que no es necesario tener esta libreria dinamica en el directorio del GTA SA ya que cuando es instalada esta libreria se aloja en el directorio del windows.
Hay muchas maneras de verificar si este archivo existe, puede utilizar _access y si devuelve -1 es porque no existe, tambien puede intentar abrir el archivo y si falla es que no existe. Si utiliza las librerias boost es mбs sencillo aъn simplemente utilice la libreria filesystem y busque la funciуn exist.
PD: Para aquellas personas que dicen "es obligatorio implementar ingenieria inversa" ya les digo que no es obligatorio usted puede crear su propio launcher y que sus librerias dinamicas o ejecutables se carguen junto al GTA SA, claro que si vas a modificar el juego ya es obligatorio la ingenieria inversa.
EDIT:
Quote:
Originally Posted by JustBored
pawn Код:
#include <boost/filesystem.hpp>
bool fexists(char *file) { if(boost::filesystem::exists(file)) { return true; } else return false; return ; }
Eso te sirve para comprobar si existe un determinado archivo, usй la libreria boost.
|
їPara quй hacer esto si ya la funciуn del namespace filesystem devuelve true/false?
Un saludo.
Re: Cliente -
Unrea1 - 16.06.2014
Actualmente no se nada de C++, pero si se programar en pawn (regular/avanzado), tal vez alguien me podrнa dar una serie de pasos por MP o acб sobre lo que necesito, que detecte al hack del ****** u otros y que se necesite cierto cliente para entrar al servidor, gracias.
Re: Cliente -
Unrea1 - 23.06.2014
Revivo.
Respuesta: Re: Cliente -
JustBored - 23.06.2014
Quote:
Originally Posted by LatinZ
Actualmente no se nada de C++, pero si se programar en pawn (regular/avanzado), tal vez alguien me podrнa dar una serie de pasos por MP o acб sobre lo que necesito, que detecte al hack del ****** u otros y que se necesite cierto cliente para entrar al servidor, gracias.
|
Aprende C++ y despuйs enfocate en algo como un cliente.
Re: Cliente -
Unrea1 - 24.06.2014
No se ni por donde empezar, necesito un tutorial o una orientacion para empezar a aprender C++...
Respuesta: Cliente -
Swedky - 24.06.2014
Quote:
Originally Posted by EduGTA
Se hace con memory hacking, es algo que desde mi punto de vista es MUY avanzado.
Ademбs, el memory hacking estб prohibido
|
Edugta's comment.
Respuesta: Re: Cliente -
JustBored - 24.06.2014
Quote:
Originally Posted by LatinZ
No se ni por donde empezar, necesito un tutorial o una orientacion para empezar a aprender C++...
|
http://lmgtfy.com/?q=C%2B%2B+tutorial
Re: Cliente -
Unrea1 - 24.06.2014
Que risa, de todas formas gracias por la ayuda o_o.
Respuesta: Cliente -
OTACON - 24.06.2014
http://lmgtfy.com/?q=no+se+buscar+en+google
Respuesta: Cliente -
Jovazxc - 24.06.2014
Todo eso de detectar archivos no sirve de nada. Lo mejor serнa buscar las librerнas cargadas y hacer una comprobaciуn del fabricante del archivo. Bueno, eso serнa hasta que los desarrolladores de estos hacks clonen el nombre. No es muy difнcil y de hecho hay algunas funciones de Windows para hacer tal cosa