Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - kub0x

#591
CitarTe explico como es lo que quiero hacer:
Tengo este Pointer: "Proceso"+001913B8 - Offset0: 104 - Offset1: bdc - Offset2: 60
Y quiero mostrarlo en una label del proyecto.
Como podria lograrlo? Estuve investigando lo de clase Marshal pero no lo entendi muy bien.

Quieres representar los datos de un puntero a una dirección que reside en otro proceso. Cuando veas un puntero de la forma "Proceso" + Dirección (0x...) lo que tienes realmente es la dirección base del proceso (base address) + la dirección. Por ejemplo: "Firefox" + 0x456A será la base address de firefox digamos 0x400000 quedaría 0x400000 + 0x456A.

En .NET es sencillo coger la base address de un proceso cualquiera (mientras tengas los mismos permisos que el proceso al que se abrirá el HANDLE):

Código (csharp) [Seleccionar]

[DllImport("kernel32.dll", SetLastError = true)]
static extern bool ReadProcessMemory(
IntPtr hProcess,
IntPtr lpBaseAddress,
[Out] byte[] lpBuffer,
int dwSize,
out IntPtr lpNumberOfBytesRead);

public static void Main (string[] args)
{
Process proc = Process.GetProcessesByName ("Firefox")[0];
IntPtr ptr = 0xDEADBEEF + proc.MainModule.BaseAddress;
IntPtr prochandle = proc.Handle;
byte[] bytes = new byte[40];
                       IntPtr readbytes = new IntPtr();
ReadProcessMemory (prochandle, ptr, bytes, bytes.Length, out readbytes);
                       string data = Encoding.ASCII.GetString(bytes);
               }


En data tendrías el valor del puntero leído. Cambia 0xDEADBEEF y Firefox por la dirección del puntero y por el nombre del proceso. Cambia el 40 de byte[] bytes=new byte[40] por la longitud que quieres leer del puntero. Si todo va bien debería salirte.

Saludos!
#592
Buenas.

Entiendo de lo que hablas, y no tendrías ningún problema con la clase Marshal para extraer el valor. Estaría bien que nos dejaras el fragmento de código para acomodarlo y dejarlo como pides.

Saludos.
#593
Foro Libre / Re: Agresion a Rajoy.
17 Diciembre 2015, 17:13 PM
El problema aquí es que vivimos en un país en el que te venden que puedes quejarte de sobre las irregularidades políticas, financieras, económicas, educacionales, relativas a la justicia, todo ello para mejorarlo. Después de pasar por las urnas cada 4 años nos repiten lo que ya he citado y que vivimos en democracia, donde cada ciudadano tiene derechos. Estos derechos se los pasan por la piedra.

Y cabe destacar que no me defino de ningún color, bandera, partido. No soy anti-política ni radical, simplemente la política para mí es satisfacer las necesidades de un pueblo sin lucrarse, sin favorecer a los de fuera/empresas/familiares. Tanto la izquierda como la derecha apestan, y lo mejor es que gran parte os dejaís comer el tarro, que sí, que algunos no sois de ningún partido, pero seguro que teneís una idea útopica de gobierno. Cuando esta idea aparece y se intenta llevar a cabo es cuando aparecen radicalismos.

Así que ganad vuestro dinerito, cayaos la boca que todo seguirá igual. Si algun día os habeís cansad de VERDAD del panorama me llamaís y organizamos las cosas como es debido. Lo de Rajoy es poco amigos, no es más que un títere y algo que el pueblo necesitaba ver, ver como una persona corriente y de cerebro vacío tiene arrautzis (huevs en vasco) de plantar cara.

Cuando quiten el cifrado, cuando todo se rija desde un mismo órgano, que ahora te lo venden como política central para ahorrar dinero a los estados y a la UE, cuando todo esté controlado vereís que la política simplemente nunca ha existido, que todo es lo mismo.

Saludos!
#594
Cita de: Meta en 15 Diciembre 2015, 02:40 AM
1) ¿Si haces tu propio navegador Web con Visual Studio, te detectan igualmente?

Buena pregunta amigo, ahora lo que hacemos es instalar extensiones al navegador (ej: Firefox) para indicarle que bloquee ciertos componentes, es decir, desnudamos el navegador. En el caso de hacer un nuevo navegador, si eres consciente de como las empresas nos rastrean, podrías evadirlas y tener control total sobre lo que se ejecuta, envía y recibe, pudiendo bloquear todo tipo de "amenazas". Quizá no en un 100% pero sería bastante anónimo. Los navegadores por defecto se tragan toda la ***** que les eches. Recuerdo a aquellas personas que navegan por TOR que da igual que cambien su localización geográfica y su IP, con los componentes HTML5, cookies, javascript, flash etc se os puede rastear igualmente y trazar un perfil de navegación y hábito, pudiendo dar con vuestra IP y situación geográfica real.

Sobre el comando en Linux para rastrear la raspberry, como bien dices, a distancia. Si es a distancia tu raspberry tiene que aceptar conexiones en algún puerto. En el caso de apache podrían detectar la versión de tu sistema operativo aunque puede ser ocultado, creo. No debería de ser posible mientras el sistema operativo de la raspberry y los componentes de terceros sean seguros.

P.D= La interfaz gráfica de control de la lavadora se ve estupenda, mola ver hasta donde llega el software con el hardware/electrónica.

Saludos.
#595
PHP / Re: PHP IP local del cliente
17 Diciembre 2015, 15:59 PM
Buenas Kaxperday,

supongo que quieres montar un servidor tipo STUN,TURN o ICE para recibir las IPs de los integrantes de la red e interconectarlos para que de esta forma intercambien información independientemente de la configuración de su NAT.

Para ello recomiendo PHP Sockets, HTTP tiene un fin y personalmente no cumple las necesidades del propósito. Con UPnP, XML y UDP puedes determinar la IP privada/pública si el router lo tiene activo, además de poder abrir puerto. También tienes NAT-PMP y PCP para el mismo fin. UPnP se utiliza para hacer queries a dispositivos y administrarlos remotamente.

Volviendo al tema de STUN, bueno, en términos p2p se lo conoce como Rendezvous, pues une varios clientes. Mantienes un mapa con un par de claves, IP pública e IP local y lo vas llenando con la info que recibes en el Rendezvous. Si el cliente no tiene UPnP en NAT entonces coge su IP a través de las funciones de sockets. Ojo, UPnP te da la IP real, da igual que esté tras VPN, algo que escandalizó bastante puesto que Chrome y Firefox integraban este protocolo, se puede deshabilitar y es de lo que te habla MinusFour (WebRTC).

Si varios clientes tienen la misma IP pública, lo notarás ya que el map tiene una previa entrada, así que conectarás a esos dos clientes mandándoles la IP privada correspondiente, sino emplea la pública.

Para punchear NAT sin PCP/PMP/UPnP nos queda el hole punch, que es facílismo de implementar. Primero el cliente debe probar la conectividad contra el otro extremo, si se puede conectar de primeras bien, sino el extremo le está enviando RST ya que NAT no deja pasar si no existe entrada para esa conexión. En caso de RST hacer connect() en ambos extremos hasta que llegue un punto en que ambas NAT mapeen las entradas, ejemplo:

A y B son los dos clientes. El NAT de A marcará: A:1234 - B:1234
El NAT de B marcará: B:1234 - A:1234

Claro está que estos mapeos suceden antes de enviar un RST, por eso sucede este comportamiento, es explotar NAT. Este seria el caso de port restricted NAT, en caso de Symmetric NAT consulta http://think-like-a-computer.com/2011/09/19/symmetric-nat/ puesto que este hilo no va de tipos de NAT.

Saludos y olvídate de HTTP ;)
#596
Programación C/C++ / Re:
14 Diciembre 2015, 12:13 PM
Lo que buscas se llama hole punching en TCP. Hace tiempo que implementé un rendezvous que conectaba a los usuarios con solo saber su IP.

Primero debes conocer el concepto de NAT punching y los cuatro tipos de NAT: full cone, address restricted, port restricted y symmetric. Están todas bien documentadas y dependiendo de cual se use la técnica para punchear NAT cambiará, sobre todo en symmetricas.

En mi git creo que tengo papers de esto. Básicamente tu y otra máquina al enviar un SYN el router mapea la conexión, y si antes de que llegue el paquete al destino, éste envía otro SYN en vez de responder con RST dejará pasar el SYN ya que la NAT tiene una entrada en ambos extremos, espero se entienda bien.

Los protocolos encargados de obtener las IPs se llaman ICE y STUN, este último originó graan revuelo ya que podías determinar la IP se alguien tras VPN.

Saludos.

Enviado desde mi G630-U20 mediante Tapatalk
#597
Me ha gustado, hace poco me también me animé a hacerlo en ASM y se ve más bonito. Otra funcionalidad sería unhookear la API, hacer la llamada original, hacer tus cosillas y rehookear. ¿Seguirás publicando?

Sobre mi code, tienes razón, juego con que el prólogo ocupa generalmente 6 bytes, hasta ahora no he tenido problemas, aunque tampoco habré hookeado más de 30 APIs.

Saludos!
#598
.NET (C#, VB.NET, ASP) / Re: Mejorar este código
12 Diciembre 2015, 21:56 PM
Hola Meta,

no está mal, te dejo una versión simplificada y te comento los cambios:

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.IO.Ports; // No olvidar.
using System.Threading;

namespace Puerto_serie_consola_CS
{
       static void Main(string[] args)
       {
           Console.Title = "Puerto serie C#";

           //Los parametros de la config los he puesto en la constructora veáse https://msdn.microsoft.com/en-us/library/z8d1ykfs%28v=vs.100%29.aspx
           SerialPort Puerto_serie = new SerialPort("COM4", 115200, Parity.None, 8, StopBits.Two);

           // Crear un nuevo objeto SerialPort con la configuración predeterminada.
           Puerto_serie = new SerialPort();

           // Configuración.
           Puerto_serie.Handshake = Handshake.None; // Control de flujo.

           // Establecer la lectura / escritura de los tiempos de espera.
           Puerto_serie.ReadTimeout = 500;
           Puerto_serie.WriteTimeout = 500;

           string  Enviar_datos = String.Empty;

           while (true)
           {
               Console.WriteLine("Introduce comandos:"); // Muestra texto en pantalla.
               Enviar_datos = Console.ReadLine();
               byte[] buff = Encoding.ASCII.GetBytes(Enviar_datos); // Guarda un array los datos y codificado en ASCII.
               Puerto_serie.Open();
               Puerto_serie.Write(buff, 0, buff.Length); // Envía al puerto el array almacenado del buffer.
               Console.WriteLine(); // Salto de línea.
               Puerto_serie.Close(); // Cerrar puerto serie.
           }
       }
   }
}


He quitado la claúsula switch(){} pues en ambos cases hacías las mismas llamadas empleando los mismos objetos. No lo he probado pero espero te funcione.

Saludos!
#599
Un tema muy interesante y obligatorio para aquellos interesados en ingeniería inversa o malware.

Hace tiempo hice un template en C++, le pasas el typedef de la función original y luego llamas a la función Hook() pasándole el  puntero a la función original y a la sustituta y ello solo redirecciona las llamadas de la original a la última.

https://github.com/FreeJaus/gea-PRISM/blob/master/Programming/DirectX%20Overlay/Tibia%20Suite%20Unmanaged/APIHook.h

Saludos y lo leeré cuando lo publiques ;)
#600
Cita de: Meta en 12 Diciembre 2015, 20:47 PM
Tengo en una casa muy lejana, vamos a suponer, conectado Raspberry Pi 2 con servidor Web y de servicios, el que sea. Desde la otra casa, con Windows  o Linox del PC de sobre mesa.

¿Puedo saber la misma información?

En el supuesto caso de que desde los sobremesa visites tu servidor web desde un navegador convencional (FireFox, Chrome, IE..) y en tu servidor web registres el User-Agent entonces podrías determinar la misma información que la web que te he pasado anteriormente.

Somos fácilmente identificables, a eso súmale una cookie persistente, cosa que los trackers de publicidad incluyen. Ahora HTML5 también permite trackear a los usuarios, ya que se utilizan controles que crean un identificador único para cada visitante.

De esta forma, si dos páginas distintas incluyen el mismo servicio (veáse google adsense o google analytics) el servicio incluído en ambas sabrá que has navegado por dos páginas web distintas pudiendo elaborar un perfil de navegación sobre tu persona. Existen extensiones para FireFox que eliminan estás cookies y codes de javascript, además Google tiene dos oficiales, pero nunca dejarás de ser trackeado. Internet es el medio más fácil para controlarnos.

Cita de: Meta en 12 Diciembre 2015, 20:47 PM
PD: Lo de la lavadora, dentro de poco subo un pequeño avance controlando en esta ocasión el sentido del mortor cada cierto tiempo e indicado en el LCD.

Me pasaré más asiduamente, es la primera vez que lo visito y soy fan de la electrónica aunque prófano en el tema. Mola que no la tires y la vayas parcheando, es la primera vez que veo algo así ;)

Saludos!