Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-10-2007
Mav Mav is offline
Miembro
 
Registrado: jun 2007
Posts: 39
Poder: 0
Mav Va por buen camino
Probando el emsamblador de Delphi

Código Delphi [-]
program Ejecutor;

uses
  Windows;

const

  WM_CHAR= $0102 ;

 var
   miHandle : DWORD ;
   data : string ;
    App :string ='Notepad.exe';
    Wndclass : string = 'Notepad';
    Childclass : string= 'Edit';

begin
     data := ' Estamos probando como funciona el assembler'+ #13#10+
            'en Delphi y como no tenemos ni idea, no sabemos'+#13#10+
            'que sucederà .'+#13#10+
                           'Bueno, no tenemos ni idea de Delphi,'+#13#10+
            'en ensamblador , algo si sabemos ,es el primer len-'+#13#10+
            'guaje de programación  que nos pusimos a intentar '+#13#10+
            'aprender o debí escribir aprehender............'+#13#10+
                    '¿ End ?' ;


    asm
      pushad
      push SW_SHOW
      push dword ptr [App ]
      call WinExec
      push 0
      push dword ptr [Wndclass]
      call FindWindow
      push  0
      push Childclass
      push 0
      push eax
      call FindWindowEx
      mov [miHandle], eax
      mov edx, data
   @@eti1:
      xor eax, eax
      mov al ,byte [edx]
      or al, al
      jz @@eti2
      push edx
      push 0
      push eax
      push WM_CHAR
      push [miHandle]
      call SendMessage
      push 100
      call Sleep
      pop edx
      inc edx
      jmp @@eti1
    @@eti2:
       push 0
       call ExitProcess
       popad


    end;


end.
Código Delphi [-]
 program segundo;

uses
  Windows;

const

  SCRCOPY=$00cc0020 ;

 var
       ancho WORD;
       alto  WORD;
    contador WORD;
        HDC  WORD;

begin
    asm
      push SM_CXSCREEN
      call GetSystemMetrics
      mov  [ancho], eax
      push SM_CYSCREEN
      call GetSystemMetrics
      mov  [alto], eax
      shr eax, 1
      mov contador, eax
      push 0
      call GetDC
      mov [HDC], eax
@@eti1:
      push SCRCOPY
      push 0
      push 0
      push [HDC]
      push [alto]
      push [ancho]
      push 1
      push 1
      push [HDC]
      call BitBlt
      dec [alto]
      dec [contador]
      jnz @@eti1
      push [HDC]
      push 0
      call ReleaseDC
      push 0
      call ExitProcess

    end;

end.

Última edición por Mav fecha: 31-10-2007 a las 23:01:50. Razón: Añadir el código de otro post movido, para que esten en el mismo hilo todos
Responder Con Cita
  #2  
Antiguo 28-10-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 28-10-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Cita:
Empezado por Mav Ver Mensaje
Estamos probando como funciona el assembler
en Delphi y como no tenemos ni idea, no sabemos
que sucederà .
Bueno, no tenemos ni idea de Delphi,
en ensamblador , algo si sabemos ,es el primer len-
guaje de programación que nos pusimos a intentar
aprender o debí escribir aprehender............
¿ End ?
Está bien...
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #4  
Antiguo 29-10-2007
Avatar de aeff
aeff aeff is offline
Miembro
 
Registrado: oct 2006
Ubicación: Cuba, Guantánamo
Posts: 348
Poder: 18
aeff Va camino a la fama
ostias! no entiendo ni papa de lo que puso este arriba, tendre que probarlo,

o ya lo probaron ustedes?
Responder Con Cita
  #5  
Antiguo 29-10-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por Mav
Código Delphi [-]
uses Windows, Messages;
 
var
 hWnd, Pos: Cardinal;
 Str: PChar = ' Estamos probando como funciona el assembler'#13+
              'en Delphi y como no tenemos ni idea, no sabemos'#13+
              'que sucederà .'#13+
              'Bueno, no tenemos ni idea de Delphi,'#13+
              'en ensamblador , algo si sabemos ,es el primer len-'#13+
              'guaje de programación  que nos pusimos a intentar '#13+
              'aprender o debí escribir aprehender............'#13+
              '¿ End ?';
 
begin
 Pos := 0;
 WinExec('notepad.exe', SW_SHOW);
 hWnd := FindWindowEx(FindWindow('Notepad', nil), 0, 'Edit', nil);
 while Str[Pos] <> #0 do
  begin
   SendMessage(hWnd, WM_CHAR, Integer(Str[Pos]), 0);
   Sleep(100);
   Inc(Pos);
  end;
end.
ésto es un desafio?

mmm....
Responder Con Cita
  #6  
Antiguo 29-10-2007
Mav Mav is offline
Miembro
 
Registrado: jun 2007
Posts: 39
Poder: 0
Mav Va por buen camino
No es un desafio...

Compilandolo y ejecutandolo , te abre el bloc de notas
y te escribe un texto..
Responder Con Cita
  #7  
Antiguo 31-10-2007
Avatar de aeff
aeff aeff is offline
Miembro
 
Registrado: oct 2006
Ubicación: Cuba, Guantánamo
Posts: 348
Poder: 18
aeff Va camino a la fama
Eso si que está súper!! donde lo aprendiste a hacer??
Responder Con Cita
  #8  
Antiguo 31-10-2007
Avatar de aeff
aeff aeff is offline
Miembro
 
Registrado: oct 2006
Ubicación: Cuba, Guantánamo
Posts: 348
Poder: 18
aeff Va camino a la fama
me he quedado asombrado, me pueden explicar, así que los parametros de las funciones se almacenan en la Pila?? oye eso! nunca me lo habia inmaginado, "el primero en meter es el ultimo en sacar"

je je je!
Responder Con Cita
  #9  
Antiguo 28-03-2008
Avatar de Black_Ocean
Black_Ocean Black_Ocean is offline
Miembro
 
Registrado: nov 2006
Posts: 128
Poder: 18
Black_Ocean Va por buen camino
Cita:
Empezado por aeff Ver Mensaje
Eso si que está súper!! donde lo aprendiste a hacer??
Amigo,

El código ensamblador no es nada del otro mundo, todo se logra con paciencia, el aprendizaje y la práctica, Acaso como crees que se practica la ingeniería inversa? Primeramente, dominando el ASM y Hexadecimal, Si fuera algo tan escondido, no habría los millones de reverse enginers que hay en la actualidad (en jerga, conocidos como crackers). Ellos dominan estos temas como si fuera jugar al dominó, yo he conversado con varios reverse engineers rusos y de otros países por IRC que me asombran como dominan estos temas. De hecho, por ellos me he motivado a leer y aprender de a poco Assembler, pero para mi caso, para Delphi y para manejar el OllyDBG y el DeDe (depuradores/desensambladores).

Aprende y practica como yo también lo estoy haciendo y entenderás su lógica y el por qué se usa en cuestión.

En Delphi, se implementó primeramente para que el programador pudiera optimizar rutinas y procedimientos en tiempo de ejecución, lo que se agradece enormemente que borland lo haya implementado desde el principio en este gran lenguaje, cosa que en Visual Basic 6 no es posible "en si". Lo otro, es que Delphi al compilar automáticamente genera código ensamblador, lo que permite un mejor desempeño en tiempo de ejecución, en cambio Visual Basic 6 genera código interpretado, lo que hace que sea más lento en tiempo de ejecución. En ese aspecto, Delphi está mejor diseñado.

Saludos.

Última edición por Black_Ocean fecha: 28-03-2008 a las 07:07:29.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Probando la conexion con MySQL? vicac Conexión con bases de datos 0 28-02-2007 03:53:51
Probando conexion ADO desde Delphi 6 a MySQL VRO Conexión con bases de datos 1 17-01-2007 02:48:18


La franja horaria es GMT +2. Ahora son las 18:14:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi