|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - Eternal Idol
Páginas: 1 ... 150 151 [152] 153 154 ... 205
3776
« en: Viernes 15 de Septiembre de 2006, 21:38 »
3777
« en: Viernes 15 de Septiembre de 2006, 21:24 »
Y Por variar tu tratando de desvirtuar cualquier cosa que yo diga. No hace falta desvirtuar nada ...ese programa NO necesita ninguna Run Time, asi de simple y para que quede claro de como hablas sin saber para variar. Pero claro dije que le PC no entiende sino0 lenguaje de maquina, no comonozco ningun procesador que te ejecute instrucciones de C++ tal ves tu si , pero nunca he oido de eso. La diferencia que marcaron anteriormente es que si son "conocidos". ¿Cual es la razon? Esos lenguajes estan COMPILADOS y por lo tanto son entendidos perfectamente por la maquina. Su codigo es finalmente despues de pasar por el compilador, codigo de maquina, lo quieras decir o no. O nos vas a decir que un programa, por simple que sea , que este hecho en Windows y use malloc, te va a servir asi nada mas para ejecutarlo desde el arranque? para mi es claro que no, para poderlo hacer debes hacer tu runtime de nuevo. Eso no tiene NADA que ver. C/C++ generan codigo maquina.
3778
« en: Viernes 15 de Septiembre de 2006, 19:42 »
Veo que aún tienes confusion respecto al tema, tu pc no sabe lenguaje C.
El único lenguaje que conoce el PC es lenguaje de maquina.
Para que te funcione C++ necesitas tambien tener el runtime, seguramente creado por ti mismo, Windows lo tiene porque con base a ese runtime esta hecho practicamente todo, pero sin ese runtime todo se va al suelo y no te sirve de nada. Parece que vos tambien estas confundido, para variar. Podes escribir codigo, inutil, en C y C++ y el mismo sera perfectamente valido ya que son lenguajes COMPILADOS. La misma Run Time a la que te referis esta COMPILADA y por lo tanto es codigo que entiende la maquina. Ejemplo: void main() { int x = 33; x++; x--; }
3779
« en: Viernes 15 de Septiembre de 2006, 19:37 »
POngo el codigo por si ves algo mal. cadena2 "dd 20h", no es necesario, vd? cadena2 dd 20h<< Eso te lo inventaste ... con eso declaras una variable de tipo DWORD (4 bytes) cuyo valor al inicio es 0x20. Para hacer un array de 20 bytes inicializados a 0 tenes que poner esto: cadena2 db 20 dup(0) Por otro lado le estas pasando un valor fijo al WriteFile, entonces escribira ese tamaño ... pese a que tu cadena sea menor ... pasale aunque sea un byte menos de tamaño asi la cadena termina en cero y no lo que haya justo despues ... Y el que se carguen 2 programas a la vez, y no se pisen al cargarse en la misma direccion (0040100), es por el tema de la memoria virtual, vd? Cada proceso tiene su propio espacio de direccion totalmente independiente de los demas.
3780
« en: Viernes 15 de Septiembre de 2006, 07:59 »
Gracias, y me funciona prefectamente el programa, bueno solo un pequeño detalle... Que cuando intenta mostrar por la shell la cadena que introduci previamente se come algunas letras : ej: escribo: hola, que tal? me sale:hola, (espacios) tal? ...pero bueno al menos sale algo.. xD... No se, pone el codigo del programa ... habra algo mal. Respecto al tema de las excepciones. Supongo que el tema ira asi: El control de excepciones del SO detecta una excepcion en el codigo(stack overflow, se agota la mem,asignacion a una variable un valor no valido...) , y entonces lanza la excepcion e intenta encontrar un manejador de excepciones dentro del ejecutable, que como no lo encuentra, aborta la ejecucion del programa y muestra el cuadro ese de la aplicacion.exe ha detectado un problema, indicandote el offset donde lo encontro. (no si te referias a eso con el manejador por defecto). Esto es lo que yo entiendo, corrijeme si estoy equivocado. Entonces utilice un hex editor, para borrar lo que se me antojara, sin borrar la cabecera, y luego lo abri con el debugger para ver ejemplos de excepcion generados por casualidad ( es bastante facil generar errores xD). El primero que encontre fue en esta linea "OR DWORD PTR DS:[EAX],EBP". Esto por lo visto es un error. Lo que me gustaria que me dijeras, son ejemplo de errores, y explicarlos brevemente, como este, para no cometerlos yo al programar. Si, baicamente funciona de esa manera. EAX en ese punto debe ser una direccion invalida. Si queres mas informacion busca SEH, yo puedo ayudarte con problemas pero no soy profesor. Otra cosilla, que me viene a la cabeza, jejej, como es posible desbordar el buffer asignado a una variable? EJ: pongo en la zona de .data algo asi : dd 2, y por muy larga que sea la cadena de caracteres que meto, no me salta el cuadrito de la excepcion. POr cierto, que significa declarar datos asi : dd 0h, porque se pone el 0h? es el tamaño del buffer? (no creo....) Esos numeros inicializan la variable a 0. Un overflow no tiene siempre que generar una excepcion ... depende que escribas y donde ... Y la ultima cosa, (perdona por tantas preguntas xD,..) cuando un programa se carga en memoria, cada vez se carga a partir de un offset, que le asigna el SO vd? no siempre en el mismo... Entonces si por ej, te salta un cuadro de excepcion, indicandote el offset donde esta el error, si tu lo abres con un debugger, no tiene porque estar en el mismo offset, o si? Y cuando lo abres con un hex editor? No, los ejecutables suelen tener una direccion de carga unica que es repestada por el loader de Windows, proba a ponerle la direccion base de Kernel32 o NTDLL y vas a ver lo que pasa ...
3781
« en: Jueves 14 de Septiembre de 2006, 23:05 »
3782
« en: Jueves 14 de Septiembre de 2006, 23:03 »
El idiota soy yo, disculpen, mire lo que no era en la pagina de ellos pero... hmmm nada, mejor no digo nada. Uan asi el... no ni hablar (lo que tenia que decir no era de un rootkit, no lo digo por otras razones ya expuestas) Ya se porque elisa44 dijo lo que tenia que decir no estoy bien (no por lo que le da a las mujeres, claro). Lo que pasa es que, bueno no viene al tema, con mi ultimo post en el hilo (espero) digo que bien mal estoy y que sin importar lo que pase estara la idea que se torna bipolar y seguira hasta que se presente un estudio tecnico de todo esto (que por cierto, puede pagar bien, creo que Microsoft, IBM y otros lo comprarian, no se suena a cuento pero...) La verdad no entendi nada pero bueno ...
3783
« en: Jueves 14 de Septiembre de 2006, 22:41 »
Entonces los de kernelkit.nl son unos idiotas... ya rstoy mirando lo de X.Cyclop, aun asi, yo digo que es muy dificil porque no instalas cualquier cosa, los de GNU no van a poner un rootkit o los de sourceforge, ja los demandarian o algo asi. No son idiotas y deberias tener mas cuidado con lo que decis. Lee su pagina y en 5' te das cuenta de lo que hace su programa; no es una idiotez sino una utilidad con determinadas capacidades y limitaciones. En cuanto el modulo este cargado puede sobreescribir el codigo del Kernel ... y que sea dificil que alguien lo instale o que sea dificil de hacerlo no tiene NADA que ver con que una vez cargado sea facil de identificar ... eso ya dependera del nivel al que baje el Rootkit y de las herramientas que puedas usar y la capacidad que tengas para encontrar pistas ...
3784
« en: Jueves 14 de Septiembre de 2006, 22:21 »
Bueno disculpa, pero al meno quedo como un chiste (para ti, claro ) pero si puede engañar al "output" de memoria, a los simbolos del kernel, a KDL (Dynamic Kernel Linker) a nmap (para la silida de red) ? Desde el momento que se carga un modulo en modo Kernel tiene los mismos privilegios que el mismo Kernel y puede MODIFICAR cualquier direccion de memoria a gusto (esto incluye el mismisimo codigo del Kernel), cambiando CUALQUIER cosa ... te repito: investiga, no pienso ni poner enlaces, hasta X.Cyclop ya encontro algo.
3785
« en: Jueves 14 de Septiembre de 2006, 22:08 »
COOL, especialmente el primero.
3786
« en: Jueves 14 de Septiembre de 2006, 22:02 »
Entonces no queda registrado en /proc/devices, modules ni driver/*, ni en ksyms? Lo dudo, ademas para eso esta el rkhunter que detecta hasta sniffers. Jajaja, NO y muchisimo menos para programas de modo Usuario. Un Rootkit puede INTERCEPTAR todas tus llamadas al Kernel y devolverte los datos que considere ... no dudes, investiga antes de hablar de lo que no sabes nada.
3787
« en: Jueves 14 de Septiembre de 2006, 19:27 »
Al debugearlo, que de esa manera me ayuda, y hasta te dice el orden el que hay que meter los parametros, me devuelve en eax un handle con el valor 00000, que ya es raro.. lugo lei donde me dijiste que lpNumberOfBytesWritten y lpOverlapped no pueden valer los 2 NULL. En fin, el codigo debe ser bastante sencillo xD... Aunque en la pagina que me diste esta todo en ingles, tampoco tengo soltura para el ingles y ademas las funciones apis estan para otros lenguaje, aunque supongo que dara igual... Si te devuelve 0 es que hubo un error ... ¿Estas creando un programa de consola no? El parametro SUBSYSTEM del enlazador tiene que ser CONSOLE y no WINDOWS. La pagina esta en Ingles como todo, y la ayuda esta mas que nada orientada a C, es lo que hay ... si queres hacerlo en asm tenes que saber los dos lenguajes o pedir a alguien que te ayude. Como decis los dos no pueden valer NULL y ese es el error de tu programa, tenes que pasarle un puntero a una variable de tipo DWORD donde el ponga cuando logro escribir y ademas darle un tamaño del buffer de escritura que sea logico (estas pasandole que escriba 0 bytes ...). 4.ok, esque ayer lo probe y no me funcionaba, y hoy, misteriosamente si  Eso funciona siempre, hay que comprobar mejor. Cuando te sale el cuadro ese de tuaplicacion.exe a detectado un problema y debe cerrarse, a que puede deberse? Quiero decir, que cuales son las causas fundamentales? Una excepcion no controlada. PEro lo que no entiendo es, el que ejecuta, para que detecte un problema y se cierre, que secuencia de codigo Justamente ejecuta el manejador de excepciones por defecto.
3788
« en: Jueves 14 de Septiembre de 2006, 19:14 »
3789
« en: Jueves 14 de Septiembre de 2006, 10:25 »
No lei todo el post, ni creo que lo haga, pero aunque dices cosas ciertas, este punto es falso, resulta que no son virus, no puede haber un virus en UNIX/Unix-like, eso nunca, el listado es de rootkeys (Ni se como se escribe, ja ja ja ) y es realmente dificil que tengas uno, nunca, pero nunca me he topado con algo como esto, en Windows... en Windows El objetivo de un rootkit (cosa sobre la cual discutias en otro hilo y ahora sos incapaz de escribir) es justamente que no lo veas, no me sorprende que nunca te hayas topado con un uno. No lo reconocerias aunque te golpeara la cara.
3790
« en: Jueves 14 de Septiembre de 2006, 08:12 »
Y me da un error en tiempo de ejecucion (ya puse el ret ). MI pregunta es, como debo poner el codigo para que me funcione? Y para que hay que hacer un push NULL en muchas ocasiones antes de llamar a la funcion? Esque lo vi en muchos codigos en internet y nose el porque hay que pornerlo..
Y el de ReadFile?No sabes de algun sitio donde te diga los parametros que hay que meterles a las funciones y como hay que utilizarlas? La respuesta es simple: correctamente. ¿Porque hay un push NULL? Bueno, NULL es en realidad 0, se le estara pasando 0 como primer parametro a esas funciones, asi de simple tambien. Estas usando mal tanto GetStdHandle como WriteFile, al igual que ReadFile podes encontrar como usarlas en http://msdn.microsoft.com4. Otra cosa, como se ponen las etiquetas y sus referencias en masm para 32 bits? Esque cuando programaba para win16, bastaba con poner las etiquetas asi: :etiqueta, y te referias a ella con su nombre, jmp etiqueta... como se hace ahora? Yo creo que siempre se hizo con etiqueta: asi que probalo asi jeje. Y otra pregunta, que significa el "NOP" que pone muchas veces cuando debugeas un codigo?? Nop es no-operation, basicamente no hace nada.
3791
« en: Miércoles 13 de Septiembre de 2006, 19:57 »
Si la verdad estaria muy bien hacer un subforo pequeño para el proyecto mmm la idea e hacer una lista con todos los miemrbos que de verdad quieren participar y k el foro sea privado asi podemos poner nuestros msn en el proyecto y todo sagregarnos la gente que no seap o no sepa en que grupo ponerse leer el curso que dentro de poco estara a sus manos mmm etc la verdad como dicen la idea es organizacion bueno veamos que dice Juank. ¿Un subforo aca? Espero que no sea esa la idea ... Por otro lado creo que todavia no vi ninguna respuesta tuya con respecto a lo que se dijo de tus muy poco honestas intenciones ... el que calla otorga se dice en muchos lugares ...
3792
« en: Miércoles 13 de Septiembre de 2006, 18:39 »
3793
« en: Miércoles 13 de Septiembre de 2006, 18:34 »
3794
« en: Miércoles 13 de Septiembre de 2006, 10:38 »
Yo soy de Buenos Aires.
3795
« en: Miércoles 13 de Septiembre de 2006, 09:55 »
1.Este codigo tan secillo me compila bien, pero sin embargo me da un error en timepo de ejecucion, la tipica ventanita de windows diciendo q aplicacion.exe a detectado un problema y debe cerrarse...
A q se puede deber? No devolves el control al sistema de ninguna manera, el codigo que se ejecute despues de tu instruccion mov es indeterminado; si agregas un ret o como en el otro codigo un ExitProcess funcionara perfectamente. 2.Mira este code, funciona sin problema pero me gustaria interpretarlo al depurarlo (utilizo ollydbg). invoke es una directiva que sirve para que MASM se encargue por si solo de emitir el codigo necesario para una llamada de tipo stdcall. Este tipo de convencion de llamada hace el pasaje de parametros en la pila y el llamador es el encargado de limpiarla. Por lo tanto lo que ves son push's por cada uno de los parametros y un call. En cuanto a esos numeros son direcciones en hexadecimal de las cadenas de caracteres (supongo que tu ejecutable se llama 1 ...). Los saltos esos son un poco mas dificiles de explicar pero digamos que debido a las DLLs que usa Windows no necesitas direcciones fijas y eso se llena en tiempo de ejecucion. Si queres podes investigar mas sobre el formato PE para saber como funciona pero no te lo recomiendo todavia ... 3. Que funcion del SO tengo q utilizar para imprimir una cadema de caracteres por la linea de comandos, como si fuera el system("cadena"); del lenguaje C? system no imprime una cadena sino que intenta ejecutarla; printf si imprime una cadena y podes usar entre otras, como creo haberte dicho en el anterior hilo, WriteFile y GetStdHandle. 4. Y que funcion para almacenar una cadena de caracteres q escriba por el teclado? ReadFile entre otras.
3796
« en: Miércoles 13 de Septiembre de 2006, 09:55 »
3797
« en: Martes 12 de Septiembre de 2006, 10:46 »
Espero que esto solo lo quieras hacer funcionar en 9x ... el codigo es un poquito "crudo" para mi gusto ... while(1){ while ( tics<fs_hz ){;} printf("\t\tNumero de tics: %d\n",tics); //AQUI ES DONDE CREO Q DEBERIA VENIR LA RUTINA "SendData()" CUANDO PODAMOS //OBTENER LA VELOCIDAD NECESARIA DEL TIMER tics=0; }
Si fs_hz es mayor a cero jamas llegara al printf para empezar. Despues si fs_hz es cero nunca saldra del primer while ya que este es infinito y no tiene ninguna comprobacion ... Tal vez esto se parezca mas a lo que necesitas: while (tics < fs_hz) { printf("\t\tNumero de tics: %d\n",tics); tics++; //dijiste "cada vez q llamo a la interrupcion de tiempo incremento una variable", hagamoslo asi esto termina alguna vez. }
3798
« en: Martes 12 de Septiembre de 2006, 00:12 »
Ok, esa es mi duda si es numerico con que puedo leerlo, para caracter se supone que lo lee con la instruccion mov ah,1, que por cierto la olvide poner en mi post. Bueno, mira el unico mensaje fijo del foro, arriba de todo con las interrupciones.
3799
« en: Lunes 11 de Septiembre de 2006, 22:43 »
Primero que nada no te recomiendo usar el Debug sino un ensamblador de verdad como el MASM.
Ahora al codigo: ¿Donde esta la parte que lee el numero? Hace falta pulir mucho ahi ...
3800
« en: Lunes 11 de Septiembre de 2006, 18:51 »
Al final sin saberlo uno puede terminar haciendo cosas ilegales
Páginas: 1 ... 150 151 [152] 153 154 ... 205
|
|
|