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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 23
21  Programación / .NET (C#, VB.NET, ASP) / C# Parámetro Clase Genérica en: 27 Octubre 2016, 14:48 pm
Hola a todos, alguno tiene idea como hacer una clase que por parámetro reciba cualquier tipo de clase y llame a sus funciones?

Ej: Tengo una clase (referencia de dll) llamada UD01 hasta UD100, ambas clases comparten mismas funciones pero ejecutan sentencias internas de SQL hacia tu tabla correspondiente.

Hay alguna manera de hacer ésto?

Código
  1. public class GenericClass
  2. {
  3.    cualquierclase ClaseGenerica;
  4.  
  5.    public GenericClass(clase Generica)
  6.    {
  7.        ClaseGenerica = Generica;
  8.    }
  9.  
  10.    public void Test()
  11.    {
  12.        ClaseGenerica.Connect();
  13.        //code
  14.        ClaseGenerica.Disconnect();
  15.    }
  16. }
  17.  
  18. GenericClass asd = new GenericClass(UD10);
  19. asd.Test();
  20.  
22  Programación / .NET (C#, VB.NET, ASP) / Re: C# Button.Click Address en: 21 Octubre 2016, 17:04 pm
C# trabaja sobre la maquinavirtual de :NET. No es un lenguaje compilado. No está pensado para acceder a la memoria. La memoria no la manejas tú, sino que la maneja la máquina virtual.
Que yo sepa, puedes ver la dirección de memoria de variables (En un entorno unsafe).
Unafunción, en .NET, según tengo entendido, puede o no estar en la memoria ensamblado.

Sea lo que sea lo que buscas, no olvides que C# no es compilado.

Lo pre-compila 1 vez (la primera ejecución de esa función/evento), luego no más.
23  Programación / .NET (C#, VB.NET, ASP) / C# Button.Click Address en: 21 Octubre 2016, 14:49 pm
Buen día a todos, estuve buscando información al respecto en internet (google), no sé si me volví tarado buscando o si son todos tarados, el punto es que quiero obtener el address del button click para poder hookearme o hacer un simple WriteProcessMemory, alguna idea? a C# le molesta todo....

Saludos!
24  Programación / Programación C/C++ / Re: [AYUDA] Interface? en: 24 Noviembre 2015, 22:26 pm
Un ejemplo:

Código
  1. class IClase{
  2. public:
  3.    virtual void Funcion1() = 0;
  4. }
  5.  
  6. class A : public IClase{
  7. public:
  8.    virtual void Funcion1(){
  9.        //...
  10.    }
  11. }

Sí, éso es todo muy lindo, pero no puedo hacer

Código
  1. Class Test
  2. {
  3.    public:
  4.        IClase MyIClase; //Error 1 error C2259: 'IClase' : cannot instantiate abstract class,
  5.  
  6. }
  7.  
25  Programación / Programación General / Re: Cual es el valor maximo de una variable. en: 24 Noviembre 2015, 16:32 pm
Hola, me gustaria saber cual es el valor de una variable, por ejemplo, el tipo de datos int en mi ordenador equivale a  4 bytes.

Pero si en el int yo guardo por ejemplo este numero:

int i = 12345;

Estoy guardando 5 numeros, y cada numero equivale a un byte, entonces por que los guarda?, si si, ya se quizas estoy entendiendo mal, y estoy seguro de que lo estoy entendiendo mal porque de haberlo entendido bien no surgiria esta duda, me gustaria que me aclaren eso.

Gracias, de verdad me gustaria mucho saber el por que de esto.

1BYTE = 0xFF
2BYTES = 0xFFFF
4BYTES = 0xFFFFFFFF

string => 4BYTES => apunta a una dirección de memoria hasta llegar al '\0' ó NULL.

Si tenés 123456 y querés saber cuantos bytes ocupa hay que pasarlo a HEX, 1E240, ahí tendría 3BYTES, pero no se agrupan de a 3, entonces ocupa 4BYTES.

Luego de números positivos y negativos, es la misma lógica, lo que hace el compilador es tomar 4BYTES, lo divide en 2 y la primera parte es positiva y la otra negativa o alrevez.

Ej:

0xFFFFFFFF = 4294967295 número positivo

Si es declarado como una variable que soporta positivos y negativos, se divide en 2 y esa lógica la hace internamente (2147483647)
26  Programación / Programación General / Re: Programación para cajeros ATM en: 24 Noviembre 2015, 16:20 pm
Hola equipo!

últimamente he estado buscando por la red información para los estudios necesarios para la programación de cajeros automatizados, sin embargo encuentro muy poca información relativa al asunto. Mi pregunta es si existe algún tipo de estudios en concreto que realizar (véase lenguaje de programación, supongo que Java muchos) para poder optar a la programación de los mismos  :huh:

Gracias de antemano

En realidad todos los cajeros usan una norma llamada XFS, la página oficial te dá el SDK creo.
27  Programación / Ingeniería Inversa / Re: Inyeccion de DLL para obtener acceder a parametros de una funcion en: 24 Noviembre 2015, 16:19 pm
Ya hace mucho que vengo jodiendo con querer hacer un server emulator de un juego online (no existe ningun emulador). Cada vez que empiezo lo dejo al tiempo, aunque siempre avanzo un poquitito mas. Hoy se repite la historia...

Cuando arranque (a comienzo de año) me habia dado cuenta que los paquetes estan cifrados, y con el OllyDBG pude encontrar el algoritmo de encriptacion (muy simple).

Cuando me conecto al servidor, el mismo envia una clave de 16 bytes que todavia no se como se genera pero no importa.
Cada vez que el cliente tiene que enviar un mensaje, realizar una operacion XOR entre una DWORD del mensaje y una DWORD de la clave, la DWORD de la clave se elige mediante un algoritmo tonto que ahora no lo recuerdo.
Luego de cifrar el mensaje se suma a cada DWORD de la clave la longitud del mensaje cifrado. (En realidad no es la totalidad de la longitud, si el mensaje tiene una longitud de 0x38, entonces suma 0x30, no se como llamarlo)

Y se repite todo por cada mensaje enviado.
Entonces lo siguiente que debia hacer era desencriptarlos e interpretarlos.

En ese momento se me habia ocurrido (debido a mis pocas capacidades pensativas) hacer un programa en el cual al ingresar la clave, el numero del mensaje (ej, mensaje 5) y el mensaje, este me devuelva el mismo descifrado.
Me dispuse a hacerlo pero me frustro perder tanto tiempo teniendo que convertir datos para poder tratarlos, para poder ponerlos en los componentes de la GUI, etc, asi que deje todo a la *****.

Hoy retomando me di cuenta que lo mejor que podria hacer es interceptar la funcion que lo cifra (o descifra) y guardar el mensaje en un log antes de encriptarlo, asi puedo tomar muchisimas muestras y analizarlas facilmente.

Estuve leyendo sobre la inyeccion de DLLs pero hay cosas que no me quedan muy en claro.
La funcion a la que quiero acceder (basicamente para extenderla) no son del sistema, son del juego sobre el cual estoy trabajando.
Leyendo un par de cosas en google se me ocurrio que lo ideal seria obtener la direccion de memoria donde esta la funcion (creo que es fija) y luego sustituir alguna instruccion con un jump a la DLL que yo inserto.
Ya dentro de mi funcion tendria que acceder a los parametros (un buffer y la longitud del buffer) de la funcion la cual intercepte y es eso lo que no se como tengo que hacer.
Segun tengo entendido los parametros, en assembler, se pasan por el Stack y luego son recuperados por la funcion que se ejecuta, entonces yo deberia saltar a mi funcion en la primera instruccion, sacar todos los parametros, procesarlos y despues volver a volcarlos en el Stack, eso es correcto?

Y algo relacionado pero a parte, mi idea es ir capturando ese buffer cada vez que se va a mandar un mensaje e ir guardandolo en un log (xml).
Como tendria que hacerlo? Porque si lo hago en mi funcion cada vez que llegue tendria que abrir el log, escribir el buffer y algunos datos mas, y despues cerrar el archivo, creo que no seria lo optimo teniendo en cuenta que haria esto todo el tiempo que se envian paquetes.

Saludos.

Si sabés donde empieza la función, fiajte en el ret, ahí te dice la cantidad de bytes de parámetros, sinó luego del ret vá a ir a parar debajo de un call, arriba están los pushes de la función.
28  Seguridad Informática / Hacking / Re: Inyección de DLL con permisos administrador en: 24 Noviembre 2015, 16:05 pm
Buenas, tengo una duda y es la siguiente:

Si creo una dll que muestra un mensaje, y la inyecto a un proceso ¿necesito solo el pid del proceso no?, en plan creo una dll que dice "hola mundo", la inyecto en svchost.exe ¿y listo?, ¿o tengo que hacer ingeniería inversa de svchost.exe?.

Si svchost.exe corre como system, el programa que ejecuto en mi dll correría como system?, puedo conseguir que lo haga a través del token de svchost.exe? ya que se supone lo ejecuta ese proceso si la inyecto a el.

La idea es saber si con este proceso podré tener permisos de administrador (o system que son como los de administrador pero con más opciones aún  si no me equivoco) siempre para mi dll, pues mi dll necesita permisos de administrador siempre.

¿Con inyección de dll puedo conseguir permisos de administrador sin que salga el uac para siempre?, es decir windows se reiniciaría y el programa de mi dll correría en system sin mensajes ni nada, ¿no?.

Un saludo.

Lo que hacés cuando inyectás es escribir memoria (openprocess, necesitás el handle del proceso) en el proceso target y luego con CreateRemoteThread "ejecutás" desde esa posición de memoria que escribiste, para poder inyectar una dll a un proceso system hay que hacer algunas cosas bastante complicadas, la dll no necesita permisos, el inyector necesita esos permisos, una vez que estás adentro podés tomar el control de todo el proceso con el nivel que quieras.
29  Programación / .NET (C#, VB.NET, ASP) / Re: clausula Handles | programacion vb en: 24 Noviembre 2015, 14:03 pm
buenas gente , me presento en el foro para publicar una nueva duda acerca de un sistema que estoy realizando...

Tengo un sistema sin base de datos que corre perfectamente , el problema surge cuando le conecto la base de datos hecha en Access , al enlazar dicha base de datos y poner los campos, cuando compilo me genera estos errores la verdad no se como solucionarlos , me podrían apoyar  por favor ?

Código:
 Private Sub AlumnosBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles MyBaseBindingNavigatorSaveItem.Click, MyBaseBindingNavigatorSaveItem.Click, MyBaseBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.AlumnosBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.Control_escolarDataSet)

    End Sub


Error BC30506 La cláusula Handles requiere una variable WithEvents definida en el tipo contenedor o en uno de sus tipos base.

en el form.Designer.vb

Código
  1. Friend WithEvents Control_escolarDataSet As "Proyecto".Control_escolarDataSet 'es el xsd
  2. Friend WithEvents AlumnosBindingSource As System.Windows.Forms.BindingSource
  3. Friend WithEvents TableAdapterManager As "Proyecto"."proyecto"DataSetTableAdapters.TableAdapterManager '"proyecto"DataSetTableAdapters es un NameSpace declarado en el xsd
  4.  

Donde "proyecto" es tu proyecto.
30  Programación / Programación C/C++ / [AYUDA] Interface? en: 24 Noviembre 2015, 01:01 am
Buenas a todos, estoy necesitando hacer algo pero no sé como lo puedo llegar a lograr, la cuestión es la siguiente, tengo un código en Java y quiero pasarlo a Visual C++ (2013):

Yo en otro lenguaje tengo lo que es una Interface (java)

Código
  1. public Interface IClase
  2. {
  3.    public void Funcion1();
  4.    public void Funcion2();
  5. }
  6.  
  7. public class A implements IClase
  8. {
  9.    @Override
  10.    public void Funcion1()
  11.    {
  12.        //CODIGO
  13.    }
  14.  
  15.    @Override
  16.    public void Funcion2()
  17.    {
  18.        //CODIGO
  19.    }
  20. }
  21.  
  22. public class B implements IClase
  23. {
  24.    @Override
  25.    public void Funcion1()
  26.    {
  27.        //CODIGO
  28.    }
  29.  
  30.    @Override
  31.    public void Funcion2()
  32.    {
  33.        //CODIGO
  34.    }
  35. }
  36.  
  37. public class C implements IClase
  38. {
  39.    @Override
  40.    public void Funcion1()
  41.    {
  42.        //CODIGO
  43.    }
  44.  
  45.    @Override
  46.    public void Funcion2()
  47.    {
  48.        //CODIGO
  49.    }
  50. }
  51.  
  52. public class Tester
  53. {
  54.    private IIClase prueba;
  55.  
  56.    public void setPrueba(IClase param1)
  57.    {
  58.        this.prueba = param1;
  59.    }
  60. }
  61.  
  62. void setUp()
  63. {
  64.    Test Test1 = new Test();
  65.    A A1 = new A();
  66.    B B1 = new B();
  67.    C C1 = new C();
  68.  
  69.    Test1.setPrueba(A1);
  70.    Test1.setPrueba(B1);
  71.    Test1.setPrueba(C1);
  72. }
  73.  

Qué significa ésto? Significa que dentro de la clase Test tengo una variable como una interface y que tengo 3 clases "diferentes" que comparte una lógica y quiero poder "meter" dentro de esa variable, cualquiera de esas 3 clases, pero C++, alguna idea?

Mientras sigo buscando alguna solución.

No me importa si es programación ninja o villera, quiero poder hacerlo.

Gracias!
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 23
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines