elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
18 Noviembre 2008, 16:13  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ingeniería Inversa (Moderadores: ShadowDark, karmany)
| | | |-+  Problema con un programa en Visual Basic
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Imprimir
Autor Tema: Problema con un programa en Visual Basic  (Leído 3246 veces)
javyer

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Problema con un programa en Visual Basic
« en: 05 Febrero 2006, 16:19 »

Llevo dándole vueltas más de 2 días y nada. El programas se llama Fit Gedo http://www.gedo-formacion.com/fitgedo.html . Y lo que hace la demo es funcionar 5 mintuos después de los cuales se cierra el programa. ¿Cómo podría hacer para que no tuviera límite?. No consigo dar con la tecla. Gracias y saludos.
« Última modificación: 05 Febrero 2006, 16:21 por javyer » En línea
javyer

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #1 en: 07 Febrero 2006, 19:16 »

¿Alguién puede ayudarme?. Gracias.
En línea
pERICOTE

Desconectado Desconectado

Mensajes: 129



Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #2 en: 07 Febrero 2006, 22:25 »

Empieza con los tutosde raton y luegos con los de Ricardo Narvaja.
Seguro en dos dias ya puedes formular una pregunta mas concreta y directa. Saludos  ;D ;D ;D
En línea
javyer

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #3 en: 08 Febrero 2006, 01:46 »

El programa está hecho en Visual Basic, ¿que manuales me pueden venir mejor?. Es una demo que tiene un tiempo limite de 5 minutos pasados los cuales se cierra el programa. Saludos.
En línea
cristianbol12

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #4 en: 08 Febrero 2006, 01:59 »

hola, el PeID te puede decir en lenguaje esta  escrito pero sabes el tiene un pequeño gran problemita es q nuchas veces no te detecta  la proteccion de Armadillo, para salir de dudar bajate de la web PE-scan, y te dira si esta con la proteccion de Armadillo
En línea
tena

Desconectado Desconectado

Mensajes: 317


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #5 en: 09 Febrero 2006, 01:06 »

yo tuve un problema similar el cual el programa se salia despues de 20 minutos. Una vez que lo cargues en el ollydbg ponele un breakpoint a la api  _vbaEnd.
Luego fijate cual es el salto que lo evita y problema resuelto.

Saludos
En línea
javyer

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #6 en: 09 Febrero 2006, 13:01 »

El problema es que soy novato y no sé muy bien, no entiendo mucho de lo que me has escrito. ¿Puedes ser un poco más concreto?. Muchas gracias.
En línea
tena

Desconectado Desconectado

Mensajes: 317


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #7 en: 11 Febrero 2006, 02:36 »

El problema es que soy novato y no sé muy bien, no entiendo mucho de lo que me has escrito. ¿Puedes ser un poco más concreto?. Muchas gracias.

Esta bien, en este link te deje unas indicaciones:
http://www.badongo.com/file.php?file=eliminar los 4 minutos de duracion__2006-02-10_indicaciones.zip

Espero que te sirva.
Saludos
En línea
tena

Desconectado Desconectado

Mensajes: 317


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #8 en: 11 Febrero 2006, 02:39 »

debes clickear en "click here to download..."

o si no en esta que va directa
http://cache3.badongo.com/0444455546866269/disk5/data/other_files/2006-02-10/indicaciones.zip
En línea
anjz

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #9 en: 12 Febrero 2006, 19:54 »

Saludos tena.
La verdad es que llevo algun tiempo intentando quitar esa limitación de tiempo, porque pensé que sería facil, y quiza le podría ayudar a javyer, pero no puedo.
Tampoco se mucho mucho sobre ingeniería inversa, y no se me había ocurrido poner un breackpoint a la api _vbaend.
En cuanto lo vi dije, clarooooo ya está.
Pero... resulta que el programa no usa esa API. No aparece, cosa que me extraña.
Al principio pensé que sería un simple timer, pero investigando un poco, creando yo mismo aplicaciones con timer y analizandolas me di cuenta de que el tiempo se indica en dos lineas de codigo en ensamblador con dos dígitos en cada línea, es decir el valor máximo con cuatro dígitos solo puede ser FFFF en hexadecimal, pasandolo a decimal 65535 milisegundos, y efectivamente probé a crear un programa con un Timer y ese es el valor máximo que me deja introducir. Es decir no puede ser un timer, porque solo se pueden poner timer de a lo sumo 65 segundos con 535 centésimas, pero no de cinco minutos. Asi que supongo que la cuenta de los cinco minutos la hará basandose en la hora del sistema. Alguien sabe que API usa visualbasic para coger la hora del sistema???? Que no se si será una api la encargada de esa funcion.
En definitiva que se me resiste, una simple limitacion de tiempo.
QUE RABIA.
En línea
anjz

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #10 en: 13 Febrero 2006, 20:33 »

Bueno, ya he conseguido desactivar la proteccion de tiempo ;D

He hecho un pequeño manual muy sencillo y paso a paso de como hacerlo
lo podeis descargar aqui:

http://www.geocities.com/anjsweb/5minutos.doc
En línea
javyer

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #11 en: 13 Febrero 2006, 23:04 »

Muchas gracias por las molestias amigo. He estado afuera estos días y voy a leer y poner en práctica el manual. Ya te contaré. Saludos.
En línea
javyer

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #12 en: 13 Febrero 2006, 23:20 »

He estado siguiendo las instrucciones pero cuando se ejecuta y pasa (creo los 5 min.) aparece el siguiente error en pantalla: "Error "50003" en tiempo de ejecución: Error inesperado". ¿A qué puede deberse?.
También tengo 2 dudas:
- Cuando estamos en la dirección del salto y hacemos doble clic para cambiar la instrucción y cambiamos la instrucción original:  JNZ SHORT Gedo.005221C7  por la nuestra: JMP 005221B1 se me va a la pantalla CPU - main thread. Ahí es cuando tengo que hacer doble click y cambiar esos valores, lo hago, ¿tengo que picar despues en Assemble?. Cuando lo hago las letras son rojas y pone "JMP SHORT Gedo. 005221B1". ¿Tengo después que picar con el botón secundario hacemos Copy to executable > Selection?.
- Cuando dices "... podriamos cambiar jnz por jz así el programa funcionaría justo al revés..." , ¿por qué jz funciona al revés?, ¿de dónde sale eso?. Y por último, ¿por qué al cambiar la dirección se pone JMP XXXXX?, ¿de dónde sale JMP?.
Saludos y gracias.
« Última modificación: 14 Febrero 2006, 00:19 por javyer » En línea
anjz

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #13 en: 14 Febrero 2006, 01:25 »

Lo voy a mirar mejor, pero lo probé, pasaron los cinco minutos y seguia funcionando, si que noté que al cerrar el programa me tiró un error, pero fue al cerrarlo. De todos modos voy a ver si le busco una mejor solución como registrarlo por ejemplo. Si esque se puede.

Respondiendo a tus preguntas, SI es como tu lo mencionas. Cambias la instruccion y le das a assemble, y entonces tus cambios  salen en color rojo. Mas tarde las instrucciones que hayas cambiado (en este caso solo una) las seleccionas y haces copy to executable > selection y asi de esta manera guardos los cambios en un ejecutable.

Lo de podemos cambiar jnz por jz, es por lo siguiente.

JNZ Significa Jump if Not Zero es decir Salta si No es Cero. Por encima se hace alguna comparación de dos registros y si coinciden pues sería zero y si no coinciden seria not zero. En este caso JNZ SHORT Gedo.005221C7 nos lleva a la direccion 005221C7 si una comparacion que ha hecho algo mas arriba no  coincide. ¿Y que compara? pues no nos importa, asi de simple, el programa evaluara ciertas condiciones y demas, y pondrá ciertos valores en unos registros segun unas condiciones, el caso es que no nos interesa que salte. PERO SI NO ESTA REGISTRADO LO QUE SEA QUE COMPARE PARECE NO COINCIDIR. y por eso caemos en "se te acabo el tiempo".
Por eso si cambiamos jnz por jz. Saltará si es cero (es decir si la comparacion coincide) pero como hemos dicho que al no estar registrado nunca coinciden pues no saltará a la zona mala y nosotros contentos.

No se si te habré aclarado pero vaya, leelo con calma. De todos modos los manuales de ratón para comenzar y aprender de estas cosas son ideales. Si te interesa este tema te los recomiendo.

En línea
anjz

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Problema con un programa en Visual Basic
« Respuesta #14 en: 14 Febrero 2006, 01:35 »

Te pongo un ejemplo para que entiendas mejor por que ponemos un jmp.
Voy a asemejar un codigo inventado en español que se supone que sería como el ensamblador.
Lo de que sean esos registros o esos valores me lo he inventado, solo es un ejemplo.

01---> en el registro eax se introduce 1
02---> en el registro ecx se introduce 2
03---> comparame eax con ecx (si coincidiesen seria zero sino seria not zero)
04---> salta si no es zero a la instruccion 45.
05
06
07
.
.
.
45--->LO SIENTO SE ACABO EL TIEMPO.


Si queremos evitar caer en la instruccion 45 podriamos poner en vez de "salta si NO es zero", un "salta si es zero".

O usar un jmp que significa salta por huevos, le da igual lo que haya salido en la comparacion. un jmp es un "salta por narices a la direccion que te indique"

por lo tanto si cambiamos "salta si no es zero a la direccion 45"
y ponemos "salta por narices a la instuccion 05" pues es como si nada pasara por que le dice que salte por narices a la siguiente instruccion. Vamos lo normal, el programa sigue su curso liena a linea en vez de ir a la 45.

Espero haberte aclarado.
En línea
Páginas: [1] 2 3 Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC