Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Concurso casero de C

Estas en el tema de Concurso casero de C en el foro de C/C++ en Foros del Web. Cita: Iniciado por Developer9 Y puedo decir libremente lo que se me ocurre conservando los derechos de autor, es decir, sin que me plagien la ...

  #91 (permalink)  
Antiguo 03/10/2006, 06:40
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por Developer9 Ver Mensaje
Y puedo decir libremente lo que se me ocurre conservando los derechos de autor, es decir, sin que me plagien la respuesta en el caso de que sea buena...



no importa...

Se me ocurre crear un puntero y direccionarlo a la dirección de memoria indicada y sacar lo que se encuentre allí

haber si pasamos por algún sitio interesante de la ram
xD Claro, el que lo diga antes, gana. El foro está para demostrarlo.

Además, no veo razón por la que yo te fuese a "quitar tus derechos"... Si lo consigues, enhorabuena.

¿Crear un puntero a qué posición? Eso es un array de bytes, no me acuerdo cuantos, habrá como 50 bytes, nada de posiciones de memoria.

Que las posiciones de memoria se representen en notación hexadecimal no significa que todos los números en hexadecimal signifiquen posiciones de memoria... >.<!
  #92 (permalink)  
Antiguo 03/10/2006, 08:47
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 9 meses
Puntos: 47
ok ok... entonces yo paso...

Aunque lo más logico sería cambiar cada expresión de hexa a deci y ya ta
  #93 (permalink)  
Antiguo 03/10/2006, 13:47
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por Developer9 Ver Mensaje
ok ok... entonces yo paso...

Aunque lo más logico sería cambiar cada expresión de hexa a deci y ya ta
¿Y ya está qué? ¿Qué consigues con eso?
  #94 (permalink)  
Antiguo 03/10/2006, 13:51
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 9 meses
Puntos: 47
mostrar algo entendible... en decimal

Así que yo lo pensé primero, problema solucionado, asunto resuelto, caso cerrado, 10 puntos para el buen dev...

siguiente tema por favor
  #95 (permalink)  
Antiguo 03/10/2006, 14:05
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por Developer9 Ver Mensaje
mostrar algo entendible... en decimal

Así que yo lo pensé primero, problema solucionado, asunto resuelto, caso cerrado, 10 puntos para el buen dev...

siguiente tema por favor
Vale, ahora te apunto en la primera página como el ganador.

Que sean 11, matrícula de honor, por la rapidez.

:D
  #96 (permalink)  
Antiguo 04/10/2006, 08:43
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 9 meses
Puntos: 47
Todos:


Muchas gracias, muchas gracias...

este triunfo se lo debo a mi manager, a mi mamá y a Wellapon
  #97 (permalink)  
Antiguo 04/10/2006, 14:22
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 19 años, 10 meses
Puntos: 1
tiene algo que ver con sumas o restas entre las posiciones de las difentes arrays de caracteres que das para conseguir nuevos caracteres que son los buenos realmente?

Por cierto veo que los ultimos 26(creo) caracteres de las 3 arrays coinciden,mmm.
  #98 (permalink)  
Antiguo 04/10/2006, 16:56
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 2 meses
Puntos: 52
Cita:
Por cierto veo que los ultimos 26(creo) caracteres de las 3 arrays coinciden,mmm.
Eso me hace deducir algo:

Si los tres coinciden al final quiere decir que los 3 dicen algo como:

"Correcto/Incorrecto, con tu respuesta"

algo por el estilo, aqui el chiste es mas bien, hacer que llegues a ese resultado, pero, es de que he intentado muchas cosas y maxextreme, me dice que en una de esas mil me acerque ........ jajajajaja, que buena pista, cone so ya casi lo tengo

Jajajaja

Saludos
  #99 (permalink)  
Antiguo 04/10/2006, 17:25
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 19 años, 10 meses
Puntos: 1
Cita:
Iniciado por Instru Ver Mensaje
Eso me hace deducir algo:

Si los tres coinciden al final quiere decir que los 3 dicen algo como:

"Correcto/Incorrecto, con tu respuesta"

algo por el estilo, aqui el chiste es mas bien, hacer que llegues a ese resultado, pero, es de que he intentado muchas cosas y maxextreme, me dice que en una de esas mil me acerque ........ jajajajaja, que buena pista, cone so ya casi lo tengo

Jajajaja

Saludos
Creo que no me da el nivel para tanto aun, esto esta dificil además decia que con una sola sentencia se podia...uff.

saludos!
  #100 (permalink)  
Antiguo 04/10/2006, 17:55
 
Fecha de Ingreso: febrero-2005
Mensajes: 39
Antigüedad: 19 años, 10 meses
Puntos: 1
Podria ser que el hexadecimal de alguna de las arrays indicara la posicion donde se encuentra el caracter que buscamos en alguna de las otras arrays(o quizas un par de las arrays concatenadas)?

Un saludo.
  #101 (permalink)  
Antiguo 04/10/2006, 19:51
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 8 meses
Puntos: 2
yo tambien me he preguntado, por que los 3 terminan igual, y sin embargo no tienen ningun caracter legible.

lo mas probable es que sean opcodes de codigo maquina, sin embargo, aun asi, tiene que haber por ahi una cadena, ya que esta no se sacara de la nada.

y la verdad ignoro como una sola centencia arreglara esto.

se me ocurre algo, vere si puedo hacerlo y luego les cuento.
lo mas seguro es que no funcione, jaja

Una pregunta, MaxExtreme:

¿Se supone que el mensaje o el resultado sera mostrado por la sentencia puts(p); y no por otra?

Última edición por Nivel7; 04/10/2006 a las 20:21
  #102 (permalink)  
Antiguo 04/10/2006, 22:08
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 8 meses
Puntos: 2
No no funciono, bueno, Yo ya me rindo, no insistire mas.
esta vez estoy derrotado.

Saludos
  #103 (permalink)  
Antiguo 05/10/2006, 06:41
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
(Aquí va la primera pista, las pondre en negrita y cursiva)

Cita:
Iniciado por Nivel7 Ver Mensaje
¿Se supone que el mensaje o el resultado sera mostrado por la sentencia puts(p); y no por otra?
El mensaje DEBE ser mostrado por "puts(p);", y remarco con la "p".

Podéis añadir todo lo que queráis, pero no podéis tocar lo que ya está.

Y esto quiere decir que En "p" debe terminar el mensaje original, por lo tanto debe ser modificado de alguna manera.

Última edición por MaxExtreme; 05/10/2006 a las 06:49
  #104 (permalink)  
Antiguo 05/10/2006, 06:46
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por Instru Ver Mensaje
Si los tres coinciden al final quiere decir que los 3 dicen algo como:

"Correcto/Incorrecto, con tu respuesta"
Eso no quiere decir nada. De hecho, no.

Y de aquí, se saca esto:

Los tres arrays NO eran del mismo tamaño. Es decir, rellené los arrays más pequeños con datos del más grande, para que aparentasen ser iguales.

Cita:
es de que he intentado muchas cosas y maxextreme, me dice que en una de esas mil me acerque
Diré que hay alguien de aquí que después de tu mensaje ha vuelto a acertar y decir la misma idea que dijiste.

Os estáis acercando, pero desecháis las ideas pronto.

Dos participantes (Instru y otro) ya se han planteado la idea correcta. Uno de ellos (que no es Instru) la ha escrito aquí.

Última edición por MaxExtreme; 05/10/2006 a las 06:52
  #105 (permalink)  
Antiguo 05/10/2006, 06:47
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por GM_Juanjo Ver Mensaje
Podria ser que el hexadecimal de alguna de las arrays indicara la posicion donde se encuentra el caracter que buscamos en alguna de las otras arrays(o quizas un par de las arrays concatenadas)?
No, como dije antes eso implicaría que los arrays no podrían moverse de donde estuvieran, desordenarles, poner variables entre medias...

Y no es así, de aquí se saca que:

Los arrays SON independientes, no hay offsets fijos, ni representan direcciones de memoria.
  #106 (permalink)  
Antiguo 05/10/2006, 09:30
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 11 meses
Puntos: 22
Uff por lo menos ya logré ver algo...jeje...la verdad lo he estado intentando a ratos desde ayer y creo que ya ando cerca aunque parece que me falta una parte del mensaje que termina en algo asip como:
"...Conseguido! Felicidades! - MaxExtreme"

...sigo intentando...saludos.
  #107 (permalink)  
Antiguo 05/10/2006, 09:58
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por fightmx Ver Mensaje
Uff por lo menos ya logré ver algo...jeje...la verdad lo he estado intentando a ratos desde ayer y creo que ya ando cerca aunque parece que me falta una parte del mensaje que termina en algo asip como:
"...Conseguido! Felicidades! - MaxExtreme"

...sigo intentando...saludos.
Touché!

¿Has adivinado la solución? ¿Has adivinado la encriptación? ¿Has conseguido solucionarlo con una sóla sentencia de C? (No des explicaciones que puedan quitar la emoción a otros usuarios, por favor, sólo Sí, No... y la solución final sólo por privado)

Con la cadena casi desvelada, los demás participantes tendríais que tener la vida más fácil ahora.

NOTA: Por como muestras la cadena y tu expresión parece que la has desencriptado. Si es así, trata de encontrar una solución real, desencriptar la cadena a mano no es el objetivo.
  #108 (permalink)  
Antiguo 05/10/2006, 15:00
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 2 meses
Puntos: 52
jajajaja. Vale, si alguien y yo hemos coincidodo en algo ese debe ser Nivel7. Y esto es en que los arrays tienen opcodes, o algo parecido.
Por otro lado, queda descartada la opcion de usar funciones de string.h, ya que nadie mas ha dicho algo que concuerde con lo mio.
no se, igual puede ser un puntero de funcion a p que tome como argumentos q y r.....

Puede haber muchas posibilidades.

Saludos
  #109 (permalink)  
Antiguo 05/10/2006, 15:10
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por Instru Ver Mensaje
jajajaja. Vale, si alguien y yo hemos coincidodo en algo ese debe ser Nivel7. Y esto es en que los arrays tienen opcodes, o algo parecido.
Por otro lado, queda descartada la opcion de usar funciones de string.h, ya que nadie mas ha dicho algo que concuerde con lo mio.
no se, igual puede ser un puntero de funcion a p que tome como argumentos q y r.....

Puede haber muchas posibilidades.

Saludos
Ouch! Nada de string.h

Caliente, caliente:

El problema es dependiente de la plataforma x86 o compatible... :)
  #110 (permalink)  
Antiguo 05/10/2006, 15:13
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 2 meses
Puntos: 52

"Ouch!" es bueno o malo??!??!

Saludos
  #111 (permalink)  
Antiguo 05/10/2006, 15:17
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por Instru Ver Mensaje

"Ouch!" es bueno o malo??!??!

Saludos
Ouch! era porque habías dado en el clavo. (string.h, eso sí, no tiene nada que ver con el problema).

Centraos en las pistas en negrita ;)
  #112 (permalink)  
Antiguo 05/10/2006, 15:35
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 2 meses
Puntos: 52
Listo. He conseguido la solucion.
"Conseguido! Felicidades!- MaxExtreme"

Solo una sentencia.

Practicamente ya les deje la respeusta en mis posts pasados.

Salduos
  #113 (permalink)  
Antiguo 05/10/2006, 15:36
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por Instru Ver Mensaje
Listo. He conseguido la solucion.
"Conseguido! Felicidades!- MaxExtreme"

Solo una sentencia.

Practicamente ya les deje la respeusta en mis posts pasados.

Salduos
Felcidades! (de nuevo :D). Puse el mensaje, para que luego no me dijesen (como Nivel7 en broma) que si era la tarea de la universidad (a la que no voy) :D

¿En una sóla sentencia? ¿Cuántas usaste?
  #114 (permalink)  
Antiguo 05/10/2006, 18:35
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 8 meses
Puntos: 2
bueno, lo tengo, sin embargom ya lo había intentado asi, muchas veces,
en fin, eso parecio mas una adivinanza que un problema de C.
  #115 (permalink)  
Antiguo 05/10/2006, 20:09
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 2 meses
Puntos: 52
Cita:
bueno, lo tengo, sin embargom ya lo había intentado asi, muchas veces,
en fin, eso parecio mas una adivinanza que un problema de C.
Ahi si tiene toda la razon. Esto fue mas como adivinanza.

Saludos
  #116 (permalink)  
Antiguo 06/10/2006, 14:05
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por Nivel7 Ver Mensaje
bueno, lo tengo, sin embargom ya lo había intentado asi, muchas veces,
en fin, eso parecio mas una adivinanza que un problema de C.
Bah, bah... Si hubiéseis usado un desemsamblador, hubieras visto claramente que r era una función, y a partir de ahí, era evidente que sólo podía ser "p,q" o "q,p" ;)

No hace falta saber de ASM, con mirar que "r" tenía el principio y fin caracteristico de una función (ejemplo: buscar "ret")... ;)

Es para picaros, felicidades :D

Este fin de semana pensaré algún otro problema "más de C" ahora que acabé lo que andaba haciendo de programación.

Pero no me negaréis el gusto que os dio resolver este y ver el dichoso mensaje de una vez :D
  #117 (permalink)  
Antiguo 06/10/2006, 15:20
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 2 meses
Puntos: 52
Cita:
Pero no me negaréis el gusto que os dio resolver este y ver el dichoso mensaje de una vez :D
Seguro......

Salduos
  #118 (permalink)  
Antiguo 06/10/2006, 16:12
arm
 
Fecha de Ingreso: mayo-2006
Mensajes: 112
Antigüedad: 18 años, 8 meses
Puntos: 0
Buena ya que se ban a tomar un receso, quisiera que me ayudaran a entenender esta expresion que usaron en el anterior probla:
(nombre_estructura *)0

Yo entente solucionarlo, pero como es de esperar no llege a la solucion y ninguna se parecia, ademas, no tenia ni idea de que se podia hacer eso.
Es decir, tengo entendido que (instacia*) 0 señala a una psocion de merio no peromiticada, pero (nombre_estructura *)0 que significa.
__________________
-> La duda adecuada es un buen comienzo <-
  #119 (permalink)  
Antiguo 06/10/2006, 16:45
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por arm Ver Mensaje
Buena ya que se ban a tomar un receso, quisiera que me ayudaran a entenender esta expresion que usaron en el anterior probla:
(nombre_estructura *)0

Yo entente solucionarlo, pero como es de esperar no llege a la solucion y ninguna se parecia, ademas, no tenia ni idea de que se podia hacer eso.
Es decir, tengo entendido que (instacia*) 0 señala a una psocion de merio no peromiticada, pero (nombre_estructura *)0 que significa.
De hecho, no es permitida. Pero date cuenta que tiene el &

&(((T*)0)->miembro)

Es decir, se convierte a una dirección, NO se accede a esa memoria, a pesar del "->". Y tal dirección, representa el offset del miembro, dado que si el offset de la estructura es 0, cada miembro en memoria será igual a su offset.

Y ese offset le usamos para saber cuantos bytes hay desde el miembro hasta la estructura que lo contiene, de tal manera que restamos eso a la posicion original del miembro.

posicion_real_de_miembro - offset_de_miembro_en_0 = posicion_real_de_estructura_contenedora

La magia, está hecha ;)
  #120 (permalink)  
Antiguo 06/10/2006, 20:40
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 8 meses
Puntos: 2
asi es,

recuerda que el operador & te da la direccion de la variable apuntada.

ahora, una estructura es en realidad un array cuyos indices se indican con el nombre del campo en lugar de un numero.

lo que hace la exprecion;

(Estructura*)0;

es interpretar la direccion 0 como si fuese un puntero a Estructura,

ya que tenemos la direccion del primer miembro de la estructura(Que es la que representa la direccion de la estructura), tenemos que saber la direccion del miembro en cuestion.

&((Estructura*)0)->Campo;
esta exprecion nos retorna la direccion del miembro Campo.

como es logico que : DirCampo - 0 = DirCampo;
tenemos que la diferencia en bytes del primer miembro de la estructura al miembro en cuestion es el resultado de la exprecion mencionada.
esta claro que en ningun momento tenemos la intencion de acceder a tal campo, solo nos desplazamos al supuesto miembro, en una supuesta estructura.

ahora solo basta aplicar la resta del offset a la estructura real.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:13.