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


 


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 36
1  Programación / .NET / Re: Leer variables de un proceso en: 12 Abril 2014, 05:35
Las API de Windows Read/Write ProcessMemory, tomando en cuenta la reubicación de BaseAddress, ya que estas direcciones que tienes pueden variar dependiendo de la BaseAddress del proceso al que pertenecen.
2  Programación / .NET / Re: VS 2012 una dudilla ? en: 16 Noviembre 2013, 02:14
Que mientras compiles en una versión que el sistema destino soporte, entonces funcionara sin importar el compilador ._.
3  Programación / .NET / Re: VS 2012 una dudilla ? en: 16 Noviembre 2013, 01:43
No importa el entorno en el cual trabajes, sino que el sistema al cual quieres dirigir la aplicación soporte la versión del .NET Framework en la que estás compilando.

Es decir, si compilas una aplicación en .NET Framework 3.5, en VS 2013, para Windows XP, sólo funcionará si ese Windows XP tiene instalada la versión 3.5 de .NET Framework. Sin embargo Microsoft se encuentra en la lucha por eliminar del mercado a Windows XP y uno de los pasos que ha dado es remover el soporte de .NET Framework para Windows XP desde la versión 4.5 o superior.
4  Programación / .NET / Re: Duda trabajando con Hexadecimal y Binario ? en: 10 Noviembre 2013, 18:37
Para operaciones extremadamente grandes, tienes el tipo Decimal de 96bits de tamaño, si 96bits, el impresionante limite de 79.228.162.514.264.337.593.543.950.336.

Puedes utilizar un simple modulo, recordando que en el sistema decimal (de base 10), cada espacio vale 10 veces más que el anterior, si necesitas los primeros 8 números de izquierda a derecha, podemos obtener el residuo de la división resultante de dividir por 10 a la 8, es decir:

12345678910 Mod 108

12345678910

Código
  1. Dim x As Long = 12345678910
  2. Dim y As Long = x Mod Math.Pow(10, 8)
  3. Console.WriteLine(y)
  4. Console.Read()
  5.  
5  Programación / .NET / Re: Averiguar contraseña propio bajo C# en: 10 Noviembre 2013, 17:54
Imagina que en el sistema de administración de un banco, dicha aplicación administrativa, guarde internamente un usuario/contraseña, no importa donde, si en el código, en una base de datos local, en un archivo, en el registro, donde sea. En no más que unos pocos minutos, ya puedes hackear el sistema. La estructura general correcta para este tipo de cosas, es tener un servicio aislado en un servidor, donde se requiere que el usuario se autentique mediante certificados, o usuario/contraseña, de manera que el cliente sólo hace las solicitudes y el servidor las procesa dependiendo de la autenticidad y autorización del cliente. Es como cuando vas al cajero automático, el software, sólo tiene el código para realizar las solicitudes, pero no tiene la contraseña e información de la tarjeta de todos los clientes del banco, el cajero automático, envía la información a un servidor que procesa la información y toma decisiones por él, el software del cajero automático no tiene en ninguna parte, comprobaciones, ni operaciones de ningún tipo, sólo envía, recibe y muestra la información.

La seguridad de ensamblados en .Net no tiene nada que ver, es como bien dice El Benjo, todo lo que se compila se puede decompilar.

Ofuscar es una opción, hay diferentes niveles de ofuscación, los más básicos renombran toda la estructura por caracteres UNICODE, otros más avanzados, pueden transformarse en verdaderos dolores de cabeza para la ingeniería inversa, aplicando la reestructuración del código por medio de proxies, generando un código extremadamente desordenado (el código está, pero no se puede recuperar el orden), alterando la estructura de .Net para dejarle irreconocible pero funcional, empaquetando y cifrando el código en un ejecutable compilado en otro lenguaje que no sea de .Net. En fin hay mucha tela que cortar de ahí, y es un mundo muy grande del que no vale hablar mucho sino investigar, porque cada quien puede conseguir su forma de ofuscar, que por razones obvias no puede contar del todo :xD
6  Programación / .NET / Re: [C#] [VB.NET] Enums con valores duplicados en: 9 Noviembre 2013, 18:30
Por estrictas normas de globalización que sigue la plataforma .Net, las comparaciones internas de texto se realizan por comparación ordinal y respetando el uso mayúsculas y minúsculas. En VB.NET no se puedan repetir los nombres sin importar el case, es sólo debido a su sintaxis, y no tiene nada que ver con la plataforma como tal, mientras que en C# es posible nombrar 2 variables de la misma manera, si su case es diferente. Es literalmente imposible, que el parser de .Net obtenga un falso positivo, ya que es ambos casos (tanto en VB.NET como en C#), no puedes invocar 2 variables con el mismo nombre; es totalmente válido este enum por ejemplo:

Código
  1.        public enum ejemplo : int
  2.        {
  3.            azul,
  4.            AZUL,
  5.            AZUl
  6.        }

El único problema que tiene, es que como somos humanos, tenemos la necesidad de que todo se vea simétrico, para para la computadora esos son 3 valores que no tienen absolutamente nada que ver uno con el otro.
7  Programación / .NET / Re: Duda trabajando con Hexadecimal y Binario ? en: 9 Noviembre 2013, 18:16
Si colocaras específicamente, cual es el calculo que no puedes resolver, cuales operadores no te funcionan correctamente, y un ejemplo de el problema resuelto correctamente, te podríamos ayudar mejor ;)
8  Programación / .NET / Re: Averiguar contraseña propio bajo C# en: 9 Noviembre 2013, 18:05
No hace falta la magia negra de usar un editor hexadecimal para abrir el ensamblado, buscas un decompiler y abres el ensamblado y ya tienes no sólo la contraseña sino también el código fuente completo. También puedes obtener el MSIL por reflexión y reconstruir el código (que es lo que realmente hace el decompiler), y si te conoces la estructura de los ensamblados de .Net sabrás donde buscar este tipo de información. No es algo para sorprenderse, evidentemente todo la información que compone el código estará en el ensamblado final, ya que se requiere para su uso en tiempo de ejecución, para el caso especial de la plataforma de lenguajes .Net como lo es C# y el muy conocido Java, son lenguajes intermedios o interpretados, que requieren de una maquina virtual que ayude como intermediario entre el código intermedio y la máquina, a diferencia de C/C++ donde el código es de ejecución directa, donde la única traducción que se hace es al lenguaje de la máquina; debido a esto, el código compilado en .Net o en Java, es fácilmente decompilable usando la misma máquina que lo tradujo, es decir si sabes traducir de Ingles a Español también debes saber de Español a Ingles, lo que no sucede en C/C++ por ejemplo, ya que obtenemos código ASM, que hay que analizar con un debugger, y en fin terminas necesitando a gente de la NASA, de la NSA o gente de elhacker.net :xD para devolver eso a lo que podría ser una medio interpretación de como era el código antes de ser compilado.
9  Programación / .NET / Re: Quién programa en .NET? en: 27 Octubre 2013, 09:03
Si estas comenzando a programar olvídate de C# y PHP, comienza por C/C++ luego te enamoras de algún lenguaje como Java, PHP o si es de .net que sea C# ya que VB.NET te da muchas mañas extrañas que no se ven en ningún otro lenguaje :xD
10  Programación / .NET / Re: [SOURCE] mrtzcmp3 Downloader en: 27 Octubre 2013, 08:57
System.Web.HttpUtility

Es una clase de .Net, que contiene métodos que pueden "parsear" los caracteres inválidos en hexadecimal y viceversa. Están disponibles los métodos Encode/Decode Url, respectivamente para cada caso.
11  Programación / .NET / Re: Hacer segura una contraseña en: 7 Octubre 2013, 02:50
Es algún tipo de bot o algo por el estilo?, porque debe ir ligada tu contraseña en el ensamblado?
12  Programación / .NET / Re: Sistema de login muy seguro en: 7 Octubre 2013, 01:06
La arquitectura común para un login, es Cliente <-> Servidor/Servicio <-> Base De Datos, de manera que la comprobación de las credenciales no se realice desde el lado del cliente.

Para generar una comunicación segura se debe establecer un canal cifrado, hay mucha documentación, pero es un tema largo.

En el caso de los identificadores, estos deben generarse desde el lado del cliente, así que se puede realizar un parche para modificar al antojo el identificador, lo más sencillo es tener una base de datos de usuarios, para que estos deben autenticarse ante el servicio y así poder tomar decisiones según sea el caso.
13  Programación / .NET / Re: Hacer segura una contraseña en: 7 Octubre 2013, 00:54
Y esa contraseña la utilizas para?
14  Programación / .NET / Re: Aplicacion utilizando Socket Asincrono en: 27 Agosto 2013, 09:22
Los métodos asíncronos son una forma genérica de llevar la ejecución de un determinado método a un thread donde se ejecutara por separado del thread principal y regresara a él una vez haya terminado a través del método que se le haya indicado al iniciar.

La implementación de un método asíncrono es siempre la misma, para un método 'Ejemplo' que debe ejecutarse asicronicamente existe un Begin/EndEjemplo, el Begin siempre lleva la firma (parámetros adicionales, Callback, Object), los parámetros adicionales son los datos que necesita el método 'Ejemplo' para ser ejecutado, el Callback es la referencia al método que será llamado cuando la ejecución del método 'Ejemplo' termine, Object lo podemos usar como un canal extra para transmitir información que queramos usar luego terminar el procesamiento del método 'Ejemplo', al llamar al método 'BeginEjemplo' este llama asincronicamente al método 'Ejemplo', una vez que termina la ejecución es llamado el método al que se hacia referencia en el Callback, este método debe tener la firma (IAsyncResult) y debe llamar inmediatamente a 'EndEjemplo' pasandole como parámetro el IAsyncResult, IAsyncResult.AsyncState es una variable de tipo Object que contiene el objeto pasado al método 'BeginEjemplo', 'EndEjemplo' tiene como salida el mismo tipo que 'Ejemplo' y la salida del método 'EndEjemplo' será el resultado de haber ejecutado 'Ejemplo', cabe destacar los detalles importantes, todos las excepciones generadas en el método 'Ejemplo' serán redireccionadas y la lanzadas en el método 'EndEjemplo' así que es recomendable ejecutarlo en un bloque Try, el orden BeginEjemplo->Ejemplo->EndEjemplo, no se puede violar, no se pueden hacer 2 llamadas a 'BeginEjemplo' si haber cerrado antes la llamada anterior con el método 'EndEjemplo'.

Esta marcado con CheckForIllegalCrossThreadCalls = False, por que no es el fin exponer los delegados sino el funcionamiento de los sockets únicamente pero lo correcto es usar delegados para la comunicación con la UI.

Aquí hice un ejemplo básico pero completo en VB de la implementación de los Sockets asíncronos en un Chat, con control de errores y UI:

Souce Files
http://www.speedyshare.com/bFhrM/ChatExample.rar
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 36
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines