Hola , estaba revisando un código que usaba en el Counter-Strike.
Es un namechanger o namestealer.
En un servidor de CS, de por ejemplo 32 slots, este hack lo que hace es cambiar tu nombre aleatoriamente por el de alguno de los demás jugadores. El tema es que no se permite tener el mismo exacto nombre, por lo que se le debe hacer un cambio. Tampoco se permite que tu nombre contenga el nombre de un administrador.
Este namechanger se encarga de lo primero, o sea recibe el nombre de alguien y lo modifica con un sólo cambio y devuelve el nombre modificado.
Se hace un sólo cambio por que la idea es que el nombre se pareza al del otro jugador.
Yo lo que hice fue reemplazar las funciones de cadena que se utilizaron en el primer código. Lo que quisiera es si alguien se anima a hacerlo de otra forma, sin salirse de la lógica de funcionamiento.
Otra cosa es lo de la escritura LEET, o 1337. Se trata de una equivalencia de letras con números, por ejemplo:
CASA = C454
o
AVIÓN = 4V10N
o
BS = 85
etc
Eso también es válido para este autoname.
Si encuentran algún error en mi code avizen.
Aunque no crean este autoname da buenos resultados para gambetear bans XD
Proyecto: http://www.mediafire.com/?k6os3q63sxrw0ff
Es un namechanger o namestealer.
En un servidor de CS, de por ejemplo 32 slots, este hack lo que hace es cambiar tu nombre aleatoriamente por el de alguno de los demás jugadores. El tema es que no se permite tener el mismo exacto nombre, por lo que se le debe hacer un cambio. Tampoco se permite que tu nombre contenga el nombre de un administrador.
Este namechanger se encarga de lo primero, o sea recibe el nombre de alguien y lo modifica con un sólo cambio y devuelve el nombre modificado.
Se hace un sólo cambio por que la idea es que el nombre se pareza al del otro jugador.
Yo lo que hice fue reemplazar las funciones de cadena que se utilizaron en el primer código. Lo que quisiera es si alguien se anima a hacerlo de otra forma, sin salirse de la lógica de funcionamiento.
Otra cosa es lo de la escritura LEET, o 1337. Se trata de una equivalencia de letras con números, por ejemplo:
CASA = C454
o
AVIÓN = 4V10N
o
BS = 85
etc
Eso también es válido para este autoname.
Si encuentran algún error en mi code avizen.
Aunque no crean este autoname da buenos resultados para gambetear bans XD
Código (cpp) [Seleccionar]
//
// By 85
// elhacker.net
// etalking.com.ar
// 2013
//
#include<windows.h>
#include<stdio.h>
//
char objetivos[] = "ABEGLOST\0";
char reemplazos[]= "48361057\0";
//
void ModificadorDeNombresConSTR(char* str){
// Detección de doble whitespace
if(strstr(str," ")!=NULL)
{
strcpy(strstr(str," "),strstr(str," ")+1);
return;
}
// Detección de whitespace
if(strstr(str," ")!=NULL)
{
char buf[256];
strcpy(buf,str);
strcpy(strstr(buf," ")+1,strstr(str," "));
strcpy(str,buf);
return;
}
// Char inicial y final iguales
if(str[0]==str[strlen(str)-1])
{
char buf[256];
char sbuf[2]="X";// Al asignarle valor se le agrega el 0 automáticamente.
sbuf[0]=str[0];
strcpy(buf,sbuf);
strcat(buf,str);
strcpy(str,buf);
return;
}
// Reemplazo de ocurrencias (para escritura 1337 XD)
if(strstr(str,"A")!=NULL)
{
*strstr(str,"A")='4';
return;
}
if(strstr(str,"B")!=NULL)
{
*strstr(str,"B")='5';
return;
}
if(strstr(str,"E")!=NULL)
{
*strstr(str,"E")='3';
return;
}
if(strstr(str,"G")!=NULL)
{
*strstr(str,"G")='6';
return;
}
if(strstr(str,"L")!=NULL)
{
*strstr(str,"L")='1';
return;
}
if(strstr(str,"O")!=NULL)
{
*strstr(str,"O")='0';
return;
}
if(strstr(str,"S")!=NULL)
{
*strstr(str,"S")='5';
return;
}
if(strstr(str,"T")!=NULL)
{
*strstr(str,"T")='7';
return;
}
// Char final y prefinal iguales
if(str[strlen(str)-1]==str[strlen(str)-2])
{
str[strlen(str)-1]=0;
return;
}
// Reducción de longitud
if(strlen(str)>16)
{
str[strlen(str)-1]=0;
return;
}
// Agrega un punto al final
strcat(str,".");
}
//
void ModificadorDeNombresSinSTR(char* str){
#define current (i-1)
int len=0;
for(;*str++;len++);// Obtener largo de cadena
str-=(len+1);// Arreglar el puntero que se ha desplazado!!!
{
int i=0;
while(str[i++]){
// Detección de doble whitespace
if((str[current] == ' ' && str[i] == ' ')){
printf("DOBLE ESPACIO\n");
system("pause");
char buf[256];
int pos=current;
while(str[pos++]!='\0'){// Reemplazo de STRCPY+STRSTR ;D
int bufcur = (pos-current)-1;
int strcur = (pos-1);
buf[bufcur]=str[strcur+1];
buf[bufcur+1]=str[strcur+2];
str[strcur]=buf[bufcur];
str[strcur+1]=buf[bufcur+1];
}
str[pos-1]=0;
return;
}}}
{
int i=0;
while(str[i++]){
// Detección whitespace
if(str[current] == ' '){
printf("ESPACIO\n");
system("pause");
str[len+1]=0;
int pos=len+1;
while(pos--){
if(pos==current) break;
str[pos]=str[pos-1];
}
return;
}}}
{
int i=0;
while(str[i++]){
// Char inicial y final iguales
if(str[0] == str[len-1]){
printf("INICIAL y FINAL IGUALES\n");
system("pause");
str[len+1]=0;
int pos=len+1;
while(pos--){// Reemplazo de STRCPY ;D
if(pos<1) break;
str[pos]=str[pos-1];
}
return;
}}}
{
int i=0;
while(str[i++]){
// Reemplazo de ocurrencias (para escritura 1337 XD)
if(str[current] == 'A') {str[current]='4'; return;}
else if(str[current] == 'B') {str[current]='8'; return;}
else if(str[current] == 'E') {str[current]='3'; return;}
else if(str[current] == 'G') {str[current]='6'; return;}
else if(str[current] == 'L') {str[current]='1'; return;}
else if(str[current] == 'O') {str[current]='0'; return;}
else if(str[current] == 'S') {str[current]='5'; return;}
else if(str[current] == 'T') {str[current]='7'; return;}
}}
// Char final y prefinal iguales
if(str[len-1] == str[len-2]){
printf("FINAL y PREFINAL IGUALES\n");
system("pause");
str[len-1]=0;
return;
}
// Reducción de longitud
if(len>16){
printf("LONGITUD\n");
system("pause");
str[len-1] =0;
return;
}
// Agrega un punto al final
str[len] ='.';
str[len+1] =0;
}
//
int main(){
// Nota: si STRCPY recibe el segundo argumento de mayor size que el primero
// no importa mientras la cadena sea igual o menor. Y terminada en 0.
// Aparte de que STRCPY recibe sus argumentos en forma de punteros.
// http://www.cplusplus.com/reference/cstring/strcpy/
char nombrelargo[256];
// char ingreso[512] = "RRRRRRRRRRRRRRRRX\0";
// char ingreso[512] = "LEE TL\0";
// char ingreso[512] = "LEETL \0";
// char ingreso[512] = "LEET";
// char ingreso[512] = "azucarada";
// char ingreso[512] = "azuc arada";
// char ingreso[512] = "hazuc aradah";
// char ingreso[512] = "hazucaradahh";
// char ingreso[512] = "1azucaradahh";
// char ingreso[512] = "1 azucaradahh";
// char ingreso[512] = "1azucaradahhaaaa ";
char ingreso[512] = "1azucaradahhaaaa ";
strcpy(nombrelargo, ingreso);
// ModificadorDeNombresConSTR(nombrelargo);
ModificadorDeNombresSinSTR(ingreso);
//printf("%s\n", nombrelargo);
printf("%s\n", ingreso);
system("pause");
return (0);
}
//
Proyecto: http://www.mediafire.com/?k6os3q63sxrw0ff