COVER FX

Aplicaciones objetos ,DLL
Hoy pongo un tutorial de como crear un DLL hazlo tu mismo y estructura :curl-lip:

¿Que es MASM - RadAsm? 

Sintaxis un resumen : MASM : Es soportado por muchos Programas o Sofware Compiladores como en este caso pasare a explicar este Assambler o"Ensamblador" tiene una muy impresionante librería de programador, un repositorio de ejemplos de código, y una extraordinaria documentación para los usuarios del MASM. Assembler de Microsoft.

¿En que te beneficia tener un Lenguaje Ensamblador ? 

Un programa escrito en el lenguaje ensamblador requiere considerablemente menos memoria y tiempo de ejecución que un programa escrito en los conocidos lenguajes de alto nivel, como C, C++, java, C#, Delphi 7 etc. El lenguaje ensamblador da a un programador la capacidad de realizar tareas muy técnicas que serian difíciles, si no es que imposibles de realizar en un lenguaje de alto nivel. El conocimiento del lenguaje ensamblador permite una comprensión de la arquitectura de la maquina que ningún lenguaje de alto nivel puede ofrecer. Aunque la mayoría de los especialistas en Software desarrolla aplicaciones en lenguajes de alto nivel, que son más fáciles de escribir y de dar mantenimiento, una practica común es re codificar en lenguaje ensamblador aquellas rutinas que han causado cuellos de botella en el procesamiento. Los programas residentes y rutinas de servicio de interrupción casi siempre son desarrollados en el lenguaje ensamblador. Los lenguajes de alto nivel fueron diseñados para eliminar las particularidades de una computadora especifica, mientras que un lenguaje ensamblador esta diseñado para una familia especifica de microprocesadores.
Bueno comenzemos con el codigo :snicker:

 

Aca va el codigo :3

Declaracion de msg box
Titulo db "Titulo",0
Texto db "By Revenge",0 
invoke MessageBox,0,addr Texto,addr Titulo,MB_OK  

AHORA COMENZAREMOS DE UNA VEZ CON EL CODIGO 

 

.386
.model flat,stdcall  
option casemap:none  ; Type processor 


      include windows.inc ;Librerias ASM
      include masm32.inc
      include gdi32.inc
      include user32.inc
      include kernel32.inc
      include Comctl32.inc
      include comdlg32.inc
      include shell32.inc
      include oleaut32.inc
      include dialogs.inc
      ;includelib revenge.lib
      includelib masm32.lib
      includelib gdi32.lib
      includelib user32.lib
      includelib kernel32.lib
      includelib Comctl32.lib
      includelib comdlg32.lib
      includelib shell32.lib
      includelib oleaut32.lib
;;;;;;;;;;;;;;;;;;;;;;;;;;;L1

Funcion  PROTO 
Thread  PROTO
Busqueda PROTO
Localizacion PROTO
ControlData PROTO
RevengeData  PROTO

.data
Api db "user32.dll",0
KernelMessage db "PostMessageA",0
Entities db    "entitiesmp.dll",0 
Engine   db "engine.dll",0
FieldInfo    db "?GetFieldInfo@CPlayer@@QBEPAVFieldInfo@@XZ",0  ;Field Info
FDX db "?GetPlayerEntityByIndex@CPlayer@@QAEPAVCEntity@@E@Z",0 ;Index Player
LocalPlayer    db "?GetLocalPlayer@FieldInfo@@QAEPAVCEntity@@XZ",0 ;Player
Fear db "?UseHorroPotion1@CPlayer@@QAEXXZ",0  ;Fear
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MSGBOX;;;;;;;;
MsgTitulo db "~Revenge~",0
MsgTexto  db "Ponga lo que crea necesario que quiera que salga en su proyecto.",0

.code     
.data?
ThrdID dd ?
instance dd ?
rango dword ?
hWnd dword ?
cuento dd ?
hinstance dd ?
handle dd ?
estilo dd ?
notecla dd ?
KillerID1 dd ?
KillerID2 dd ?
.code
Punto_de_Inicio proc hInstance:HINSTANCE, reason:DWORD, reserved1:DWORD 

.if reason==DLL_PROCESS_ATTACH
invoke MessageBox,0,addr MsgTexto,addr MsgTitulo,MB_OK
invoke CreateThread,NULL,NULL,ADDR Thread ,NULL,NULL,NULL
 
   mov eax,OFFSET Bucle
invoke CreateThread,NULL,NULL,eax,\
NULL,NORMAL_PRIORITY_CLASS,\
ADDR ThrdID 

invoke CloseHandle,eax

.elseif reason==DLL_PROCESS_DETACH

.elseif reason==DLL_THREAD_ATTACH

.elseif reason== DLL_THREAD_DETACH

.endif

mov eax,TRUE
ret 
Punto_de_Inicio Endp
Busqueda proc
    sigue:
    invoke LoadLibrary,addr Engine
    invoke LoadLibrary,addr Entities
    invoke GetActiveWindow
    termina:
    continua:
    ret

Busqueda endp
ControlData proc

      invoke InitCommonControls
    
ControlData endp

Thread proc
    tecla:
    invoke Sleep, 20

    invoke GetAsyncKeyState, VK_F1 ; Tecla en donde Se activara la pocion... 
    test eax, eax
    jz tecla
    invoke Funcion ;llamado ala funcion y ejecucion de variables....
    jmp tecla
    ret
    
Thread endp
RevengeData proc
invoke Sleep,20
invoke CreateThread,NULL,NULL,ADDR Busqueda ,NULL,NULL,NULL
invoke Sleep,20
invoke CreateThread,NULL,NULL,ADDR ControlData ,NULL,NULL,NULL
ret
RevengeData endp
Funcion proc
LOCAL listo:DWORD
LOCAL pot:DWORD
LOCAL Revenge:DWORD

   invoke GetModuleHandle, addr Entities
    invoke GetProcAddress, eax, addr FDX
    call eax
    mov Revenge,eax

    invoke GetModuleHandle, addr Entities
    invoke GetProcAddress, eax, addr FieldInfo
    call eax
    mov listo,eax

    invoke GetModuleHandle, addr Engine
    invoke GetProcAddress, eax, addr LocalPlayer
    mov ecx, listo
    call eax
    mov listo,eax
    

    invoke GetModuleHandle, addr Entities
    invoke GetProcAddress, eax, addr Fear
    mov pot,eax
    

    mov ecx, listo
    mov edi, listo
    mov eax, pot
    call eax
    
    
    ret
    

Funcion endp
Bucle proc
@@no:
cmp eax,TRUE
jne @@no

bucle:

invoke Sleep,1

cmp eax,TRUE

je @@no
jmp bucle
ret
Bucle endp 
End Punto_de_Inicio  

 

Compartir este post


Enlace al mensaje
Compartir en otros sitios
MIEMBRO FX
hace 9 horas, FullExtremo dijo:

Aplicaciones objetos ,DLL
Hoy pongo un tutorial de como crear un DLL hazlo tu mismo y estructura :curl-lip:

¿Que es MASM - RadAsm? 

Sintaxis un resumen : MASM : Es soportado por muchos Programas o Sofware Compiladores como en este caso pasare a explicar este Assambler o"Ensamblador" tiene una muy impresionante librería de programador, un repositorio de ejemplos de código, y una extraordinaria documentación para los usuarios del MASM. Assembler de Microsoft.

¿En que te beneficia tener un Lenguaje Ensamblador ? 

Un programa escrito en el lenguaje ensamblador requiere considerablemente menos memoria y tiempo de ejecución que un programa escrito en los conocidos lenguajes de alto nivel, como C, C++, java, C#, Delphi 7 etc. El lenguaje ensamblador da a un programador la capacidad de realizar tareas muy técnicas que serian difíciles, si no es que imposibles de realizar en un lenguaje de alto nivel. El conocimiento del lenguaje ensamblador permite una comprensión de la arquitectura de la maquina que ningún lenguaje de alto nivel puede ofrecer. Aunque la mayoría de los especialistas en Software desarrolla aplicaciones en lenguajes de alto nivel, que son más fáciles de escribir y de dar mantenimiento, una practica común es re codificar en lenguaje ensamblador aquellas rutinas que han causado cuellos de botella en el procesamiento. Los programas residentes y rutinas de servicio de interrupción casi siempre son desarrollados en el lenguaje ensamblador. Los lenguajes de alto nivel fueron diseñados para eliminar las particularidades de una computadora especifica, mientras que un lenguaje ensamblador esta diseñado para una familia especifica de microprocesadores.
Bueno comenzemos con el codigo :snicker:

 

Aca va el codigo :3


Declaracion de msg box
Titulo db "Titulo",0
Texto db "By Revenge",0 
invoke MessageBox,0,addr Texto,addr Titulo,MB_OK  

AHORA COMENZAREMOS DE UNA VEZ CON EL CODIGO 

 


.386
.model flat,stdcall  
option casemap:none  ; Type processor 


      include windows.inc ;Librerias ASM
      include masm32.inc
      include gdi32.inc
      include user32.inc
      include kernel32.inc
      include Comctl32.inc
      include comdlg32.inc
      include shell32.inc
      include oleaut32.inc
      include dialogs.inc
      ;includelib revenge.lib
      includelib masm32.lib
      includelib gdi32.lib
      includelib user32.lib
      includelib kernel32.lib
      includelib Comctl32.lib
      includelib comdlg32.lib
      includelib shell32.lib
      includelib oleaut32.lib
;;;;;;;;;;;;;;;;;;;;;;;;;;;L1

Funcion  PROTO 
Thread  PROTO
Busqueda PROTO
Localizacion PROTO
ControlData PROTO
RevengeData  PROTO

.data
Api db "user32.dll",0
KernelMessage db "PostMessageA",0
Entities db    "entitiesmp.dll",0 
Engine   db "engine.dll",0
FieldInfo    db "?GetFieldInfo@CPlayer@@QBEPAVFieldInfo@@XZ",0  ;Field Info
FDX db "?GetPlayerEntityByIndex@CPlayer@@QAEPAVCEntity@@E@Z",0 ;Index Player
LocalPlayer    db "?GetLocalPlayer@FieldInfo@@QAEPAVCEntity@@XZ",0 ;Player
Fear db "?UseHorroPotion1@CPlayer@@QAEXXZ",0  ;Fear
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MSGBOX;;;;;;;;
MsgTitulo db "~Revenge~",0
MsgTexto  db "Ponga lo que crea necesario que quiera que salga en su proyecto.",0

.code     
.data?
ThrdID dd ?
instance dd ?
rango dword ?
hWnd dword ?
cuento dd ?
hinstance dd ?
handle dd ?
estilo dd ?
notecla dd ?
KillerID1 dd ?
KillerID2 dd ?
.code
Punto_de_Inicio proc hInstance:HINSTANCE, reason:DWORD, reserved1:DWORD 

.if reason==DLL_PROCESS_ATTACH
invoke MessageBox,0,addr MsgTexto,addr MsgTitulo,MB_OK
invoke CreateThread,NULL,NULL,ADDR Thread ,NULL,NULL,NULL
 
   mov eax,OFFSET Bucle
invoke CreateThread,NULL,NULL,eax,\
NULL,NORMAL_PRIORITY_CLASS,\
ADDR ThrdID 

invoke CloseHandle,eax

.elseif reason==DLL_PROCESS_DETACH

.elseif reason==DLL_THREAD_ATTACH

.elseif reason== DLL_THREAD_DETACH

.endif

mov eax,TRUE
ret 
Punto_de_Inicio Endp
Busqueda proc
    sigue:
    invoke LoadLibrary,addr Engine
    invoke LoadLibrary,addr Entities
    invoke GetActiveWindow
    termina:
    continua:
    ret

Busqueda endp
ControlData proc

      invoke InitCommonControls
    
ControlData endp

Thread proc
    tecla:
    invoke Sleep, 20

    invoke GetAsyncKeyState, VK_F1 ; Tecla en donde Se activara la pocion... 
    test eax, eax
    jz tecla
    invoke Funcion ;llamado ala funcion y ejecucion de variables....
    jmp tecla
    ret
    
Thread endp
RevengeData proc
invoke Sleep,20
invoke CreateThread,NULL,NULL,ADDR Busqueda ,NULL,NULL,NULL
invoke Sleep,20
invoke CreateThread,NULL,NULL,ADDR ControlData ,NULL,NULL,NULL
ret
RevengeData endp
Funcion proc
LOCAL listo:DWORD
LOCAL pot:DWORD
LOCAL Revenge:DWORD

   invoke GetModuleHandle, addr Entities
    invoke GetProcAddress, eax, addr FDX
    call eax
    mov Revenge,eax

    invoke GetModuleHandle, addr Entities
    invoke GetProcAddress, eax, addr FieldInfo
    call eax
    mov listo,eax

    invoke GetModuleHandle, addr Engine
    invoke GetProcAddress, eax, addr LocalPlayer
    mov ecx, listo
    call eax
    mov listo,eax
    

    invoke GetModuleHandle, addr Entities
    invoke GetProcAddress, eax, addr Fear
    mov pot,eax
    

    mov ecx, listo
    mov edi, listo
    mov eax, pot
    call eax
    
    
    ret
    

Funcion endp
Bucle proc
@@no:
cmp eax,TRUE
jne @@no

bucle:

invoke Sleep,1

cmp eax,TRUE

je @@no
jmp bucle
ret
Bucle endp 
End Punto_de_Inicio  

 

 

Compartir este post


Enlace al mensaje
Compartir en otros sitios

Crear una cuenta o conéctate para comentar

Tienes que ser miembro para dejar un comentario

Crear una cuenta

Regístrese para obtener una cuenta en nuestra comunidad


Registrar una nueva cuenta

Conectar

¿Ya tienes una cuenta? Conéctate aquí.


Conectar ahora
Conéctate para seguir esto  
Seguidores 0

  • Contenido Similar

  • 799
    Temas Totales
    2.437
    Mensajes Totales
    86.237
    Cantidad de Miembros
    1.534
    Récord de Conectados Simultáneamente
    Jose Dkm
    Último Miembro
    Jose Dkm
    Ingreso 27/02/17 22:40