Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Luchoz95

#1
Hola gente ! , estoy aprendiendo a depurar un programa en codeblocks y tengo un problema, cuando de puro un programa ... por ejemplo
Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

int main()
{
int a=5;
    cout << "Hello world!" << endl;
    return 0;
}


y agrego un breakpoint en la declaracion de la variable a , en la ventana Watches no me muestra nada , solo me aparece asi ..


Alguien me puede ayudar ? S2!
#2
Programación C/C++ / Duda while!
5 Mayo 2013, 06:00 AM
Gente hoy boludeando en el foro encontre este codigo ..

scanf("%s", palabra);
tam=strlen(palabra);
while(tam--){
  printf("%c",palabra[tam]);
}


por lo que pueden ver, imprime un string al revés .. pero lo que no entiendo lo que hace while(tam--), osea while se va a gener mientras ... Que ? alguien me puede explicar ? S2!
#3
gente tengo un par de dudas , no tengo bien entendido que es .Net Framework , otra cosa que no entiendo , es que el IDE Visual C++ express viene una opcion de crear Windows Forms , y tiene como lenguaje CLR que no see que es , no se si es lo mismo que hacer windows forms en clr que hacer un programa en WinApi , Espero que me ayuden a mis dudas saludos!
#4
Gente sigo con problemas similares al anterior tema que publique , miren este codigo
es un directorio de telefono que estoy probando ...

#include <stdio.h>
#include <windows.h>
#include<string.h>

#define MAX_CHARS 256



typedef struct persona
{
char nombre[MAX_CHARS],apellido[MAX_CHARS],telefono[20];
}sPersona;

void Agregar_Presona();
void Imprimir_Persona();
FILE* miarchivo;
char* nombrearchivo= "Directorio.txt";



int main()
{
int a,opc;
while(1)
{
system("cls");
printf("1. Agregar Persona\n");
printf("2. Ver personas\n");
printf("3. Salir\n\n");
printf("Elige una opcion y precione enter : ");
scanf("%d",&opc);
switch(opc)
{
case 1:
{
Agregar_Presona();
break;
}
case 2:
{
Imprimir_Persona();
break;
}
case 3:
{
ExitProcess(1);
}
default :
{
MessageBox(NULL,"Opcion Incorrecta","Directorio",MB_OK | MB_ICONERROR);
}
}
}
}


void Agregar_Presona()
{
sPersona nPersona;
char *p;
miarchivo= fopen(nombrearchivo,"a"); //abro el archivo "a" sirve para agregar al final
   if(miarchivo==NULL)return -1;

system("cls");
fflush(stdin);

printf("Introduce el nombre del persona: ");
fflush(stdin);
fgets(nPersona.nombre, MAX_CHARS, stdin);
//Elimina el avance de linea ... Gracias rir3760 !
p = strchr(nPersona.nombre, '\n');
if (p != NULL)
*p = '\0';



printf("Introduce el apellido de la persona: ");
fflush(stdin);
fgets(nPersona.apellido, MAX_CHARS, stdin);
//Elimina el avance de linea ... Gracias rir3760 !
p = strchr(nPersona.apellido, '\n');
if (p != NULL)
     *p = '\0';



printf("introduzca el telefono: ");
fflush(stdin);
fgets(nPersona.telefono, 20, stdin);

//Elimina el avance de linea ... Gracias rir3760 !
p = strchr(nPersona.telefono, '\n');
if (p != NULL)
      *p = '\0';


nPersona.nombre[0]=toupper(nPersona.nombre[0]); //Funcion que convierte la primera letra de la palabara en mayuscula
nPersona.apellido[0]=toupper(nPersona.apellido[0]); //Funcion que convierte la primera letra de la palabara en mayuscula



fprintf(miarchivo,"%-20s\t%-20s\t%-20s\n",nPersona.nombre,nPersona.apellido,nPersona.telefono);

   fclose(miarchivo);


}



void Imprimir_Persona()
{
char cadena[MAX_CHARS];
//char* cpToken;
   miarchivo= fopen(nombrearchivo,"r");
   if(miarchivo==NULL)return -1;
   system("cls");
   while(!feof(miarchivo))
{
fgets(cadena,MAX_CHARS,miarchivo);
fputs(cadena,stdout);
}
printf("Presione una tecla para volver al menu ...");
system("pause>nul");


   fclose(miarchivo);
}


el problema esta que cuando se lee el archivo se lee tambien el ultimo '\n' y pasa lo siguiente ...

como vemos se repite la ultima linea ... algun consejo ? S2!
#5
Programación C/C++ / Ayuda con fprintf
19 Abril 2013, 19:08 PM
Hola gente tengo un problema , va mas que un problema una consulta , vean esta linea de código ...

fprintf(miarchivo,"%s%s%d",nPersona.nombre,nPersona.apellido,nPersona.telefono);

esto va a escribir en un archivo de la siguiente manera ...
CitarNombre
Apellido
156XXXX
bueno yo lo que quiero es que se escriba asi ...
CitarNombre           Apellido          156XXXX

con algún tipo de tabulacion o algo por el estilo , algún consejo ? S2!
#6
Hola gente tengo una pregunta que hacerle , tiene algun inconveniente tener el IDE microsoft visual c++ pero en diferentes versiones ? 2008,2010, etc ?
Saludos
#7
Buenaas gente, queria compartirle con ustedes un cheat que hice con ayuda de variaas personas , simplemente lo que hace es hookear las direcciones de Opengl32, como me aconsejaron no es muy bueno usar este metodo , pero por ahora aprendi de esta manera , ja!
main.cpp
#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>

DWORD* glClearPtr=(DWORD*)0x027E85CC;
DWORD* glBeginPtr=(DWORD*)0x027E89EC;
DWORD* glvertexPtr=(DWORD*)0x027E851C;

int sky = 1;
bool nosky = false;

void APIENTRY NewglBegin( GLenum mode )
{

//PERFECT WALLHACK
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);
}
//SIMPLEWALLHACK
if(mode==GL_TRIANGLES||mode==GL_TRIANGLE_STRIP||mode==GL_TRIANGLE_FAN)
{
glDisable(GL_DEPTH_TEST);
}
//WHITEWALLS
if ( mode != GL_TRIANGLES && mode != GL_TRIANGLE_STRIP && mode != GL_TRIANGLE_FAN && mode != GL_QUADS )
{
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
}
//LAMBERT
if(mode == GL_TRIANGLE_STRIP)
{
    glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_DECAL);
}
//NO SKY
if(sky == 1 && mode== GL_QUADS)
{ nosky = true;}
else
{ nosky = false;}


glBegin(mode);
}



void APIENTRY NewglClear(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);

       
}
glClear(mask);
}


void APIENTRY NewglVertex3fv(const GLfloat *v)
{
if(nosky == true)
{
return;
}
    glVertex3fv(v);
}



//FUNCION PRINCIPAL DE DLL
BOOL APIENTRY DllMain(HANDLE hInst, DWORD dwReason, LPVOID lpReserved)
{
if (dwReason == DLL_PROCESS_ATTACH)//SI LA DLL SI INJECTA ...
{

MessageBox(NULL,"WallHack Activated!","Message",MB_OK);
               *glBeginPtr=(DWORD)NewglBegin;
       *glClearPtr=(DWORD)NewglClear;
       *glvertexPtr=(DWORD)NewglVertex3fv;

}
return TRUE;
}


Es muy problame que a varios no les funcione , porque pueden tener distinta version del CS , y a su vez distintas direcciones de las funciones de Opengl, pero ACA el usuario 85 explica como obtener esas direcciones ... bueno espero que les sirva de algo!

S2!
#8
Hola genteee , miren tengo esta dll , y la quiero injectar a un proceso ..

#include <windows.h>



BOOL APIENTRY DllMain (HINSTANCE hmodule,     
                       DWORD reason,         
                       LPVOID reserved    ) 
{
    switch (reason) 
    {     
      case DLL_PROCESS_ATTACH:
  if(GetAsyncKeyState(VK_F12))
{
MessageBox(NULL,"Presionaste F12","Mensaje",MB_OK);
}
        break;
    }
    return TRUE;
}


injecto la dll , pero cuando preciono F12 no pasa nada ... el programa donde es injectada ya tiene la funcion GetAsyncKeyState, entonces les hago una pregunta , tengo que hookear la funcion GetAsyncKeyState para que mi F12 funcione ?

Saludos !
#9
Programación C/C++ / Problema con un vector
2 Abril 2013, 08:28 AM
Hola gente tengo el siguiente problema , miren este source:
#include <stdio.h>

int main()
{
int vectorr[4];
int i;
int a=1;
for(i=0;i<=4;i++)
{
     vectorr[i]=i;
     a++;

}
for(i=0;i<=4;i++)
{
      printf("Vector [%d] : %d\n",i,vectorr[i]);
}

}


me imprime lo sguiente .. :
Vector [0] : 1
Vector [1] : 2
Vector [2] : 3
Vector [3] : 4
Vector [4] : 6


el error esta en el vector 4 , tendria que haber un 5 como yo quiero , alguien me puede explicar que hago mal ?
#10
Programación C/C++ / Problema con struct
26 Marzo 2013, 18:39 PM
tengo un problema con la siguiente structura
#include <stdio.h>
#include <string.h>

typedef struct producto
{
int precio[1];
char nombre_product[30];
}producto_n;



int main()
{
producto_n producto1;
printf("introduce el nombre del producto : ");
gets(producto1.nombre_product);
printf("introduce el producto sin iva: ");
fflush(stdin);
scanf("%d",&producto1.precio[0]);
producto1.precio[1]=producto1.precio[0]+5;
printf("el producto %s sale $%d",producto1.nombre_product,producto1.precio[1]);
return 0;
}



bueno el problema es que no se imprime el nombre del producto (producto1.nombre_product) se imprime un caracter cualquiera , la verdad no se que puede ser ... la unica forma que pude hacer andar cambiandole la cantidad de vectores de la variable precio a [2] .. alguien me puede ayudar ? S2!
#11
Programación C/C++ / Dudas Punteros
26 Marzo 2013, 02:45 AM
Hola recien me estoy iniciando con el tema de punteros y tengo una duda ...

supongamos que creo una variable int

Código (cpp) [Seleccionar]
int a;

y le asignamos como valor 10

Código (cpp) [Seleccionar]
a=10;

la variable a tiene guardado dos cosas : la direccion "XXXXX" y el valor "10"

calculo que hasta ahi todo bien.

bueno ahora creamos un puntero de tipo int

Código (cpp) [Seleccionar]
int *pt1;

y le asignamos lo siguiente ...

Código (cpp) [Seleccionar]
pt1=&a;

en la variable del puntero se va a guardar la direccion solamente de a osea "XXXXX" el valor no , ya que le esta dando que p1 es igual a la direccion(&a) de a , y no al valor .. me equivoco ?

#12
hola que tal , estoy tratando de hacer un wallhack para un juego y estoy aprendiendo de post de aca del foro, y me salio esto ..
Código (cpp) [Seleccionar]
#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>

void __stdcall glBegin( GLenum mode )
{

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);
}
glBegin(mode);
}

BOOL __stdcall DllMain(HANDLE hInst, DWORD dwReason, LPVOID lpReserved)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
MessageBox(NULL,L"inject!",L"luchoooo",MB_ICONWARNING | MB_OK);
}
return TRUE;
}
}

Compila todo de 10 la dll, pero cuando la inyecto , no pasa nada en el juego , el Messagebox injecta , pero lo de opengl no , alguien tiene idea que me hace falta ? saludos !
#13
Mensajería / Error IRC elhacker.net
15 Marzo 2013, 17:15 PM
Hola que tal, estoy intentando hablar por irc en #elhacker.net, ya me registre en el server freenode, active lo que me llego al mai pero cuando entro al canal me sigue diciendo :Cannot send to channel , cuando envio algun sms o algo, alguien me puede ayudar ?
#14
Programación C/C++ / Consulta sobre dudas
7 Marzo 2013, 00:56 AM
Hola que tal , hace poco empeze a programar en c, lo llevo bastante bien que digamos , pero como recien empiezo , tengo un par de dudas , no sobre el lenguaje si no sobre los compiladores, son estas


  • Es lo mismo Dev C++, CodeBlocks, y Microsoft Visual Studio?
  • Que es MinGW y y GCC ?
  • Que es un proyecto en Win32 y en que lenguaje se programa ?
  • Que son los Windows Form y en que lenguaje se programa ?

por ahora son estas dudas las que me han surgido , espero que alguien me pueda ayudar

Saludos!
#15
Holaaa genteee, ando con un problema , el otro dia lei un codigo que subieron en este foro, que es el siguiente

Código (cpp) [Seleccionar]
#include <windows.h>
#include <stdio.h>

typedef int (WINAPI *_MessageBoxA)(HWND, LPCTSTR, LPCTSTR, UINT);

struct sTDatos_MessageBoxA
{
   _MessageBoxA direccionMessageBoxA;
   char titulo[255], texto[255];
};

typedef struct sTDatos_MessageBoxA TDatos_MessageBoxA;

void Hilo_MessageBoxA(TDatos_MessageBoxA *datos)
{
   datos->direccionMessageBoxA(0, datos->texto, datos->titulo, 0);
}

void Inyectar_MessageBoxA(DWORD pID, char* titulo, char* texto)
{
   DWORD tamFunc;
   HANDLE tHandle, funcionRemota;
   TDatos_MessageBoxA datos, *direccionDatosRemotos;
   void* direccionFuncionRemota;

   tHandle = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROCESS_VM_WRITE, 0, pID);

   datos.direccionMessageBoxA = (_MessageBoxA)GetProcAddress(GetModuleHandle("USER32.DLL"), "MessageBoxA");
   sprintf(datos.titulo, titulo);
   sprintf(datos.texto, texto);

   direccionDatosRemotos = (TDatos_MessageBoxA*)VirtualAllocEx(tHandle, 0, sizeof(TDatos_MessageBoxA), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
   WriteProcessMemory(tHandle, direccionDatosRemotos, &datos, sizeof(TDatos_MessageBoxA), NULL);

tamFunc = (DWORD)Inyectar_MessageBoxA - (DWORD)Hilo_MessageBoxA;

direccionFuncionRemota = VirtualAllocEx(tHandle, 0, tamFunc, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(tHandle, direccionFuncionRemota, (void*)Hilo_MessageBoxA, tamFunc, NULL);

funcionRemota = CreateRemoteThread(tHandle, NULL, 0, (LPTHREAD_START_ROUTINE)direccionFuncionRemota, direccionDatosRemotos, 0, NULL);

WaitForSingleObject(funcionRemota,INFINITE);
  CloseHandle(funcionRemota);

  VirtualFreeEx(tHandle,direccionFuncionRemota,0,MEM_RELEASE);
  VirtualFreeEx(tHandle,direccionDatosRemotos,0,MEM_RELEASE);  

  CloseHandle(tHandle);  
}

int main()
{
   DWORD pID;
   HWND hWnd;

   hWnd = FindWindow("SciCalc", NULL);

   if(hWnd!=NULL)
   {
       GetWindowThreadProcessId(hWnd, &pID);
       Inyectar_MessageBoxA(pID, "descifra.me", "Codigo inyectado!");
   }

   return 0;
}



el problema surge que no se logra injectar el codigo en la calculadora, abro la calculadora y ejecuto ese codigo y no pasa nada, alguien sabe si copie mal el codigo o algo ? por lo que tengo entendido no tengo ningún error
Saludos
#16
Hola Gente , les vengo a pedir ayuda sobre un programa , que esta en un manual de c ,  el codigo es este
#include <stdio.h>

#define LOWER 0
#define UPPER 300
#define STEP 20

main()
{
       int fahr;
       
       for(fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP);
       printf("%3d%6.1f\n", fahr,(5.0/9.0)*(fahr-32));
       getch();
       
}
       


ejecuta todo lo mas bien , pero me muestra solamente dos números , que según el manual me tendria que mostrar toda la tabla de temperatura fahrenheit y celsius , la verdad ni idea que puedo estar haciendo mal , si alguien me puede ayudar le agradecería mucho , saludos !