elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 ... 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 [90] 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 ... 243
891  Programación / Ingeniería Inversa / Re: ¿Por qué es tan difícil hacer ingeniería inversa? en: 16 Junio 2023, 07:09 am
Por ahora no leeré/veré tanto, sólo algunas dudas: ¿Cómo es, en binario o (mejor) hexadecimal el archivo exe más sencillo que puede hacerse? ¿o depende del lenguaje original?

Haré unos con Macromedia Flash 5.

¡Fua! Hice uno, capaz que no el más simple porque le puse frameskip 0.01 (es el mínimo) pero le quité todo frame (por probar), pero según el HxD editor me dió unas X filas de 4096 bytes, X debe ser como 100, no sé dónde ver ni entiendo bien. ¡Es demasiado! Veo que tiene mensajes que no son parte de lo que hice, pero no me deja copiarlos. Dice por ejemplo "¿Desea anular el script?", claro, son mensajes que pueden aparecer creo, eso se genera siempre. Lo que tenía pensado es modificar 1 cosa, volver a publicar y buscar diferencias, pero siendo tanto texto paso. En Internet he visto servicios de detectar diferencias en 2 textos, pero aún así. El exe del AoE podría tener mensajes y cosas que sólo sirvan si se juega en un modo privilegiado que sólo sus programadores sabrán, paso por ahora.

Antes de volver a jugar juegos quiero aprender unas cosas que me son muy complicadas, así que parece que voy a tardar mucho en seguir con esto.
892  Foros Generales / Foro Libre / ¿Cómo resumir una serie o sucesión? en: 15 Junio 2023, 07:37 am
No sé la diferencia entre serie y sucesión, acabo de ver algo y no lo entendí, pero la cosa es, por ejemplo la sucesión de Fibonacci: 1, 1, 2, 3, 5... ¿se puede resumir de algún modo?

Pensé en:
Valor inicial, modificación.
1, +anterior
pero luego me di cuenta de que está mal.

Luego en:
Valores iniciales de X, modificación de X, operación que implica a X.
0, +1, X+Resultado anterior.
Pero nada que ver.

Ahora estoy pensando en:
Valores iniciales de X e Y, operación que implica dichos valores y resulta Z, nuevo valor de X, nuevo valor de Y.
0 y 1, X+Y, Y, Z
Eso mostraría los valores de Y, que son Z.
Pero, incluso si estuviera bien, veo que no parece haber una estructura que pueda abarcar todas las posibilidades, como hace esto (que es otra cosa, pero parecido):
https://developer.mozilla.org/es/docs/Web/javascript/Reference/Statements/for#ejemplos

Acá habla de función generadora:
https://es.wikipedia.org/wiki/Sucesi%C3%B3n_de_Fibonacci
Pero si entendí bien en eso X e Y siempre inician como 0 y 1, lo que busco es una estructura que permita hacer variaciones de sucesiones o series, ejemplo:
3 y 2, X*Y, Y+1, Z
3 y 2: 6, 18, 126...
Quizá esto daría lo mismo: 3 y 2, (X+1)*Y, Y, Z, no sé.
Y también para estas:
Valor anteinicial de X, modificación de X, operación que implica a X.
0, +2, X/3
2/3, 4/3, 6/3, etc
Lo de anteinicial es porque me resulta más cómodo aplicar siempre desde la 2nda parte hacia la derecha, sino en la 1era vez me lo saltearía, pero los resultados pueden ser los mismos, sólo que de esta manera a lo que sería el inicial hay que restarle el incremente.

¿Habrá alguna manera? ¿qué recomiendan? Lo quiero para resumir series o secciones, sí... ya dije... y poder mencionar variaciones.
Ejemplo: Se busca obtener un número tal que al ser dividido por un número de la serie (resumen aquí) resulte un número con 2 decimales.

Gracias.
893  Sistemas Operativos / Windows / Re: pregunta inteligente en: 14 Junio 2023, 02:12 am

Pregunta inteligente ? Tu crees que eso es un título adecuado para un post para que te podamos ayudar, yo esto de inteligente no veo nada.
+1, un tiempo de ban de castigo.
894  Programación / Ingeniería Inversa / Re: ¿Por qué es tan difícil hacer ingeniería inversa? en: 10 Junio 2023, 07:33 am
¿Cómo es posible que se pierda info? Supongo que no te refieres a los comentarios. ¿Me das un ejemplo de cómo se pierde? No sé esos lenguajes pero, ponele que tengo:
V = 0
Si el jugador presiona ->
   V=1
¿Qué se pierde de eso? O dime un ejemplo más ilustrativo.
895  Programación / Programación General / Re: Proyecto de Motor de Juegos en: 10 Junio 2023, 07:03 am
A tanto no llegué.

Flash tiene una instrucción que chequea si 2 objetos se están tocando, pero las áreas siempre son rectangulares, por lo que si el objeto no lo es, creo que puede ocurrir que se considere colisión si esas áreas se tocan, aunque los objetos en sí no se estén tocando. Puedes poner varias áreas rotadas si quieres que sea parecido a un área circular ¿no? Pero para objetos con punta hay que poner varias áreas de distintos tamaños, si se quiere algo muy exacto. Yo hice un juego de una "luz" que se agrandaba al tocar triángulos más pequeños que ella, había que esquivar a los que fueran más grandes. Como los triángulos son copias de un mismo objeto, al agrandarlos el defecto del área se hacía más notable. Y a su vez la "luz" tenía sus problemas, y rota. O al menos así lo recuerdo. Acá lo puedes jugar, pero claro, es MUY sencillo, no estaba intentando hacer gran cosa, todo lo contrario. Es un exe, te pasaría un swf pero no creo que puedas abrirlo.
https://drive.google.com/file/d/1jUaWkPhwIGpIXXfzFbosa5ivWVKYcLE8/view?usp=sharing
Código
  1. // Cambios desde la versión anterior:
  2. // - El recovery del riv sólo aumenta cuando pierde naves.
  3. // - Arranca con Df similar al player.
  4. // - El método para que no siempre agregue naves se basa ahora en rec.
  5. //
  6. // Resultado:
  7. // Demasiado fácil, quizá.
  8. //
  9. // Funciones pequeñas.
  10. function PlayerScale () {
  11. Resum = 100+Player.Df/100;
  12. setProperty (Player, _xscale, Resum);
  13. setProperty (Player, _yscale, Resum);
  14. }
  15. function NaveRemoval () {
  16. NavesDfLeftRecovery = NavesDfLeftRecovery+1;
  17. eval(Res+".swapDepths")("Nave"+N);
  18. removeMovieClip (Res);
  19. setProperty ("Nave"+N, _name, "Nave"+N2);
  20. if (N>1) {
  21. N = N-1;
  22. N2 = N2-1;
  23. }
  24. }
  25. // Inicio típico.
  26. Player.Df = 10000;
  27. PlayerScale();
  28. N = 0;
  29. NavesDfLeft = 9999;
  30. NavesDfLeftRecovery = 1;
  31. // Gran función.
  32. function F2 () {
  33. // Increase enemy caster mana.
  34. NavesDfLeft = NavesDfLeft+NavesDfLeftRecovery;
  35. if (random(NavesDfLeftRecovery/25) == 0) {
  36. // Aparece nave.
  37. N = N+1;
  38. Res = "Nave"+N;
  39. attachMovie("Nave", Res, N);
  40. NaveDf = random(NavesDfLeft)+1;
  41. NavesDfLeft = NavesDfLeft-NaveDf;
  42. set (Res+".Df", NaveDf);
  43. setProperty (Res, _x, random(799)+1);
  44. Resum = 100+NaveDf/100;
  45. setProperty (Res, _xscale, Resum);
  46. setProperty (Res, _yscale, Resum);
  47. }
  48. // Movimiento del jugador.
  49. Player._rotation = Player._rotation+10;
  50. Player.Sp = 1+9/(Player.Df/100);
  51. if (Key.isDown(Key.LEFT)) {
  52. if (Key.isDown(Key.UP)) {
  53. V = Math.sqrt(Player.Sp*Player.Sp/2);
  54. Player._x = Player._x-V;
  55. Player._y = Player._y-V;
  56. } else if (Key.isDown(Key.DOWN)) {
  57. V = Math.sqrt(Player.Sp*Player.Sp/2);
  58. Player._x = Player._x-V;
  59. Player._y = Player._y+V;
  60. } else {
  61. Player._x = Player._x-Player.Sp;
  62. }
  63. } else if (Key.isDown(Key.RIGHT)) {
  64. if (Key.isDown(Key.UP)) {
  65. V = Math.sqrt(Player.Sp*Player.Sp/2);
  66. Player._x = Player._x+V;
  67. Player._y = Player._y-V;
  68. } else if (Key.isDown(Key.DOWN)) {
  69. V = Math.sqrt(Player.Sp*Player.Sp/2);
  70. Player._x = Player._x+V;
  71. Player._y = Player._y+V;
  72. } else {
  73. Player._x = Player._x+Player.Sp;
  74. }
  75. } else if (Key.isDown(Key.UP)) {
  76. Player._y = Player._y-Player.Sp;
  77. } else if (Key.isDown(Key.DOWN)) {
  78. Player._y = Player._y+Player.Sp;
  79. }
  80. // Movimiento de las naves.
  81. N2 = 1;
  82. do {
  83. Res = "Nave"+N2;
  84. NaveDf = eval(Res+".Df");
  85. setProperty (Res, _y, getProperty(Res, _y)+1+9/(eval(Res+".Df")/100));
  86. if (Player.hitTest(eval(Res)) == true) {
  87. // Contacto.
  88. if (Player.Df>NaveDf) {
  89. Player.Df = Player.Df+NaveDf/10;
  90. PlayerScale();
  91. NaveRemoval();
  92. } else {
  93. stop ();
  94. }
  95. } else if (getProperty(Res, _y)>700) {
  96. // Fuera de la pantalla.
  97. NaveRemoval();
  98. }
  99. N2 = N2+1;
  100. } while (N>=N2);
  101. }
  102.  
Es tan simple, o eso parece, pero lo hice de un modo muy complicado, jajaja. ¡caster dice! ¡mana! Jajaja. Es que estaba practicando para hacer un juego en que dos magos convocaran cosas. Mucho Diablo 2 y quizá Fate Stay Night.

El suelo no debería ser mucho problema a menos que pongas cosas triangulares o así extrañas, suele ser plano.

En el juego que hice hay enemigos, o se pueden considerar disparos, da igual.

Toma demasiado tiempo grabar videos y quitar cosas, o copiar imagenes, así que te copio el tutorial sin las imagenes:
Citar
Detección de colisiones
Puede utilizar el método hitTest del objeto MovieClip para detectar colisiones en una película. El método hitTest comprueba si el objeto ha colisionado con un clip de película y devuelve un valor Booleano (true o false). Puede utilizar los parámetros del método hitTest para especificar las coordenadasx e y de un área de impacto en el Escenario, o utilizar la ruta de destino de otro clip de película como área de impacto.

Cada clip de película de una película es una instancia del objeto MovieClip. Esto le permite llamar a los métodos del objeto desde cualquier instancia, como se muestra a continuación:

myMovieClip.hitTest(target);
Puede utilizar el método hitTest para comprobar la colisión en un clip de película y un solo punto


Mueva el cursor sobre la forma de la película para comprobar la colisión. Los resultados de hitTest se devuelven en el campo de texto.



También puede utilizar el método hitTest para comprobar la colisión entre dos clips de película.


Para comprobar la colisión, arrastre uno de los clips de película hasta que haga contacto con el otro. Los resultados de hitTest se devuelven al campo de texto.



Para realizar una detección de colisión entre un clip de película y un punto del Escenario:

1   Seleccione un clip de película en el Escenario.
2   Seleccione Ventana> Acciones para abrir el panel Acciones de objeto.
3   Haga doble clic sobre la acción trace en la categoría Acciones de la caja de herramientas.
4   Active la casilla de verificación Expresión e introduzca lo siguiente en el cuadro del mismo nombre:
trace (this.hitTest(_root._xmouse, _root._ymouse, true);
Este ejemplo utiliza las propiedades_xmouse e _ymouse como las coordenadasx e y para el área de impacto y envía los resultados a la ventana Salida en el modo de prueba de película. También puede establecer un campo de texto en el Escenario para visualizar los resultados o utilizar los resultados en una sentencia if.
5   Seleccione Control > Probar película y mueva el ratón sobre el clip de película para comprobar la colisión.
   
Para realizar la detección de colisión en dos clips de película:

1   Arrastre dos clips de película al Escenario y asígneles los nombres de instancia mcHitArea y mcDrag.
2   Cree un campo de texto en el Escenario e introduzca status en el cuadro Variable opciones de texto.
3   Seleccione mcHitArea y elija Ventana > Acciones.
4   Haga doble clic sobre evaluate en la caja de herramientas.
5   Introduzca el siguiente código en el cuadro Expresiones seleccionando elementos de la caja de herramientas:
_root.status=this.hitTest(_root.mcDrag);
6   Seleccione la acción onClipEvent en la ventana Script y elija enterFrame como el evento.
7   Seleccione mcDrag y elija Ventana > Acciones.
8   Haga doble clic sobre startDrag en la caja de herramientas.
9   Active la casilla de verificación Bloquear ratón en el centro.
10   Seleccione la acción onClipEvent en la ventana Script y elija el evento Mouse down.
11   Haga doble clic sobre stoptDrag en la caja de herramientas.
12   Seleccione la acción onClipEvent en la ventana Script y elija el evento Mouse up.
13   Seleccione Control > Probar película y arrastre el clip de película para comprobar la detección de colisión.
   
Si desea obtener más información sobre el método hitTest , consulte el Diccionario de ActionScript.

Lo que me parece complicado, entre otras cosas, son las plataformas. El suelo es, lo toca y deja de caer, simple. Pero las plataformas, si el personaje las toca por encima debe quedar encima y sino rebotar hacia abajo o sobrepasarlas si son de ese estilo. Entonces no sé, como dije no llegué a tanto.
896  Programación / Ingeniería Inversa / ¿Por qué es tan difícil hacer ingeniería inversa? en: 9 Junio 2023, 04:38 am
Según recuerdo en el Age of Empires viejo cuando haces un escenario con más de 1 IA, sólo funciona la personalidad de 1 (por ejemplo si indicas que todas ataquen constantemente, sólo lo hace 1), o quizá es cuando se usa el cheat Gaia, pero quiero corregir el error si es posible. Para eso necesito hacer comprensible el código, supongo, de vaya a saber cual archivo, pero ¿por qué es tan difícil? ¿es tan variable lo que significan los 0s y 1s o el código hexadecimal?

Gracias.

No sé si es la sección indicada para preguntar, o las palabras indicadas, perdón si erré.
897  Programación / Programación General / ¿Alguien me explica parte del artículo Búsqueda de fuerza bruta de Wikipedia? en: 9 Junio 2023, 04:14 am
La parte que dice Algoritmo Básico.
https://es.wikipedia.org/wiki/B%C3%BAsqueda_de_fuerza_bruta

Quizá dando un ejemplo, porque eso parece una estructura.

Gracias.
898  Foros Generales / Foro Libre / Re: instagram, nuevo canal de estafa en: 7 Junio 2023, 20:06 pm
Según recuerdo habías tenido problemas con fraudes, y según acabo de ver casi todos tus mensajes son sobre que hay fraudes o estafas, parece que tuvieras un imán para esas cosas.

Bueno, gracias por avisar, pero yo no doy fotos mías ni tengo tanto dinero xP Y si lo tuviera no lo invertiría en gente que me promete cosas sin que yo la conozca. Cuando la limosna es grande hasta el ciego desconfía ¿no? ¿por qué una mujer más o menos bonita iba a andar pidiéndome fotos, se interesó en mí por lo que escribo? Ay sí, cómo no. Pero bueno, probablemente soy más recogedor de pajas que tú, te entiendo, no escupo para arriba, sé que puedo quedar más embarrado que... lo que sea.

Suerte.
899  Foros Generales / Dudas Generales / Re: Cómo quitar la huella dactilar de caixabanck Pay en el pago de tarjeta de credito favorita? en: 6 Junio 2023, 02:05 am
Debido a mi trabajo una máquina no captaba mis huellas y una vez al poner un dedo interpretó que era de otra persona registrada :laugh: Tuvieron que configurarla para que yo ingresara números en vez de mi huella.

Pero que quite el password también, no sea cosa que alguien le lea la mente o lo hipnotice y le obligue a decirlo.

Que use reconocimiento facial, de voz, de baile y que le pida una pregunta informática.
900  Seguridad Informática / Desafíos - Wargames / Re: ayda para encontrar el algoritmo en: 4 Junio 2023, 12:20 pm
¿No puedes elegir qué valores ingresar?

En un emulador de GBA, puedes poner una serie de códigos que cambian los valores de las variables, más o menos como lo estás haciendo (tal vez), pero se pueden desactivar unos y repetir y entonces vas viendo cual hace qué, además es posible poner los valores que uno quiera.

¿Seguro que cada parte es relevante?

Podría ser algo como (floor((input^2)/X)))/100.
O mejor (floor((input/X)^2)))/100.

Podrías usar Eureqa o Eureka, si aún existe y gratis, pero no sé si sirve con código hex, lo dudo. Es un programa que, precisamente, sirve para averiguar relaciones matemáticas entre 2 listas de valores.

También podrías preguntar aquí:
https://foro.rinconmatematico.com/index.php?board=21.0
Páginas: 1 ... 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 [90] 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 ... 243
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines