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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: 1 ... 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 [341] 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 ... 381
3401  Programación / ASM / Re: Pregunta sobre ASM y WinAPI en: 23 Noviembre 2009, 00:10 am
Aca los tenes (nada que ver con ese enlace que dejaste):
http://www.metasploit.com/users/opcode/syscalls.html

Dudo muchisimo que jamas agregues un servicio en un *NIX (salvo que se refiera a lo del enlace, un demonio).
3402  Programación / ASM / Re: Pregunta sobre ASM y WinAPI en: 22 Noviembre 2009, 22:52 pm
Lo servicios son esos justamente, con sus respectivos numeros en la version especifica del Kernel que tengas. Como te decia antes en GNU/Linux podes ver como pthread usa los servicios futex o clone por ejemplo.

No soy un experto en *NIX justamente pero supongo que habra funciones POSIX que sean servicios directamente implementados y otras que esten basadas en otros servicios.
3403  Programación / ASM / Re: Pregunta sobre ASM y WinAPI en: 22 Noviembre 2009, 20:29 pm
No veo que opendir sea un servicio. ¿Lo encontras en /usr/include/asm/unistd.h?

Practicamente nada se programa en ensamblador ya que no es portable.
3404  Programación / ASM / Re: Pregunta sobre ASM y WinAPI en: 22 Noviembre 2009, 19:01 pm
Exactamente, en GNU/Linux podes ver como pthread usa los servicios futex o clone por ejemplo.
3405  Programación / ASM / Re: Pregunta sobre ASM y WinAPI en: 22 Noviembre 2009, 18:01 pm
Si, en realidad la RTL esta programada de tal manea que usa los servicios del S.O. en cuestion siempre que sea necesario, podes comprobarlo depurando un programa escrito en C/C++.
3406  Programación / ASM / Re: Pregunta sobre ASM y WinAPI en: 22 Noviembre 2009, 17:47 pm
Si, independientemente del lenguaje tenes que usar los servicios del S.O. (o en su defecto una libreria que los encapsule).
3407  Programación / ASM / Re: Error al compilar en: 18 Noviembre 2009, 21:12 pm
Eso es para MASM de 16 bits (MS-DOS).
3408  Programación / ASM / Re: Tamaño de word en: 18 Noviembre 2009, 08:02 am
De nadas  ;D
3409  Programación / ASM / Re: Tamaño de word en: 17 Noviembre 2009, 22:15 pm
Asi me funciona:

Código
  1. #include <stdio.h>
  2.  
  3. void function(){
  4. int i;
  5. unsigned char *p = (unsigned char*)&i+0xC;
  6. *p += 0x1A;
  7. }
  8.  
  9. void main(){
  10. int j;
  11. function();
  12. j=5;
  13. printf("\n%d\n",j);
  14. j=6;
  15. printf("\n%d\n",j);
  16. }

Siendo main:
0x080483f3 <main+0>:    lea    0x4(%esp),%ecx
0x080483f7 <main+4>:    and    $0xfffffff0,%esp
0x080483fa <main+7>:    pushl  -0x4(%ecx)
0x080483fd <main+10>:   push   %ebp
0x080483fe <main+11>:   mov    %esp,%ebp
0x08048400 <main+13>:   push   %ecx
0x08048401 <main+14>:   sub    $0x24,%esp
0x08048404 <main+17>:   call   0x80483d4 <function>
0x08048409 <main+22>:   movl   $0x5,-0x8(%ebp) ;direccion original
0x08048410 <main+29>:   mov    -0x8(%ebp),%eax
0x08048413 <main+32>:   mov    %eax,0x4(%esp)
0x08048417 <main+36>:   movl   $0x8048510,(%esp)
0x0804841e <main+43>:   call   0x8048310 <printf@plt>
---Type <return> to continue, or q <return> to quit---
0x08048423 <main+48>:   movl   $0x6,-0x8(%ebp) ;direccion a la que queremos saltar
0x0804842a <main+55>:   mov    -0x8(%ebp),%eax
0x0804842d <main+58>:   mov    %eax,0x4(%esp)
0x08048431 <main+62>:   movl   $0x8048510,(%esp)
0x08048438 <main+69>:   call   0x8048310 <printf@plt>
0x0804843d <main+74>:   add    $0x24,%esp
0x08048440 <main+77>:   pop    %ecx
0x08048441 <main+78>:   pop    %ebp
0x08048442 <main+79>:   lea    -0x4(%ecx),%esp
0x08048445 <main+82>:   ret

Y function:
0x080483d4 <function+0>:        push   %ebp
0x080483d5 <function+1>:        mov    %esp,%ebp
0x080483d7 <function+3>:        sub    $0x10,%esp
0x080483da <function+6>:        lea    -0x8(%ebp),%eax
0x080483dd <function+9>:        add    $0xc,%eax
0x080483e0 <function+12>:       mov    %eax,-0x4(%ebp)
0x080483e3 <function+15>:       mov    -0x4(%ebp),%eax
0x080483e6 <function+18>:       movzbl (%eax),%eax
0x080483e9 <function+21>:       lea    0x1a(%eax),%edx
0x080483ec <function+24>:       mov    -0x4(%ebp),%eax
0x080483ef <function+27>:       mov    %dl,(%eax)
0x080483f1 <function+29>:       leave
0x080483f2 <function+30>:       ret

0x23-0x9=0x1A.
3410  Programación / ASM / Re: Tamaño de word en: 17 Noviembre 2009, 17:18 pm
Si, la direccion de retorno ocupa 4 bytes, esta en la pila, cuando la funcion es llamada equivale justamente a ESP. Para obtenerla DENTRO de la funcion, cuando el prologo ya se ejecuto y el epilogo todavia no lo hizo tenes que sumarle el tamaño de bytes que resto (subl   $40, %esp) mas 4 (pushl %ebp).

ret = esp + (X + 4)

Siguiendo tu logica:
buf1|buf2|ESP|ret

ret = buf1 + sizeof(buf2) + 4

Lo mejor que podes hacer es depurarlo para comprobarlo.
Páginas: 1 ... 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 [341] 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 ... 381
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines