Descifrar codigo de envio mediante POST de un minijuego en flash

Iniciado por oscar199, 29 Septiembre 2010, 00:51 AM

0 Miembros y 2 Visitantes están viendo este tema.

APOKLIPTICO

Es que en realidad, no está cifrado esto, o por lo menos no parece estarlo, simplemente es una cadena plain-text que se envía, está presentado con url-encode para hacerlo más legible ya que caracteres como "C2" (194 decimal) no son los normales y pueden traer problemas si no se usa la misma codificación, para hacerlo universal entonces se utiliza el url-encode.
En cuanto a eso del "salt" eso se utiliza en hashes y cifrados, esto no es ni un hash ni un cifrado.
La entropía es demasiado alta como para que pueda ser un cifrado y no es un hash porque el hash tiene siempre un mismo tamaño de salida y suelen ser chicos, como máximo 512 bits (64 bytes).

Yo te decía es tratar de ir cambiando la cadena y mandandola, cambiar la "g" por una "z" por ejemplo" o la "f" por una "t" ir cambiando y ver que pasa.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

oscar199

#11
Cita de: APOKLIPTICO en 29 Septiembre 2010, 19:16 PM
Es que en realidad, no está cifrado esto, o por lo menos no parece estarlo, simplemente es una cadena plain-text que se envía, está presentado con url-encode para hacerlo más legible ya que caracteres como "C2" (194 decimal) no son los normales y pueden traer problemas si no se usa la misma codificación, para hacerlo universal entonces se utiliza el url-encode.

Entonces podriamos utilizar el url-decode?

Cita de: APOKLIPTICO en 29 Septiembre 2010, 19:16 PM
En cuanto a eso del "salt" eso se utiliza en hashes y cifrados, esto no es ni un hash ni un cifrado.
La entropía es demasiado alta como para que pueda ser un cifrado y no es un hash porque el hash tiene siempre un mismo tamaño de salida y suelen ser chicos, como máximo 512 bits (64 bytes).

Oki.

Cita de: APOKLIPTICO en 29 Septiembre 2010, 19:16 PM
Yo te decía es tratar de ir cambiando la cadena y mandandola, cambiar la "g" por una "z" por ejemplo" o la "f" por una "t" ir cambiando y ver que pasa.

Pos voy a ir provando jajaja, a ver si suena la flauta. A y otra cosa, solo guarda la puntuación mas alta que tengas.

Nuevas noticias: acabo de estar mirando de cambiar algun digito y .... es como intentar colar una pelota de basquet por una cesta del diametro de un alfiler xD. En estas ultimas partidas que he hecho canvian algunos valores de más y si lo empiezo a cambiar todo es como echar la primitiva.
A ver si se le puede encontrar la lógica a estos envios jajaja
Bueno, ademas de que me gustaria saber lo que pongo, a poder ser, claro esta xD

oscar199

epa xD, que por lo visto si no hago un mensaje nuevo no aparece como que este tema tiene algo nuevo, y yo estaba todo el rato editando mis mensajes :S
En cuanto puedas Apokliptico mirate la ultima parte del mensaje anterior a este.

APOKLIPTICO

A ver, no es muy complicado lo que tenés que hacer, tenés que cambiar solo los caracteres que te puse con color, osea los que cambian, los otros dejalos igual, sobre todo tenés que cambiar los de la segunda linea que te mostré, que probablmente esos sean los de los puntos y el tiempo.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

oscar199

#14
Sí sí, si entenderte ya te entendí, pero... te cuento:

No hay ningun contador de tiempo, pero pense que internamente el juego podria pasarlo en una variable.

Entonces imaginemos que la "g" equivale al numero "3" (de la puntuación) y la "f" equivale al numero 5 (del tiempo, que no se si está). Si yo pongo:

gg%ff

No se que estoy poniendo, entonces si el juego tiene una relación de tiempo/score y tiene que ser correcta para que se guarde correctamente pues.... como que me voy a tirar una vida y parte de la otra para conseguir poner una puntuación que sea correcta con respecto al tiempo.

Si yo pongo sin saberlo 2.000.000 de puntos no puedo retroceder, porque siempre se guarda la puntuación mas alta, aunque.... ahora se me está ocurriendo una cosa:
despues de pasar esa info el arhivo php hace un GET y envia una variable por la URL maxpuntos="1" o algo asi, quizás si pongo maxpuntos="0" me borre la puntuación alta y me ponga la puntuación que haya hecho en ese momento.

APOKLIPTICO

Generalmente las codificaciones no son por sustitucion, osea, "g" no equivaldría a 3 por ejemplo, "g" puede equivaler a su valor en ascii osea 103. Es cuestión de seguir jugando y probando, una vez que encuentres la falla, te pido que la reportes.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

oscar199

#16
Ya estoy por aquí otra vez  :P

Cita de: APOKLIPTICO en 29 Septiembre 2010, 20:30 PM
Es cuestión de seguir jugando y probando, una vez que encuentres la falla, te pido que la reportes.

Seria lo menos que puedo hacer por vosotros!!!


Sobre lo del GET es para mostrar el ranking, así que si por lo que sea pongo 2.000.000 puntos va a quedar muy feo y no podre bajarlo de ninguna forma :S por lo tanto tendria que saber concretamente que es lo que tengo que cambiar y mas o menos por que valor.

He sacado unos cuantos códigos para que me digas que debo cambiar, ya que aquí cambian varias cosas:

Parte que cambia con 0 puntos y el mínimo de tiempo posible (como mucho 1 seg.):

89dn%C2%BF%C2%AC%C3%8C%C3%89rx%C2%87%C2%80%7Cz%7F%C2%88%C2%86k%7FW%C3%88%C2%AD%C2%A2%C2%AC%C3%82%C2%B8%C2%96%C2%88f%7C%C2%8E%7B%7D

89dn%C2%BF%C2%AC%C3%8C%C3%89rx%C2%87%C2%80%7Cz%7F%C2%89%7Fe%C2%81W%C3%88%C2%AD%C2%A2%C2%AC%C3%82%C2%B8%C2%96%C2%8Bfx%C2%86%C2%80%7F

89dn%C2%BF%C2%AC%C3%8C%C3%89rx%C2%87%C2%80%7Cz%7F%C2%89%7Fn%C2%83W%C3%88%C2%AD%C2%A2%C2%AC%C3%82%C2%B8%C2%96%C2%88ly%C2%88%7Ew

89dn%C2%BF%C2%AC%C3%8C%C3%89rx%C2%87%C2%80%7Cz%7F%C2%89%C2%81g%7DW%C3%88%C2%AD%C2%A2%C2%AC%C3%82%C2%B8%C2%96%C2%8Ciy%C2%8D%7E%7F

Parte que cambia con 20 puntos y el mínimo de tiempo posible (como mucho 3 seg.):

89fxy%C2%B7%C2%BA%C3%88%C2%A9%C2%84%C2%86z%7Fx%7E%C2%8B%C2%86i%C2%81e%7C%C2%BE%C2%95%C2%B6%C2%B7%C2%BA%C3%86%C2%92mx%C2%87%C2%80%C2%80%7B

APOKLIPTICO

#17
Andá analizando que es lo que cambia y como es que cambia y lo que se mantiene constante, y de esa manera vas a encontrar la respuesta.

http://utilitymill.com/utility/Text_Diff

Eso te va a ayudar.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

oscar199

#18
La diferencia entre cualquier de los codigos con puntuación equivalente a 0 y el código de puntuación 20 es: TODO diferente, según la pag. que me has pasado (gracias por pasarmela, por cierto).

Es decir, Misión imposible IV :S

Dime algo a lo que agarrarme porfa ;)

La parte que és igual en todos las puntuaciones y tiempo es esta (que no la he puesto en el mensaje de antes porque creo que no hacia falta ponerla):

d=%C2%A3%C2%B0%C2%B8%C2%B3%C2%84%C2%B2%C2%BA%C2%B7%C2%B7%5B%C2%AF%C2%A0%C2%BA%C2%B5%C2%9B%C2%B7%C2%90%7E%C2%9A%C3%81%C2%A9%C2%A8%C3%8B%C2%AD%C2%BC%C2%B6m%C3%83%C3%83%C2%A3%C3%80%C2%A0%C3%89%C2%

EDITO: por cierto no entendí el tema de que no está cifrado, sinó está cifrado porque no pone score="20"  ó   puntuacion="3"  ?

APOKLIPTICO

La verdad que no se me ocurre mas nada, lo unico que te puedo decir, es que podés probar con cheat engine.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.