elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
12 Octubre 2008, 22:02  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++
| | |-+  EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 4 Ir Abajo Imprimir
Autor Tema: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)  (Leído 7213 veces)
EL PRINTERO

Desconectado Desconectado

Mensajes: 72



Ver Perfil
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #15 en: 12 Septiembre 2007, 06:19 »

estuve probando wallhacks, es decir buscando alguno que pueda a llegar a ser "perfect" y probé el wh de opterman ese que usa engfuncs, es bueno pero tira las fps, acá dejo uno que no me tira las fps pruébenlo ustedes, es puro opengl.

http://img61.imageshack.us/img61/4072/detrain0000kz5.jpg
http://img61.imageshack.us/img61/3491/detrain0003ui0.jpg

Código:
// hecho por sharkboy
if(!(mode==GL_TRIANGLES||mode==GL_TRIANGLE_STRIP||mode==GL_TRIANGLE_FAN||mode==GL_QUADS))
{
GLfloat curcol[4];
glGetFloatv(GL_CURRENT_COLOR, curcol);
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glColor4f(curcol[0],curcol[1],curcol[2],0.5f);
glClearColor(0.0f,0.0f,0.0f,0.0f);
}

pglBegin(mode);

En línea

TIGRE CAPO
CHACA GATO
sirdarckcat
sdc
CoAdmin
*****
Desconectado Desconectado

Mensajes: 4.655


HAND


Ver Perfil WWW
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #16 en: 14 Septiembre 2007, 05:27 »

Si el printero quiere ayuda para hacer un hack, no esta en contra de ninguna regla.
si siguen peleando, el post se va a cerrar.
En línea

Ferсhu

Desconectado Desconectado

Mensajes: 1.221

Menos palabras y Mas codigos.


Ver Perfil WWW
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #17 en: 14 Septiembre 2007, 05:32 »

y ami por q me borraste el post Sdc?? jaja si yo no era el q estaba peleando.

buenoo decia q me gustaria aprender sobre la parte del juego, lo demas lo se.

y Hasta ahora solo se los conceptos basicos y "las ventajas" q se pueden obtener.

Pero nose q hay q modificar ni donde estan esos datos para modificarlos.


Saludos!!
En línea

EL PRINTERO

Desconectado Desconectado

Mensajes: 72



Ver Perfil
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #18 en: 14 Septiembre 2007, 05:47 »

gracias sirdarckcat, y por mi parte no hay más discusión mientras no vuelvan a referirse a mi ni incitarme para discutir. y ya no necesito ayuda ahora trataré sólo de postear cosas para mejorar el thread.

para continuar con el tema, dejo como pueden hacer un nosky (aunke ya estaba explicado), pero esta ves dejo directo el code:

globales:

Código:
int sky = 1;
bool nosky = false;


en glbegin

Código:
void APIENTRY hooked_glBegin(GLenum mode)
{
if(sky == 1 && mode== GL_QUADS) // No Sky
{ nosky = true;}
else
{ nosky = false;}

d_glBegin(mode);
}


en glvertex3fv


Código:
void APIENTRY hooked_glVertex3fv (const GLfloat *v)
{
if(nosky == true)
{
return;
}
    d_glVertex3fv(v);
}

y en glclear

Código:
void APIENTRY hooked_glClear (GLbitfield mask)
{
if (mask == GL_DEPTH_BUFFER_BIT)

{
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        
}
d_glClear(mask);
}

« Última modificación: 14 Septiembre 2007, 05:50 por el printero » En línea

TIGRE CAPO
CHACA GATO
Ferсhu

Desconectado Desconectado

Mensajes: 1.221

Menos palabras y Mas codigos.


Ver Perfil WWW
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #19 en: 14 Septiembre 2007, 06:26 »

aver...yo te digo con ojo de kien no conoce el tema.....con cambiar una variable cambias la configuracion??? no me suena logico.

es decir sky la estas declarando osea la creas vos y la otra tambien, en donde modificas el codigo del juego, o de opengl. me explicas por q eso no tiene mucho sentido?
En línea

EL PRINTERO

Desconectado Desconectado

Mensajes: 72



Ver Perfil
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #20 en: 14 Septiembre 2007, 07:07 »

escuchá cuando vos iniciás el juego, se alistan todos los módulos
en cuestión, entonces cuando abrís el juego, lo q ocurre es que las
funciones del motor del juego y las de opengl hacen su trabajo. es
decir te rellenan con texturas, dibujan, permiten el movimiento de
los jugadores, manejo de sonidos, etc absolutamente todo. entonces
vos lo que tenés que hacer es lógicamente usar esas funciones si
tenés pensado modificar algo, bueno para eso te escribís un hack
en el cual llamás a esas funciones, ponés tu code para lo que quieras
que hagan, y luego las usás llamándolas.. algo así como este ejemplo
con HUD_Redraw

nuestra HUD_Redraw es llamada

llamamos a la HUD_Redraw original y guardamos el valor de retorno como un entero.

ponemos nuestro code después que HUD_Redraw ha finalizado

retornamos al caller, con el valor de retorno de la HUD_Redraw original.

entendés la idea, entonces de esto se trata y de ninguna otra cosa, sólo hacés hooking, pero lo que tenés que hacer es escribir en memoria tu code, para eso inyectás una dll en el espacio de memoria del juego, por ejemplo en el proceso del half life, entonces de esa forma vas a poder interceptar o llamar a las funciones originales, poner tu code y luego llamarlas de vuelta.. entendés se trata de eso. y sobre las funciones opengl ya están disponibles entre las dlls del juego y las hookeás a cada una usando winapi. cualquier duda preguntá pero tratá de mirar código también...
En línea

TIGRE CAPO
CHACA GATO
Ferсhu

Desconectado Desconectado

Mensajes: 1.221

Menos palabras y Mas codigos.


Ver Perfil WWW
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #21 en: 14 Septiembre 2007, 07:31 »

aver eso lo entiendo pero yo lo q veo ahi es q creaste tus propias funciones, y luego llamas a la original sin cambiarle los datos....(eso no entiendo)

es decir yo espero algo asi en pseudocodigo...

funcion hook_cielo(visible as boolean){

si  visible=true entonces pones visible=false

 cielo_original(visible);

return;

}

pero en ningun momento modificas nada de la original

Citar
void APIENTRY hooked_glVertex3fv (const GLfloat *v)
{
   if(nosky == true)
   {
      return;
   }
    d_glVertex3fv(v);
}

a mi entender esta es la original d_glVertex3fv(v);, cuando nosky esta en true la funcion cuando es llamda no hace nada. osea q la funcion d_glVertex3fv solo sirve para modificar el cielo?? asi tan simple.

Y solo modificas nosky (creada por vos) en una parte pero nunca la pasas como parametro.
« Última modificación: 14 Septiembre 2007, 07:44 por <~>FeRcHu<~> » En línea

De@th (L1zb3th)
TROLL

Desconectado Desconectado

Mensajes: 619

<-[Rin]->


Ver Perfil
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #22 en: 14 Septiembre 2007, 07:49 »

aver eso lo entiendo pero yo lo q veo ahi es q creaste tus propias funciones, y luego llamas a la original sin cambiarle los datos....(eso no entiendo)

es decir yo espero algo asi en pseudocodigo...

funcion hook_cielo(visible as boolean){

si  visible=true entonces pones visible=false

 cielo_original(visible);

return;

}

pero en ningun momento modificas nada de la original

Citar
void APIENTRY hooked_glVertex3fv (const GLfloat *v)
{
   if(nosky == true)
   {
      return;
   }
    d_glVertex3fv(v);
}

a mi entender esta es la original d_glVertex3fv(v);, cuando nosky esta en true la funcion cuando es llamda no hace nada. osea q la funcion d_glVertex3fv solo sirve para modificar el cielo?? asi tan simple.

Y solo modificas nosky (creada por vos) en una parte pero nunca la pasas como parametro.

hookeo una funcion de opengl, o sea, si en el cheat se puso NoSky, hace el return sin llamar a la funcion de OpenGL,caso contrario, dibuja el cielo ...
que se suele hacer usando esa funcion ...

NoSky debe ser global, obvio que no se pasa como parametro xD
Au Revoir !
En línea
Ferсhu

Desconectado Desconectado

Mensajes: 1.221

Menos palabras y Mas codigos.


Ver Perfil WWW
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #23 en: 14 Septiembre 2007, 08:04 »

entonces d_glVertex3fv solo es para dibujar el cielo....y para nada mas??

nosky es global....pero de su modulo por q el la crea. Solo esta para uso propio

quiero creer q declaro 2 variables y 3 funciones para tener la posiblidad de activar y desactivar por q sino es algo tan simple como hookear glVertex3fv y poner return y chau.
En línea

®®
Colaborador

Conectado Conectado

Mensajes: 5.269


Ver Perfil
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #24 en: 14 Septiembre 2007, 13:42 »

claro hookeas pero tienes que poder activar y desactivar el cheat. digamos que son variables de configuracion no hay que pasarlas como parametro simplemente comprobar su estado.
En línea
EL PRINTERO

Desconectado Desconectado

Mensajes: 72



Ver Perfil
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #25 en: 19 Septiembre 2007, 22:55 »

estaba aburrido y me puse a boludear con el cs, y probé este code para wiremodels haha es divertido pero no sirve para nada...

if(mode != GL_POLYGON && (mode==GL_TRIANGLES||mode==GL_TRIANGLE_STRIP||mode==GL_TRIANGLE_FAN))

{
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glLineWidth(2);
}
else
{
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
}

http://img208.imageshack.us/img208/4807/csmilitia0000gc1.jpg
http://img208.imageshack.us/img208/7484/csmilitia0006km7.jpg

col, y pudiste avanzar algo con pasar el sXe  :huh: :huh: :huh: ese anticheat realmente me cansó, no puedo creer que un anticheat dure tanto grrrrrr
encima es duro, ni los coders famosos han sacado nada efectivo todavia.
algo como un emulador no.


En línea

TIGRE CAPO
CHACA GATO
®®
Colaborador

Conectado Conectado

Mensajes: 5.269


Ver Perfil
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #26 en: 20 Septiembre 2007, 13:32 »

he llegado a injectar mi wh, pero se chapa el sxe con exception not handled despues de empezar a decir como un loko "INDEX N INDEX N" y peta el sxe jeje. se ve que detecta el hook en modo usuario, pero he pensado otra cosa y ya tengo casi todo el codigo  escrito, digamos que es aislar el proceso de momento ni process explorer ni otros similares pueden cerrar el proceso lo aplicare a este caso a ver que tal.
En línea
EL PRINTERO

Desconectado Desconectado

Mensajes: 72



Ver Perfil
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #27 en: 24 Noviembre 2007, 03:08 »

si ahora actualizaron a 4.3 el sXe, y habia unos cheats en ring 0 que funcionaban bien, hasta que sale el 4.3.. incluso un disabler, bue perdón por revivir el tema pero pueda ser que alguien se interece por última ves en codear hacks antes de que el tema quede olvidado para siempre  :-X :-X :-X
En línea

TIGRE CAPO
CHACA GATO
EL PRINTERO

Desconectado Desconectado

Mensajes: 72



Ver Perfil
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #28 en: 09 Diciembre 2007, 03:05 »

aimbot en kernelmode con funciones del juego (HL1) --> snippet

esto lo extraje de un post de ORGANNER que es el hombre que en estos momentos fabrica los cheats en kernelmode y los vende, aunke también hace algunos para el público... acá nos da una idea de como ir haciendo algo
no es mucho pero es algo lo mismo si en la web hay algo www.organner.pl


---- primero necesitamos un lugar para ejecutar nuestro code, el mio es NtUserValidateHandleSecure  porque es llamado en HUD_Redraw.

vas a necesitar hookear NtUserValidateHandleSecure y obtener un puntero a NtGetAsyncKeyState, ambas están guardadas en win32k.sys

