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ú

Mensajes - x4uth

#21
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.html

yo 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
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;
}
#23
Ingeniería Inversa / Re: CrackMe04 by x4uth
20 Octubre 2007, 13:47 PM
felicidades :D
#24
Ingeniería Inversa / Re: CrackMe04 by x4uth
11 Octubre 2007, 23:19 PM
felicidades :D
#25
Ingeniería Inversa / CrackMe04 by x4uth
8 Octubre 2007, 15:32 PM
hacia tiempo que no me pasaba x aqui (falta de tiempo)..
pero bueno ya q estoy mas desocupado os dejo un CrackMe para recordar viejos tiempos..

Objetivo: conseguir una combinacion user/keycode valida
Opcional: hacer un generador de claves
Link: http://upload2.net/page/download/79CCTbxsbWBB6q1/CrackMe04.rar.html


Solucionado
1. Karman
2. karmany

#26
Ingeniería Inversa / Re: CraCKmE - Molesto
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
Ingeniería Inversa / Re: CraCKmE - Molesto
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
#28
x4uth@hot.....
#29
lo de las exeptions le das al Olly que ignore memory access violations exeptions y ya
--------------------------------------
Una convinacion valida..
x4uth
NaRFZAH3VYJIJKUVW101045-KMD

esta bueno el crackme
#30
Cita de: frankener1986 en 11 Julio 2006, 18:54 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 ^^