|
Mostrar Mensajes
|
Páginas: 1 2 [3] 4 5 6 7 8 9
|
21
|
Programación / Ingeniería Inversa / Re: crackme descubre el serial
|
en: 23 Octubre 2007, 12:02 pm
|
yo tambien te envie los seriales al privado, por cierto me llamaron la atencion varias cosas 1- posteas 3 crackmes a la ves 2- los CrackeMes 1 y 2 tienen el mismo estilo y estan en español compilados con vb, en cambio el crackme 3 esta en ingles con otro estilo y en C++ 3 - el CrackMe e te da una palabra clave tipica de las paginas de retos para avanzar al siguiente CrackMe 4 - los CrackMe 1 y 2 estan firmados por un nick distinto al q tienes en este foro que ad+ tiene una pagina donde peudes bajar crackmes http://s7r1d3r.blogcindario.com/2006/05/00008-crackme.htmlyo diria q los crackmes no estan hechos por ti, en ese caso estaria bien q le dieras algun credito al autor,por otro lado todos sabemos buscar crackmes por ahi, de hecho solo crackmes.de hay para estar toda la vida resolviendo, creo que la divercion es que los hagas por ti solo
|
|
|
22
|
Programación / Ingeniería Inversa / Re: Modificar exe mediante trainer
|
en: 23 Octubre 2007, 11:36 am
|
Lo tipico es hacer el trainer el C++ usando las apis WriteProcessMemory y ReadProcessMemory para leer y escribir, para esto debes tener un handle del proceso que se optiene con OpenProcess para OpenProcess necesita la pid (id del proceso q se puede optener con GetWindowThreadProcessId si tenemos el handle de la ventana ahi te pongo un ejemplo por si no entendiste bien :/ /* Esto es un trainer sencillo que congela el tiempo del buscaminas (by x4uth) */ #include <windows.h> #include <stdio.h> #define OFFSET_TIEMPO 0x100579C
int main () { HWND hWnd; DWORD dwProcessId; DWORD dwOldProtect; HANDLE hProcess; int tiempo;
hWnd = FindWindowA(0, "Buscaminas"); // Conseguimos el handle de la ventana del buscaminas if(hWnd == NULL) { printf("No se encontro la ventana\n");return FALSE;}
GetWindowThreadProcessId(hWnd, &dwProcessId); // Obtenemos el id del proceso con el handle if(dwProcessId == NULL) { printf("No se pudo obtener la id del processo\n");return FALSE;}
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId); // Abrimos el proceso if(hProcess == INVALID_HANDLE_VALUE) { printf("No se pudo abrir el proceso\n");return FALSE;}
ReadProcessMemory(hProcess,(LPVOID)OFFSET_TIEMPO, &tiempo, 4, NULL); //leemos el tiempo actual (para congelarlo en el numero aunque podemos hacerlo en el numero q queramos) printf("Se congelara el tiempo en %d\n",tiempo); for (;;Sleep(1000)) { //entramos en un loop infinito q se ejecuta cada 1 segundo WriteProcessMemory(hProcess,(LPVOID)OFFSET_TIEMPO, &tiempo, 4, NULL); //ponemos el tiempo a nuestro numero }
return 0; }
|
|
|
26
|
Programación / Ingeniería Inversa / Re: CraCKmE - Molesto
|
en: 7 Octubre 2007, 01:40 am
|
de todos modos eso de los botones no le veo mucho sentido, pues los crackmes son simulaciones de protecciones reales, en aplicaciones reales no tiene sentido desactivar el boton de verificar, a no ser que se active automatico en algun momento, eso pense al principio y intente hacer que se activara el boton por si solo, debugue el timer pero vi que no comprobaba nada , lo desactiva sin mas, lo mismo al editar los editbox
|
|
|
27
|
Programación / Ingeniería Inversa / Re: CraCKmE - Molesto
|
en: 7 Octubre 2007, 01:16 am
|
WARNING: este post contiene la solucion, si quieres descubrirla por ti solo no sigas leyendo . . . . . .
MiniTuto es obvio q es de vb asi que sin pensarlo lo abro con smartkcheck y ataco el primer problema q es el boton molesto.... el smartkcheck nos dice que pone Enabled = false el boton con un timer y al modificar cualquier editbox, en todos los casos vamos directtamente al offset que nos dice el smartcheck, alli estamos en un call que va a la dll de vb para desactivar el boton, solo tenemos q poner el primer 1 PUSH 1 <- parametro enable o false PUSH .. CALL .. haciendo esto ya no nos molesta mas el botoncito... bien seguimos con smartcheck y probamos el boton , vemos que lo primero que hace es comprobar la longitud, lo abro con el olly voy al offset que me dijo el smartkcheck y debugueo hasta que llego al salto donde compara la longitud del nombre con el doble de la longitud del pass, la linea clave es 00402472 . 6BDB 02 IMUL EBX,EBX,2 como yo soy muy vago ni me moleste en contar y hice copy paste de mi user 2 veces , asi iba a tener el doble seguro, y sorpresa pass correcto. bueno en cualquier caso si seguimos debugando nos damos cuenta que lo que va haciendo es comparar el valor asciii de la segunda mitad del pass con el user, de una forma muy simple (mid, val y Ascb) con lo que valdria cualquier pass del doble de longitud del user siempre que la segunda mitad fuera el user.
user : x4uth sol : x4uthx4uth
|
|
|
30
|
Programación / Ingeniería Inversa / Re: Busca la única contraseña para entrar
|
en: 12 Julio 2006, 18:25 pm
|
lo k no comprendo es porque no le pones ninguna caption al boton ese, sino k se la pones una vez cargado el formulario a traves d codigo... la verdad eske despista ^^
PD: joe.. cuantas apis hay ahi?? me he tirao media hora traceando y he sacao un monton de porkeria jaja xD menudo encriptamiento le has metio a eso... digo encriptamiento porque un ABECEDARIO no seria necesario digo yo xD.. en cuanto a la porqueria que he sacao, son cosas de tipo: ABABABAB, g5.nls, ian calendar, SsHd, , Actx , user32, ThunderRT6MAIN, y un largo etc XD
eso es que esta hecho con Visual Basic, y si, da asco tracear eso, yo en este mire lo basico que la comprobacion estuviera en el boton, pero no hace varias antes, y yo no tengo paciencia para tracear vb asi que ahi lo dejo ^^
|
|
|
|
|
|
|