Código:
DWORD new_NtUserValidateHandleSecure( DWORD dwUnknown )
{
    GetProcessName(szProcName);

    if( !strcmp(szProcName, "hl.exe") )
    {
        if( NtGetAsyncKeyState(iTranslateKey(g_CVAR.PanicKey)) < 0 )
        {
            if( !g_bPanicKey )
            {
                g_bPanicKey = TRUE;

                if( !g_bCheatActive )
                {
                    g_bCheatActive = TRUE;
                }
                else
                {
                    g_bCheatActive = FALSE;
                }
            }
        }
        else
        {
            g_bPanicKey = FALSE;
        }

        if( NtGetAsyncKeyState(iTranslateKey(g_CVAR.AimKey)) < 0 )
        {
            bAiming = TRUE;
        }
        else
        {
            bAiming = FALSE;
        }

        __try
        {
            if( !enginefunc_ptr )
                enginefunc_ptr = (cl_enginefunc_t*)g_CVAR.dwEngineFuncsPtr;
            if( !studio_api_ptr )
                studio_api_ptr = (engine_studio_api_t*)g_CVAR.dwStudioPtr;
            if( !playermove_ptr )
                playermove_ptr = (playermove_t*)g_CVAR.dwPlayerMovePtr;
            if( !fov_pointer )
                fov_pointer = g_CVAR.dwFovPtr;

            if( g_bCheatActive )
            {
                if( enginefunc_ptr != 0 && playermove_ptr != 0 && studio_api_ptr != 0 )
                {
                    if( enginefunc_ptr->GetLocalPlayer() != NULL )
                    {
                        if( g_CVAR.Aimbot )
                        {
                            pTargetEntity = NULL;
                        }

                        for(i = 1; i < 33; i++)
                        {
                            pEntity = enginefunc_ptr->GetEntityByIndex(i);

                            if( !pEntity || !pEntity->player )
                                continue;

                            enginefunc_ptr->pfnGetPlayerInfo(pEntity->index, &pEntityInfo);

                            if( pEntityInfo.thisplayer )
                            {
                                if( pEntityInfo.model != 0 && pEntityInfo.model[0] != 0 )
                                {
                                    g_iPlayerTeam = iGetTeam(pEntityInfo.model);
                                }
                            }
                            else
                            {
                                if( pEntity->curstate.solid && pEntity->curstate.messagenum + 5 > enginefunc_ptr->GetLocalPlayer()->curstate.messagenum )
                                {
                                    if( pEntityInfo.model != 0 && pEntityInfo.model[0] != 0 )
                                    {
                                        iCurrentEntityTeam = iGetTeam(pEntityInfo.model);
                                    }

                                    if( g_iPlayerTeam != iCurrentEntityTeam )
                                    {
                                        if( g_CVAR.Aimbot && enginefunc_ptr->GetLocalPlayer()->curstate.solid )
                                        {
                                            bContinue = TRUE;

                                            if( !g_CVAR.ThruWall )
                                            {
                                                enginefunc_ptr->pEventAPI->EV_LocalPlayerViewheight(Temp);

                                                Temp[0] += enginefunc_ptr->GetLocalPlayer()->origin[0];
                                                Temp[1] += enginefunc_ptr->GetLocalPlayer()->origin[1];
                                                Temp[2] += enginefunc_ptr->GetLocalPlayer()->origin[2];

                                                enginefunc_ptr->pEventAPI->EV_SetTraceHull(2);
                                                enginefunc_ptr->pEventAPI->EV_PlayerTrace(Temp, pEntity->origin, PM_GLASS_IGNORE, enginefunc_ptr->GetLocalPlayer()->index, &PlayerTrace);

                                                if( &PlayerTrace != NULL )
                                                {
                                                    if( PlayerTrace.fraction != 1.0f )
                                                    {
                                                        bContinue = FALSE;
                                                    }
                                                }
                                            }

                                            if( bContinue )
                                            {
                                                CalculateAiming(pEntity, Temp);

                                                if( bCalcScreen(Temp, ScreenPos) )
                                                {
                                                    if( (ScreenPos[0] >= g_iCenterX - g_CVAR.Fov) && (ScreenPos[0] <= g_iCenterX + g_CVAR.Fov) && (ScreenPos[1] >= g_iCenterY - g_CVAR.Fov) && (ScreenPos[1] <= g_iCenterY + g_CVAR.Fov) ) 
                                                    {
                                                        pTargetEntity = pEntity;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        if( g_CVAR.Aimbot && enginefunc_ptr->GetLocalPlayer()->curstate.solid )
                        {
                            if( bAiming && pTargetEntity != NULL )
                            {
                                bDisableAim = FALSE;

                                if( !bDisableAim )
                                {
                                    LocalToTarget(pTargetEntity, Temp);
                                    VectorAngles(Temp, AimViewAngels);

                                    AimViewAngels[0] *= -1;

                                    if(AimViewAngels[0] > 180) 
                                        AimViewAngels[0] -= 360;

                                    if(AimViewAngels[1] > 180) 
                                        AimViewAngels[1] -= 360;

                                    enginefunc_ptr->SetViewAngles(AimViewAngels);
                                }
                            }
                        }
                    }
                }
            }
        }
        __except(EXCEPTION_EXECUTE_HANDLER) 
        {
            return org_NtUserValidateHandleSecure(dwUnknown);
        }
    }

    return org_NtUserValidateHandleSecure(dwUnknown);
}

+ OGC CODE:

VOID CalculateAiming(cl_entity_t* pEntity, float* out)
{
    vec3_t vecEnd, up, right, forward, angels;
     
    if( pEntity == 0 )
        return;

    out[0] = pEntity->origin[0];
    out[1] = pEntity->origin[1];
    out[2] = pEntity->origin[2];

    enginefunc_ptr->pfnAngleVectors(pEntity->angles, forward, right, up);
         
    forward[2] = -forward[2];

    if( pEntity->curstate.usehull )
    {
        out[0] = out[0] + forward[0] * g_CVAR.vDuck_f + up[0] * g_CVAR.vDuck_h + right[0] * g_CVAR.vDuck_r;
        out[1] = out[1] + forward[1] * g_CVAR.vDuck_f + up[1] * g_CVAR.vDuck_h + right[1] * g_CVAR.vDuck_r;
        out[2] = out[2] + forward[2] * g_CVAR.vDuck_f + up[2] * g_CVAR.vDuck_h + right[2] * g_CVAR.vDuck_r;
    }
    else
    {
        out[0] = out[0] + forward[0] * g_CVAR.vStand_f + up[0] * g_CVAR.vStand_h + right[0] * g_CVAR.vStand_r;
        out[1] = out[1] + forward[1] * g_CVAR.vStand_f + up[1] * g_CVAR.vStand_h + right[1] * g_CVAR.vStand_r;
        out[2] = out[2] + forward[2] * g_CVAR.vStand_f + up[2] * g_CVAR.vStand_h + right[2] * g_CVAR.vStand_r;
    }
}

VOID LocalToTarget(cl_entity_t* pEntity, float* out)
{
    vec3_t view_ofs, EntViewOrg;

    if( pEntity == 0 )
        return;

    CalculateAiming(pEntity, EntViewOrg);

    enginefunc_ptr->pEventAPI->EV_LocalPlayerViewheight(view_ofs);

    out[0] = EntViewOrg[0] - (enginefunc_ptr->GetLocalPlayer()->origin[0] + view_ofs[0]);
    out[1] = EntViewOrg[1] - (enginefunc_ptr->GetLocalPlayer()->origin[1] + view_ofs[1]);
    out[2] = EntViewOrg[2] - (enginefunc_ptr->GetLocalPlayer()->origin[2] + view_ofs[2]);
}


« Última modificación: 09 Diciembre 2007, 03:06 por El PrInTeRo » En línea

TIGRE CAPO
CHACA GATO
K-19

Desconectado Desconectado

Mensajes: 464


Sarah Wayne


Ver Perfil
Re: EMPEZAR A CODEAR TU PROPIO CHEAT (Half - Life)
« Respuesta #29 en: 15 Diciembre 2007, 14:39 »

Me interesa bastante el tema de los chetos para hl, pero mis conocimientos en C/C++ son nulos  :-\

Haber si me leo algún texto para comienzos en C/C++
En línea

Páginas: 1 [2] 3 4 Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC