Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: gonzalitosk8 en 8 Marzo 2016, 21:03 pm



Título: alguna idea sobre esta modificación con reflexil?
Publicado por: gonzalitosk8 en 8 Marzo 2016, 21:03 pm
Hola gente del foro, buenas tardes! estoy haciendo algunas modificaciones.
Tengo un terreno que como máximo se amplia hasta 1600 metros.
En una dll, encontré algo que podría ser su cuenta que da como máximo ese resultado.

esta es su solucion:

 
Código:
 public void ComputeTileCountValues()
        {
            if (this.EnableComputeTileCountValues)
            {
                decimal num = this.TerrainSizeXInput.Value;
                decimal num2 = this.TerrainSizeYInput.Value;
                decimal num3 = this.TileSizeXInput.Value;
                decimal num4 = this.TileSizeYInput.Value;
                if (((num == 0M) || (num2 == 0M)) || ((num3 == 0M) || (num4 == 0M)))
                {
                    this.TileCountXInput.Value = 0M;
                    this.TileCountYInput.Value = 0M;
                }
                else
                {
                    this.TileCountXInput.Value = (int) Math.Ceiling((decimal) (num / num3));
                    this.TileCountYInput.Value = (int) Math.Ceiling((decimal) (num2 / num4));
                }
                this.OnTerrainValueChanged(new EventArgs());
            }
        }

creo que la parte ( Math.Ceiling((decimal) (num / num3)); ) podria ser el resultado a 1600 como maximo.

si quiero seguir aumentando, este se queda en 1600, y si lo bajo a -0 vuelve 0.

en reflexil, quiero modificar ese valor.

lo que es :  (num / num3) &  (num2 / num4), quedara un resultado para seguir aumentando a mas de 1600.

se me había ocurrido crear un "num5" y que este valor tenga 1. y modificar la cuenta para que quede asi:  (num / num5) &  (num2 / num5).
pero no puedo..


¿alguna idea?
¿adjunto dll?

saludos!


Título: Re: alguna idea sobre esta modificación con reflexil?
Publicado por: MCKSys Argentina en 8 Marzo 2016, 21:16 pm
Hola!

No entiendo lo que quieres lograr...

Quizás podrías explicarte de otra forma acerca de lo que estás intentando hacer?

Saludos!


Título: Re: alguna idea sobre esta modificación con reflexil?
Publicado por: gonzalitosk8 en 8 Marzo 2016, 21:32 pm
Hola MCKSys Argentina!

la idea es modificar una cuenta para que sobrepase el maximo en metros actual (1600)

tengo un exe de edicion 3d para crear terrenos (montañas arboles etc)
ya modifique su valor máximo de creación de terreno! por o que ahora puedo convertirlo mas grande.

el problema, es que tiene una tabla que mide el terreno para exportar a otro formato 3d.
el valor maximo es 1.6 km (1600 metros).
si escribo un valor (2500) el valor regresa a 1600.
osea que no puedo sobrepasar ese limite! obersve una dll, llegue a su estructura y vi el calculo:

this.TileCountXInput.Value = (int) Math.Ceiling((decimal) (num / num3));
this.TileCountYInput.Value = (int) Math.Ceiling((decimal) (num2 / num4));

por lo que "supuse" que podría ser la ecuación que da 1600 como máximo.

en relfexil, quisiera editar algunos parametros (click derecho -> editar) y modificar el calculo, para poder sobrepasar esos 1600 que me da como máximo. (suponiendo que ese calculo da 1600)

posteriormente, modifique su máximo de terreno, este era su calculo:
float num0 = ((float) maxSizeX) / 1000f;
float num2 = ((float) maxSizeY) / 1000f;

este daba como maximo 1600 metros

lo edite y deje:

float num0 = ((float) maxSizeX) / 10f;
float num2 = ((float) maxSizeY) / 10f;

ahora da 160 km  ::)

bueno sin irme tan lejos, la idea seria modificar el valor de la cuenta (num / num3) y (num2 / num4)


Título: Re: alguna idea sobre esta modificación con reflexil?
Publicado por: MCKSys Argentina en 8 Marzo 2016, 21:52 pm
Hola!

Y cuales con lo valores que manejas/ingresas tu? De donde salen los otros?
Quizas el valor 1600 este en otra parte, como inicializacion o constante: busca el valor y quizas sea mas sencillo el cambio.

Saludos!

PD: Si pones un link para bajar la DLL (si es posible), se la puede ver y asi, ayudarte mejor.


Título: Re: alguna idea sobre esta modificación con reflexil?
Publicado por: gonzalitosk8 en 8 Marzo 2016, 22:10 pm
Gracias por responder!

te adjunto un rar con las dll que utiliza el exe:

http://www.mediafire.com/download/929z75mb9y7zufe/dll.rar

para llegar a la direccion de la ecuacion es:

dll/palDotNet.PalDialog/TerrainSettingsPannel - Compute tile dialog.


Título: Re: alguna idea sobre esta modificación con reflexil?
Publicado por: MCKSys Argentina en 8 Marzo 2016, 23:41 pm
Fíjate el constructor (.ctor) de esa clase:

Código
  1. ...
  2. Dim numArray8 As Integer() = New Integer(4  - 1) {}
  3. numArray8(0) = &H400
  4. Me.TerrainSizeXInput.Value = New Decimal(numArray8)
  5. ...
  6.  

Prueba a agrandar ese &H400 (1024 en hexa).

Eso lo saco de acá:

Código
  1. Private Sub HandleForceSingleTile()
  2.    If Me.ForceSingleTile Then
  3.        Dim enableComputeTileCountValues As Boolean = Me.EnableComputeTileCountValues
  4.        Me.SetEnableComputeTileCountValues(False)
  5.        Me.TileSizeXInput.Value = Math.Max(Me.TerrainSizeXInput.Value, Me.TileSizeXInput.Minimum)
  6.        Me.TileSizeYInput.Value = Math.Max(Me.TerrainSizeYInput.Value, Me.TileSizeYInput.Minimum)
  7.        Me.SetEnableComputeTileCountValues(enableComputeTileCountValues)
  8.    End If
  9. End Sub
  10.  

Que sale desde acá:

Código
  1. Private Sub TerrainSize_ValueChanged(ByVal sender As Object, ByVal e As EventArgs)
  2.    Me.HandleForceSingleTile
  3.    Me.ComputeTileCountValues
  4. End Sub
  5.  

Que es el handler cuando cambias el texto.

Saludos!


Título: Re: alguna idea sobre esta modificación con reflexil?
Publicado por: gonzalitosk8 en 9 Marzo 2016, 03:59 am
ya mismo empiezo a darle mano al codigo!

muchisimas gracias MCKSys Argentina, luego te cuento el resultado!



definitivamente, de ese lado sale!

sigo aumentando los valores y retornan a 1600 :/

MOD EDIT: No hagas doble post. Si tu post es el último, edítalo.