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 - cpu2

#231
Ugen es un controlador generico para USB, no se si luego tendras problemas con los dispositivos, yo por ejemplo en mi OpenBSD lo tengo en el kernel, pero nunca carga.

Si quieres eliminarlo del arranque como bien dijiste puedes usar loader.conf, con la directiva load, si te fijas cuando lees un man estilo man usb, en Synopsis aparecen cosas como esta:

CitarAlternatively, to load the   driver as a module at boot time, place the
following line in loader.conf(5):

      usb_load="YES"

Lo que sucede con ugen, es que es su manpage dice que esta integrado en el modulo de usb, asi que no se si podras desactivarlo, yo por ejemplo en OpenBSD lo tengo aparte, y en la configuracion del kernel lo tengo como modulo, si comparas Synopsis mejor.

Un saludo.
#232
Gracias, abajo del todo la tienes en la de Intel, ya que algunos usuarios de este y otros foros no les gusta la de AT&T.

Sobre el lenjuage que mata el alma y la envenena, supongo que te referiras VB6, es cuestion de lo que tengas que hacer, esta claro de que si programas en este no tienes que saber mucho el funcionamiento de las cosas, ASM es lo contrario te obliga a saberlo, de lo contrario no haces nada.

Te digo esto porque desde que estoy con ASM, casi desde siempre, solo programo algoritmos de encryptacion y de ofuscacion para Malware, simplemente por aprendizaje, pero te lleva por esos caminos la mayoria de veces...

Y si yo uso AT&T, por que ensamblo con GAS.

Bueno nada mas que decir, creo que tendrias que poner un resuelto al hilo, ya que con esta charla se esta desviando.

Un saludo.
#233
De nada hombre, sabia que ese link te ayudaria mejor que mis propias palabras.

Y sobre la API desde mi punto de vista sin comentarios... No estoy acostumbrado a esa clase de programacion. Y como dijiste control ninguno.

Yo estoy acostumbrado a ASM como este:

http://foro.elhacker.net/criptografia/aes_128_bits_encrypt_asm_bit_slice-t414536.0.html

Es uno de mis codes.

Un saludo.
#234
No la vi...

Se supone que MyWndProc es llamada cuando se ejecuta RegisterClassEx?

Un saludo.

P.D: Increible la API de Windows, cada vez me gusta menos...
#235
Ya veo que se trata de Win y la sintaxis de Intel, yo soy todo lo contrario Unix y AT&T sintaxis.

Código (asm) [Seleccionar]
push ebp
mov ebp, esp
sub esp, 96


Si lo extrae al final, como dijiste esa es la funcion de leave, restaurar esp y ebp. Bien se decremeta el stack en 4 se guarda el valor de ebp, luego se el offset de esp a ebp y se substrae esp en 96 bytes.

Si te das cuenta se deja ebp (arriba "base"), y esp apuntando abajo donde sigue este.

Bien sobre lo de reservar 96 bytes, yo tampoco le veo, en la funcion start solamente se usan 72 bytes lo de las estructuras WNDCLASSEX y MSG nada mas, ya que en su ejecucion no llama a MyWndProc y al finalizar restaura el stack.


Código (asm) [Seleccionar]
push DWORD PTR [ebp+20]
push DWORD PTR [ebp+16]
push DWORD PTR [ebp+12]
push DWORD PTR [ebp+8]                     ;Aqui no entiendo porque hWnd apunta deste 8, que hay de primero  entonces
                                           ;No deberia apuntar desde el byte 0
                                           ;Ha y no entiendo porque aqui es ebp+direccion y arriba es ebp-direccion
call DefWindowProc


Mejor que leas esto:

http://www.unixwiz.net/techtips/win32-callconv-asm.html

Mirate los diagramas.

Pero una cosa cuando se llama a MyWndProc? No sera una funcion aparte?

Un saludo.
#236
CitarY también sobre el direccionamiento indirecto, se como se direcciona pero siempre que trato de hacerlo el programa crashea. Necesito un ejemplo práctico porque siempre ponen:
mov eax,byte ptr [ebp+ebx*2+4] ;ejemplo si entiendo lo de byte ptr

pero si luego trato de acceder a esa posición de memoria no puedo, y yo creí que a partir del 386 se podían direccionar 4gb de memoria.

Vale, estas calculando una direccion compleja, podrias decir los valores de ebp, ebx, simplemente es para saber donde esta apuntando el offset que generas.

Que tengas 4GB de memoria, no significa que puedas acceder por completo a esta, algunas direcciones estan protegidas contra escritura y lectura, depende del modo en el que estes CPL, Ring 0-3 no se si te sonara esto, pues depende de los privilegios que tengas no podras acceder a determinado offset.

Si quieres tener el control de todo, por asi decirlo tendrias que estas en Ring 0, pero como estas empezando con esto, olvidate de momento.

Tambien ayudaria mucho que dijeras que clase de error que esta dando.

CitarY sobre la pila me gustaría ver como se obtienen las variables, como se reserva espacio y como se manejan estructuras(sin identificador) osea no:
lea eax,structura
push eax

sino acceder a posiciones de memoria en donde se encuentre cada elemento.

ASM en un lenjuage de programacion "libre", me refiero a que puedes hacer muchas cosas de diferentes maneras, no hay una forma establecida. Algunas de las iintrucciones que van ligadas con el stack son estas: enter, leave, push, pop...

Pero tambien puedes usar add o sub para reservar o privar la pila, y puedes hacerlo de mil formas mas por asi decirlo.

Sobre las variables te invito que busques informacion, eso ya esta mas que hablado, pero yo usaria fastcall, lo de cargar los parametros en el stack esta algo pasado, pero ojo fastcall tiene un numero limitado de parametros si quieres pasar mas tendras que usar la pila.

Y sobre las estructuras, supongo que quieres saber como se crea una a mano durante la ejecucion del code no? Si quieres dime alguna estructura y te dejo el ejemplo. Y sobre acceder a sus elemento todo depende de que posicion este.

Un saludo.
#237
Cita de: r1ghtz0 en 16 Octubre 2014, 01:39 AM
ivancea96 lo que me estás diciendo del char ya lo se, yo lo que quiero saber es cual es la IP que el sistema operativo le asigna al server ¿Como puedo obtener esa IP del server? Y por qué el cliente almacena la IP del server en un array de 16 elemento? específicamente por qué el array es de 16 elementos? es todo.

Buscando un poco en los manuales de Linux encontraras las funciones que necesitas, no sera por falta de documentacion, algunas de las que te digo son estas, igualmente no se que necesitas al 100%.

getsockname, getaddrinfo, gethostbyaddr etc...

Estan todas muy bien documentadas, lee los manuales que estan perfectamente comentados y sabras cual es la que te conviene.


Sobre el tema del vector, cuando llamas a scanf y pasa las direccion esta esta en formato ASCII, igualemnte no ves que se solicita una cadena en scanf.

El simple motivo de porque tiene 16 bytes el vector ip es este. Si sabiendo que una direccion IPv4 puede estar en el rango 255.255.255.255 y que los numeros o simbolos que introduces para crear esa direccion son un byte se queda en 15 bytes el sobrante sera por la basura que deja scanf, o el byte nulo.

Pero tu necesitas un entero de 4 bytes en el rango 0 - 255, no 15 bytes en formato ASCII, lo que hace inet_addr es pasar la direccion en formato string a un int de 4 byes. Seria esto 127.0.0.1 (string) == 0x100007f, ese numero en HEX estaria  bien, se entiende?

Si quieres ser mas PRO, utiliza argv (linea de comando) y dejate de funciones como esa, para tomar valores por parte del usuario, argv el ultimo byte seria un 0, supongo que sabras que siginifica el 0 cuando estas trabajando con cadenas.

Y otra cosa, en el code CLIENTE solicitas el puerto, pero estas usando una previeamente establecido.

Un saludo.
#238
ASM / Re: Puertos de instruccion IN
15 Octubre 2014, 22:47 PM
Aqui tienes una lista, del 94 desactualizada pero esta bastante bien.

Citarhttp://bochs.sourceforge.net/techspec/PORTS.LST

Pero como dice la lista, no esta completa, cada Hardware puede tener su puerto especifico, si quieres saber los datos exactos lee su data sheet apropiado.

Un saludo.
#239
Redes / Re: Acceso remoto segundo router
14 Octubre 2014, 22:18 PM
Pero al final cuales son los puertos? Me remito al primer mensaje.

Vale quieres dirigir las conexiones que vengan desde la WAN con el puerto 50100, a 192.168.1.2 al pueto 80, no?

External Start Port:50100
External End Port:50100
Internal Start Port:80
Internal End Port:80
Server Ip Address:192.168.1.2


Y bueno sobre el cortafuegos, puede que este hay el problema.


Ip Filtering>Incoming:

Filter Name:Web2    
IP Version: Solo me aparece IPv4  
Protocol:Tcp/Udp    
Source IP address[/prefix length]:    <----- la direccion de origen, como hiciste un NAT, ya sabes.
Source Port (port or port:port):        < ----- lo mismo


Destination IP address[/prefix length]:  <------ a donde van las peticiones de la direccion de origen, ya sabes    
Destination Port (port or port:port): 8787          <---- esto tienes que cambiar



Un saludo.

P.D: Si quieres saber si es problema del filtrado IP, desactivalo un momento y lo sabras.
#240
Si no muestras algo de code, se hace dificil ayudarte. Puedo dejarte un ejemplo con la estructura, pero no de todas las funciones.

struct nodo {
  int dato;
  struct nodo *siguiente;
  struct nodo *anterior;
};


Código (asm) [Seleccionar]
subl $12, %esp
movl %eax, (%esp)       ; en eax esta el int dato
leal -12(%esp), %ebx   ; en ebx esta el puntero al siguiente int dato
leal 12 (%esp), %ecx  ; en ecx esta el puntero al anterior int dato
movl %ebx, 4(%esp)
movl %ecx, 8(%esp)


No se si me explico se puede haber mas complejo y optimizado aun, pero no puedo hacer mas ya que no tienes nada escrito. Igualmente te dejo este link, que tienes un code y todo. Si tienes algun problema dilo.

Punto 7.3. Listas

http://www.abreojosensamblador.net/Productos/AOE/html/Pags/Cap07.html

Un saudo.