[soft] SAMINSIDEPRO, UN PROGRAMA PARA ROMPER LAS CONTRASEÑAS DE WINDOWS

09/02/2005 - 22:29 por Luxury | Informe spam
SAMINSIDEPRO, UN PROGRAMA PARA ROMPER LAS CONTRASEÑAS DE WINDOWS
http://www.seguridad0.com/index.php...cf0&ID64

Fuente: http://www.seguridad0.com

Acaba de aparecer la versión 2.3.0.0 de SAMInside Pro, programa cuya
principal función es recuperar los contraseñas de los usuarios de los
sistemas operativos Windows NT, 2000, XP y 2003, en cualquiera de sus
versiones.

SAMInside es el único programa que rompe incluso el cifrado con
Syskey.

El programa importa contraseñas desde la SAM, el Registro de Windows,
volcados PWDUMP con hashes en modo texto, ficheros LC4 y LC5,
Proactive Windows Security Explorer, LSASS y Programador.

Un ataque por fuerza bruta puede hacerse de forma distribuida en
varios ordenadores; también incorpora un diccionario. Un contador a la
derecha muestra el tiempo que queda hasta que la contraseña sea
adivinida. Y el nivel de aciertos es del cien por cien, sólo es
cuestión de tiempo.

SAMInside Pro ha sido desarrollado en parte por el equipo de
Seguridad0, y traducido por completo al español por Carlos Mesa.

Descarga del programa: http://www.insidepro.com/download/saminside.zip

Más información:

Cracking de contraseñas Windows
http://www.seguridad0.com/index.php...560&IDƒ0




Los materiales publicados en Seguridad0 se encuentran protegidos por
una licencia libre de Creative Commons que permite copiar,
redistribuir, modificar y hacer trabajos derivados, simplemente con
mencionar la fuente y la URL.
http://creativecommons.org/licenses...sa/2.0/es/

Preguntas similare

Leer las respuestas

#11 JM Tella Llop [MVP Windows]
10/02/2005 - 17:56 | Informe spam
.286
;- MTASK --
; (c) 1993 Jose M. Tella
; Creaci¢n : Jun. 1993
;
; - Esqueleto base para gesti¢n de MULTITASKING en DOS
;

NUM_TASK EQU 4 ;Al Aumentarse disminuyen los recursos
;de memoria.


;- Definici¢n de MACROS --
XPUSH MACRO regmem
IRP rm, <regmem>
PUSH rm
ENDM
ENDM

XPOP MACRO regmem
IRP rm, <regmem>
POP rm
ENDM
ENDM

SALVA MACRO Area
Mov Cs:Area,Ax
Mov Cs:Area[2],Bx
Mov Cs:Area[4],Cx
Mov Cs:Area[6],Dx
Mov Cs:Area[8],Si
Mov Cs:Area[10],Di
Mov Cs:Area[12],Es
Mov Cs:Area[14],Ds
Mov Cs:Area[16],Ss
Mov Cs:Area[18],Sp
Mov Cs:Area[20],Bp
Pushf
Pop Cs:Area[22]
ENDM

RECUPERA MACRO Area
Mov Ax,Cs:Area
Mov Bx,Cs:Area[2]
Mov Cx,Cs:Area[4]
Mov Dx,Cs:Area[6]
Mov Di,Cs:Area[10]
Mov Es,Cs:Area[12]
Mov Ds,Cs:Area[14]
Mov Ss,Cs:Area[16]
Mov Sp,Cs:Area[18]
Mov Bp,Cs:Area[20]
Push Cs:Area[22]
Popf
Mov Si,Cs:Area[8]
ENDM
;-
PGROUP GROUP PROG
PROG Segment Word PUBLIC 'PROG'
Assume Cs:PROG,Ds:PROG
Org 100h

Main:
Jmp Main0

;-- Data Area --
EVEN

Dw 128 Dup (?)
Stack_M EQU $
Direc_SDA Dd ?
Length_SDA Dw ?

Old_00 Dd ?
Old_08 Dd ?
Old_09 Dd ?
Old_0B Dd ?
Old_0C Dd ?
Old_10 Dd ?
Old_16 Dd ?
Old_13 Dd ?
Old_21 Dd ?
Old_2F Dd ?


NUM_BK_MAX EQU NUM_TASK
NUM_ALLOC EQU NUM_TASK+1
Wrk_Regs Dw 12 Dup (?)
Wrk_Dir Dw 2 Dup (?)
Save_Regs Dw 12*NUM_ALLOC Dup (?)
Save_Dir Dw 2*NUM_ALLOC Dup (?)
Tb_Task Db NUM_ALLOC Dup (0),0,0
Tb_PSP Dw NUM_ALLOC Dup (0),0
Tb_Conta Dw NUM_ALLOC Dup (0)
Tb_Prior Dw NUM_ALLOC Dup (0)
Tarea_Act Dw 0
Tarea_Sig Dw ?
Psp_Cancel Dw ?

Tb_Bk_Mem Dw NUM_BK_MAX Dup(?)

StsInt00 Dw 8 Dup (0)
StsInt08 Dw 8 Dup (0)
StsInt09 Dw 8 Dup (0)
StsInt0B Dw 8 Dup (0)
StsInt0C Dw 8 Dup (0)
StsInt10 Dw 8 Dup (0)
StsInt13 Dw 8 Dup (0)
StsInt16 Dw 8 Dup (0)
StsInt21 Dw 8 Dup (0)
StsInt2F Dw 8 Dup (0)
HoraI Dw 16 Dup (0)
HoraF Dw 16 Dup (0)

Rc Db ?

Tareas_Activas Db 0
Activar_Task Db 0
Timer_Activo Db 0

Ind_13 Db 0

Pagina Db 0
Color Db 0Bh
Interrup Db 0

Msg_CANCEL Db ' PSP: ['
xPSP Db 'xxxx] ',0
Msg_Final Db 'FINALIZADO.',0
Msg_Sts Db 'Pulse para ver estadisticas ',0
Pos_Tsk Dw 0943h
Txt_Rc Db '[Rc='
xRc Db 'xxh]',0
Tx_Task Db 'TASK : '
N_Task Db '0',0

Hora_Inicio Db 'Inicio : '
Hi Db 'xx:xx:xx,xx',0
Hora_Fin Db 'Final : '
Hf Db 'xx:xx:xx,xx',0
Cpp Dw 0
Coord Dw 0

TInt00a Db 'Int.'
xxa Db ' H:'
xInt00 Db ' ',0
sxxa Db '0008090B0C101316212F'
Inch Db ?
Incl Db ?
Msg_Error1 Db 13,10,13,10,'No encontrado.',07,'$'
Msg_Error2 Db 13,10,13,10,'Error lib. memoria.',07,'$'
Txt_Pgm Db 'PROGRAMA [Return=FIN] : $'
Txt_Param Db 'Parametros : $'
Txt_Prior Db 'Prioridad [1-15] : $'
Buffer Db 64,0,64 dup(?)
BufferP Db 3,0,3 dup(?)
Msg_Prior Db 'PRTY=['
Prty Db 'xx]',0
;
BuffPrm Db 128
Param Db 0
Db 0Dh,127 Dup (' ')
;
Dpb1 Dw 0
Orden Dw Offset Param
Dw 0
FCB1 Dw -1
Dw -1
FCB2 Dw -1
Dw -1
Stk1 Dw 0
Dw 0
Inic1 Dw 0
Dw 0
Dd 0

Conta_Pgms Dw -1
Pos_Pgm Dw 0043h
Despl_24 Dw ?

;

Main0:
Mov Cs:[Tb_PSP],Ds

Mov Ax,3301h
Mov Dl,0
Int 21h

Mov Ax,Cs
Mov Ss,Ax
Mov Sp,Offset Stack_M

Mov Ax,3500h
Int 21h

Mov Word Ptr Cs:Old_00,Bx
Mov Word Ptr Cs:Old_00[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_00
Mov Ax,2500h
Int 21h

Mov Ax,3508h
Int 21h

Mov Word Ptr Cs:Old_08,Bx
Mov Word Ptr Cs:Old_08[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_08
Mov Ax,2508h
Int 21h

Mov Ax,3509h
Int 21h

Mov Word Ptr Cs:Old_09,Bx
Mov Word Ptr Cs:Old_09[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_09
Mov Ax,2509h
Int 21h

Mov Ax,350Bh
Int 21h

Mov Word Ptr Cs:Old_0B,Bx
Mov Word Ptr Cs:Old_0B[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_0B
Mov Ax,250Bh
Int 21h

Mov Ax,350Ch
Int 21h

Mov Word Ptr Cs:Old_0C,Bx
Mov Word Ptr Cs:Old_0C[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_0C
Mov Ax,250Ch
Int 21h

Mov Ax,3510h
Int 21h

Mov Word Ptr Cs:Old_10,Bx
Mov Word Ptr Cs:Old_10[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_10
Mov Ax,2510h
Int 21h

Mov Ax,3513h
Int 21h

Mov Word Ptr Cs:Old_13,Bx
Mov Word Ptr Cs:Old_13[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_13
Mov Ax,2513h
Int 21h

Mov Ax,3516h
Int 21h

Mov Word Ptr Cs:Old_16,Bx
Mov Word Ptr Cs:Old_16[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_16
Mov Ax,2516h
Int 21h

Mov Ax,3521h
Int 21h

Mov Word Ptr Cs:Old_21,Bx
Mov Word Ptr Cs:Old_21[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_21
Mov Ax,2521h
Int 21h

Mov Ax,352Fh
Int 21h

Mov Word Ptr Cs:Old_2F,Bx
Mov Word Ptr Cs:Old_2F[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_2F
Mov Ax,252Fh
Int 21h

Mov Ax,5D06h
Int 21h

Mov Word Ptr Cs:[Direc_SDA],Si
Mov Word Ptr Cs:[Direc_SDA][2],Ds
Mov Cs:[Length_SDA],Cx

Push Cs
Pop Ds

Xor Cx,Cx
Mov Ax,Length_SDA
Mov Bx,NUM_ALLOC
Mul Bx
Add Ax,Offset Save_Areas - Offset Prog + 15
Mov Bx,Ax
Shr Bx,4
Mov Ah,4Ah
Int 21h

Xor Bx,Bx
Call GuardaSaveAreas

SALVA Save_Regs

Call AsignarMemoria

Call ConstruirP7

Jmp Carga_Pgms
;
Desbto Db ' Desbordamiento de divisi¢n$'

OUR_00 PROC FAR

Mov Cs:[Timer_Activo],0
Mov Al,20h
Out 20h,Al
Mov Cs:[Interrup],0
Call GuardarSts
Push Cs
Pop Ds
Mov Dx,Offset Desbto
Mov Ah,09
Pushf
Call Dword Ptr CS:[Old_21]
Mov Ax,4CFFh
Int 21h

OUR_00 ENDP

OUR_09 PROC FAR

Pushf
Mov Cs:[Interrup],09
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_09]

OUR_09 ENDP

OUR_0B PROC FAR

Pushf
Mov Cs:[Interrup],0Bh
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_0B]

OUR_0B ENDP

OUR_0C PROC FAR

Pushf
Mov Cs:[Interrup],0Ch
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_0C]

OUR_0C ENDP

OUR_10 PROC FAR

Pushf
Mov Cs:[Interrup],10h
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_10]

OUR_10 ENDP

OUR_13 PROC FAR

Pushf
Mov Cs:[Ind_13],1
Mov Cs:[Interrup],13h
Call GuardarSts
Popf
Pushf
Call Dword Ptr CS:[Old_13]
Mov Cs:[Ind_13],0

Retf 2

OUR_13 ENDP

OUR_16 PROC FAR

Pushf
Mov Cs:[Interrup],16h
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_16]

OUR_16 ENDP

OUR_2F PROC FAR

Pushf
Mov Cs:[Interrup],2Fh
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_2F]

OUR_2F ENDP

OUR_21 PROC FAR

Pushf
Mov Cs:[Interrup],21h
Call GuardarSts
Cmp Cs:[Ind_13],1
Je End21
Cmp Ah,4Ch
Jne Int21_Normal
Jmp End_Task
Int21_Normal:
Cmp Cs:[Activar_Task],1
Je Cont_21

End21:
Popf
Jmp Dword Ptr Cs:[Old_21]

Cont_21:
Mov Cs:[Activar_Task],0
Mov Cs:[Timer_Activo],0
Popf
Pushf
Call Dword Ptr Cs:[Old_21]
SALVA Wrk_Regs
Add Cs:[Wrk_Regs][18],6
Mov Ax,Cs
Mov Ds,Ax
Mov Es,Ax
Mov Si,Tarea_Act
Shl Si,2

Pop Save_Dir[Si]
Pop Save_Dir[Si][2]
Add Sp,2

Mov Di,Offset Save_Regs
Xor Dx,Dx
Mov Ax,Tarea_Act
Mov Bx,24
Mul Bx
Add Di,Ax
Mov Si,Offset Wrk_Regs
Mov Cx,12
Cld
Rep Movsw

Mov Bx,Tarea_Act
Call GuardaSaveAreas

Saltar_P_Activo:
Mov Si,Tarea_Sig
Dec Si
Shl Si,2
Cmp HoraI[Si],0
Jne H_calc
Mov Ah,2Ch
Pushf
Call Dword Ptr [Old_21]
Xchg Ch,Cl
Mov HoraI[Si],Cx
Xchg Dh,Dl
Mov HoraI[Si][2],Dx
H_calc:
Mov Bx,Tarea_Sig
Mov Tarea_Act,Bx
Call RecuperaSaveAreas

Mov Si,Tarea_Act
Shl Si,2
Mov Ax,Save_Dir[Si]
Mov Wrk_Dir,Ax
Mov Ax,Save_Dir[Si][2]
Mov Wrk_Dir[2],Ax

Xor Dx,Dx
Mov Ax,Tarea_Act
Mov Bx,24
Mul Bx
Mov Si,Ax
RECUPERA Save_Regs[Si]
Mov Cs:[Timer_Activo],1
Jmp Dword Ptr Cs:[Wrk_Dir]

End_Task:
Mov Cs:[Activar_Task],0
Mov Cs:[Timer_Activo],0
XPUSH <Ax, Cx, Di, Ds, Es>
Push Cs
Pop Ds
Mov Rc,Al
Les Di,Dword Ptr [Direc_SDA]
Mov Ax,Es:[Di+10h]
Cmp Ax,0
Je Fin_NoLoc
Mov Es,Ax
Mov Es:[0Ah],Offset Rut_Finalizacion
Mov Es:[0Ch],Cs
Mov Psp_CANCEL,Ax
Push Cs
Pop Es
Mov Di,Offset Tb_PSP
Mov Cx,NUM_ALLOC
Cld
Repne Scasw
Jne Fin_NoLoc
Sub Di,2+Offset Tb_PSP
Shr Di,1
Mov Tb_Task[Di],0
Fin_NoLoc:
XPOP <Es, Ds, Di, Cx, Ax>
Popf
Jmp Dword Ptr Cs:[Old_21]



Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



"Javier García" wrote in message
news:
"JM Tella Llop [MVP Windows]"

por detras por delante...vaya un lenguaje muy tecnico..si señor.

Todavia estoy esperando que tu o cualquier mvp de estos grupos, haya
hecho algun programa de ayuda y tal...o es que no sabes programar??

Uno solo uno..no un script...un programa...aunqeu sea Hello World!!!!

jejeje!!!!

http://www.winternals.com/index.asp : de toda la vida, legal y sin
posibilidad de que te "la claven" por detrás. :-))))





Respuesta Responder a este mensaje
#12 JM Tella Llop [MVP Windows]
10/02/2005 - 17:56 | Informe spam
.286
;- MTASK --
; (c) 1993 Jose M. Tella
; Creaci¢n : Jun. 1993
;
; - Esqueleto base para gesti¢n de MULTITASKING en DOS
;

NUM_TASK EQU 4 ;Al Aumentarse disminuyen los recursos
;de memoria.


;- Definici¢n de MACROS --
XPUSH MACRO regmem
IRP rm, <regmem>
PUSH rm
ENDM
ENDM

XPOP MACRO regmem
IRP rm, <regmem>
POP rm
ENDM
ENDM

SALVA MACRO Area
Mov Cs:Area,Ax
Mov Cs:Area[2],Bx
Mov Cs:Area[4],Cx
Mov Cs:Area[6],Dx
Mov Cs:Area[8],Si
Mov Cs:Area[10],Di
Mov Cs:Area[12],Es
Mov Cs:Area[14],Ds
Mov Cs:Area[16],Ss
Mov Cs:Area[18],Sp
Mov Cs:Area[20],Bp
Pushf
Pop Cs:Area[22]
ENDM

RECUPERA MACRO Area
Mov Ax,Cs:Area
Mov Bx,Cs:Area[2]
Mov Cx,Cs:Area[4]
Mov Dx,Cs:Area[6]
Mov Di,Cs:Area[10]
Mov Es,Cs:Area[12]
Mov Ds,Cs:Area[14]
Mov Ss,Cs:Area[16]
Mov Sp,Cs:Area[18]
Mov Bp,Cs:Area[20]
Push Cs:Area[22]
Popf
Mov Si,Cs:Area[8]
ENDM
;-
PGROUP GROUP PROG
PROG Segment Word PUBLIC 'PROG'
Assume Cs:PROG,Ds:PROG
Org 100h

Main:
Jmp Main0

;-- Data Area --
EVEN

Dw 128 Dup (?)
Stack_M EQU $
Direc_SDA Dd ?
Length_SDA Dw ?

Old_00 Dd ?
Old_08 Dd ?
Old_09 Dd ?
Old_0B Dd ?
Old_0C Dd ?
Old_10 Dd ?
Old_16 Dd ?
Old_13 Dd ?
Old_21 Dd ?
Old_2F Dd ?


NUM_BK_MAX EQU NUM_TASK
NUM_ALLOC EQU NUM_TASK+1
Wrk_Regs Dw 12 Dup (?)
Wrk_Dir Dw 2 Dup (?)
Save_Regs Dw 12*NUM_ALLOC Dup (?)
Save_Dir Dw 2*NUM_ALLOC Dup (?)
Tb_Task Db NUM_ALLOC Dup (0),0,0
Tb_PSP Dw NUM_ALLOC Dup (0),0
Tb_Conta Dw NUM_ALLOC Dup (0)
Tb_Prior Dw NUM_ALLOC Dup (0)
Tarea_Act Dw 0
Tarea_Sig Dw ?
Psp_Cancel Dw ?

Tb_Bk_Mem Dw NUM_BK_MAX Dup(?)

StsInt00 Dw 8 Dup (0)
StsInt08 Dw 8 Dup (0)
StsInt09 Dw 8 Dup (0)
StsInt0B Dw 8 Dup (0)
StsInt0C Dw 8 Dup (0)
StsInt10 Dw 8 Dup (0)
StsInt13 Dw 8 Dup (0)
StsInt16 Dw 8 Dup (0)
StsInt21 Dw 8 Dup (0)
StsInt2F Dw 8 Dup (0)
HoraI Dw 16 Dup (0)
HoraF Dw 16 Dup (0)

Rc Db ?

Tareas_Activas Db 0
Activar_Task Db 0
Timer_Activo Db 0

Ind_13 Db 0

Pagina Db 0
Color Db 0Bh
Interrup Db 0

Msg_CANCEL Db ' PSP: ['
xPSP Db 'xxxx] ',0
Msg_Final Db 'FINALIZADO.',0
Msg_Sts Db 'Pulse para ver estadisticas ',0
Pos_Tsk Dw 0943h
Txt_Rc Db '[Rc='
xRc Db 'xxh]',0
Tx_Task Db 'TASK : '
N_Task Db '0',0

Hora_Inicio Db 'Inicio : '
Hi Db 'xx:xx:xx,xx',0
Hora_Fin Db 'Final : '
Hf Db 'xx:xx:xx,xx',0
Cpp Dw 0
Coord Dw 0

TInt00a Db 'Int.'
xxa Db ' H:'
xInt00 Db ' ',0
sxxa Db '0008090B0C101316212F'
Inch Db ?
Incl Db ?
Msg_Error1 Db 13,10,13,10,'No encontrado.',07,'$'
Msg_Error2 Db 13,10,13,10,'Error lib. memoria.',07,'$'
Txt_Pgm Db 'PROGRAMA [Return=FIN] : $'
Txt_Param Db 'Parametros : $'
Txt_Prior Db 'Prioridad [1-15] : $'
Buffer Db 64,0,64 dup(?)
BufferP Db 3,0,3 dup(?)
Msg_Prior Db 'PRTY=['
Prty Db 'xx]',0
;
BuffPrm Db 128
Param Db 0
Db 0Dh,127 Dup (' ')
;
Dpb1 Dw 0
Orden Dw Offset Param
Dw 0
FCB1 Dw -1
Dw -1
FCB2 Dw -1
Dw -1
Stk1 Dw 0
Dw 0
Inic1 Dw 0
Dw 0
Dd 0

Conta_Pgms Dw -1
Pos_Pgm Dw 0043h
Despl_24 Dw ?

;

Main0:
Mov Cs:[Tb_PSP],Ds

Mov Ax,3301h
Mov Dl,0
Int 21h

Mov Ax,Cs
Mov Ss,Ax
Mov Sp,Offset Stack_M

Mov Ax,3500h
Int 21h

Mov Word Ptr Cs:Old_00,Bx
Mov Word Ptr Cs:Old_00[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_00
Mov Ax,2500h
Int 21h

Mov Ax,3508h
Int 21h

Mov Word Ptr Cs:Old_08,Bx
Mov Word Ptr Cs:Old_08[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_08
Mov Ax,2508h
Int 21h

Mov Ax,3509h
Int 21h

Mov Word Ptr Cs:Old_09,Bx
Mov Word Ptr Cs:Old_09[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_09
Mov Ax,2509h
Int 21h

Mov Ax,350Bh
Int 21h

Mov Word Ptr Cs:Old_0B,Bx
Mov Word Ptr Cs:Old_0B[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_0B
Mov Ax,250Bh
Int 21h

Mov Ax,350Ch
Int 21h

Mov Word Ptr Cs:Old_0C,Bx
Mov Word Ptr Cs:Old_0C[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_0C
Mov Ax,250Ch
Int 21h

Mov Ax,3510h
Int 21h

Mov Word Ptr Cs:Old_10,Bx
Mov Word Ptr Cs:Old_10[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_10
Mov Ax,2510h
Int 21h

Mov Ax,3513h
Int 21h

Mov Word Ptr Cs:Old_13,Bx
Mov Word Ptr Cs:Old_13[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_13
Mov Ax,2513h
Int 21h

Mov Ax,3516h
Int 21h

Mov Word Ptr Cs:Old_16,Bx
Mov Word Ptr Cs:Old_16[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_16
Mov Ax,2516h
Int 21h

Mov Ax,3521h
Int 21h

Mov Word Ptr Cs:Old_21,Bx
Mov Word Ptr Cs:Old_21[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_21
Mov Ax,2521h
Int 21h

Mov Ax,352Fh
Int 21h

Mov Word Ptr Cs:Old_2F,Bx
Mov Word Ptr Cs:Old_2F[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_2F
Mov Ax,252Fh
Int 21h

Mov Ax,5D06h
Int 21h

Mov Word Ptr Cs:[Direc_SDA],Si
Mov Word Ptr Cs:[Direc_SDA][2],Ds
Mov Cs:[Length_SDA],Cx

Push Cs
Pop Ds

Xor Cx,Cx
Mov Ax,Length_SDA
Mov Bx,NUM_ALLOC
Mul Bx
Add Ax,Offset Save_Areas - Offset Prog + 15
Mov Bx,Ax
Shr Bx,4
Mov Ah,4Ah
Int 21h

Xor Bx,Bx
Call GuardaSaveAreas

SALVA Save_Regs

Call AsignarMemoria

Call ConstruirP7

Jmp Carga_Pgms
;
Desbto Db ' Desbordamiento de divisi¢n$'

OUR_00 PROC FAR

Mov Cs:[Timer_Activo],0
Mov Al,20h
Out 20h,Al
Mov Cs:[Interrup],0
Call GuardarSts
Push Cs
Pop Ds
Mov Dx,Offset Desbto
Mov Ah,09
Pushf
Call Dword Ptr CS:[Old_21]
Mov Ax,4CFFh
Int 21h

OUR_00 ENDP

OUR_09 PROC FAR

Pushf
Mov Cs:[Interrup],09
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_09]

OUR_09 ENDP

OUR_0B PROC FAR

Pushf
Mov Cs:[Interrup],0Bh
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_0B]

OUR_0B ENDP

OUR_0C PROC FAR

Pushf
Mov Cs:[Interrup],0Ch
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_0C]

OUR_0C ENDP

OUR_10 PROC FAR

Pushf
Mov Cs:[Interrup],10h
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_10]

OUR_10 ENDP

OUR_13 PROC FAR

Pushf
Mov Cs:[Ind_13],1
Mov Cs:[Interrup],13h
Call GuardarSts
Popf
Pushf
Call Dword Ptr CS:[Old_13]
Mov Cs:[Ind_13],0

Retf 2

OUR_13 ENDP

OUR_16 PROC FAR

Pushf
Mov Cs:[Interrup],16h
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_16]

OUR_16 ENDP

OUR_2F PROC FAR

Pushf
Mov Cs:[Interrup],2Fh
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_2F]

OUR_2F ENDP

OUR_21 PROC FAR

Pushf
Mov Cs:[Interrup],21h
Call GuardarSts
Cmp Cs:[Ind_13],1
Je End21
Cmp Ah,4Ch
Jne Int21_Normal
Jmp End_Task
Int21_Normal:
Cmp Cs:[Activar_Task],1
Je Cont_21

End21:
Popf
Jmp Dword Ptr Cs:[Old_21]

Cont_21:
Mov Cs:[Activar_Task],0
Mov Cs:[Timer_Activo],0
Popf
Pushf
Call Dword Ptr Cs:[Old_21]
SALVA Wrk_Regs
Add Cs:[Wrk_Regs][18],6
Mov Ax,Cs
Mov Ds,Ax
Mov Es,Ax
Mov Si,Tarea_Act
Shl Si,2

Pop Save_Dir[Si]
Pop Save_Dir[Si][2]
Add Sp,2

Mov Di,Offset Save_Regs
Xor Dx,Dx
Mov Ax,Tarea_Act
Mov Bx,24
Mul Bx
Add Di,Ax
Mov Si,Offset Wrk_Regs
Mov Cx,12
Cld
Rep Movsw

Mov Bx,Tarea_Act
Call GuardaSaveAreas

Saltar_P_Activo:
Mov Si,Tarea_Sig
Dec Si
Shl Si,2
Cmp HoraI[Si],0
Jne H_calc
Mov Ah,2Ch
Pushf
Call Dword Ptr [Old_21]
Xchg Ch,Cl
Mov HoraI[Si],Cx
Xchg Dh,Dl
Mov HoraI[Si][2],Dx
H_calc:
Mov Bx,Tarea_Sig
Mov Tarea_Act,Bx
Call RecuperaSaveAreas

Mov Si,Tarea_Act
Shl Si,2
Mov Ax,Save_Dir[Si]
Mov Wrk_Dir,Ax
Mov Ax,Save_Dir[Si][2]
Mov Wrk_Dir[2],Ax

Xor Dx,Dx
Mov Ax,Tarea_Act
Mov Bx,24
Mul Bx
Mov Si,Ax
RECUPERA Save_Regs[Si]
Mov Cs:[Timer_Activo],1
Jmp Dword Ptr Cs:[Wrk_Dir]

End_Task:
Mov Cs:[Activar_Task],0
Mov Cs:[Timer_Activo],0
XPUSH <Ax, Cx, Di, Ds, Es>
Push Cs
Pop Ds
Mov Rc,Al
Les Di,Dword Ptr [Direc_SDA]
Mov Ax,Es:[Di+10h]
Cmp Ax,0
Je Fin_NoLoc
Mov Es,Ax
Mov Es:[0Ah],Offset Rut_Finalizacion
Mov Es:[0Ch],Cs
Mov Psp_CANCEL,Ax
Push Cs
Pop Es
Mov Di,Offset Tb_PSP
Mov Cx,NUM_ALLOC
Cld
Repne Scasw
Jne Fin_NoLoc
Sub Di,2+Offset Tb_PSP
Shr Di,1
Mov Tb_Task[Di],0
Fin_NoLoc:
XPOP <Es, Ds, Di, Cx, Ax>
Popf
Jmp Dword Ptr Cs:[Old_21]



Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



"Javier García" wrote in message
news:
"JM Tella Llop [MVP Windows]"

por detras por delante...vaya un lenguaje muy tecnico..si señor.

Todavia estoy esperando que tu o cualquier mvp de estos grupos, haya
hecho algun programa de ayuda y tal...o es que no sabes programar??

Uno solo uno..no un script...un programa...aunqeu sea Hello World!!!!

jejeje!!!!

http://www.winternals.com/index.asp : de toda la vida, legal y sin
posibilidad de que te "la claven" por detrás. :-))))





Respuesta Responder a este mensaje
#13 JM Tella Llop [MVP Windows]
10/02/2005 - 17:56 | Informe spam
.286
;- MTASK --
; (c) 1993 Jose M. Tella
; Creaci¢n : Jun. 1993
;
; - Esqueleto base para gesti¢n de MULTITASKING en DOS
;

NUM_TASK EQU 4 ;Al Aumentarse disminuyen los recursos
;de memoria.


;- Definici¢n de MACROS --
XPUSH MACRO regmem
IRP rm, <regmem>
PUSH rm
ENDM
ENDM

XPOP MACRO regmem
IRP rm, <regmem>
POP rm
ENDM
ENDM

SALVA MACRO Area
Mov Cs:Area,Ax
Mov Cs:Area[2],Bx
Mov Cs:Area[4],Cx
Mov Cs:Area[6],Dx
Mov Cs:Area[8],Si
Mov Cs:Area[10],Di
Mov Cs:Area[12],Es
Mov Cs:Area[14],Ds
Mov Cs:Area[16],Ss
Mov Cs:Area[18],Sp
Mov Cs:Area[20],Bp
Pushf
Pop Cs:Area[22]
ENDM

RECUPERA MACRO Area
Mov Ax,Cs:Area
Mov Bx,Cs:Area[2]
Mov Cx,Cs:Area[4]
Mov Dx,Cs:Area[6]
Mov Di,Cs:Area[10]
Mov Es,Cs:Area[12]
Mov Ds,Cs:Area[14]
Mov Ss,Cs:Area[16]
Mov Sp,Cs:Area[18]
Mov Bp,Cs:Area[20]
Push Cs:Area[22]
Popf
Mov Si,Cs:Area[8]
ENDM
;-
PGROUP GROUP PROG
PROG Segment Word PUBLIC 'PROG'
Assume Cs:PROG,Ds:PROG
Org 100h

Main:
Jmp Main0

;-- Data Area --
EVEN

Dw 128 Dup (?)
Stack_M EQU $
Direc_SDA Dd ?
Length_SDA Dw ?

Old_00 Dd ?
Old_08 Dd ?
Old_09 Dd ?
Old_0B Dd ?
Old_0C Dd ?
Old_10 Dd ?
Old_16 Dd ?
Old_13 Dd ?
Old_21 Dd ?
Old_2F Dd ?


NUM_BK_MAX EQU NUM_TASK
NUM_ALLOC EQU NUM_TASK+1
Wrk_Regs Dw 12 Dup (?)
Wrk_Dir Dw 2 Dup (?)
Save_Regs Dw 12*NUM_ALLOC Dup (?)
Save_Dir Dw 2*NUM_ALLOC Dup (?)
Tb_Task Db NUM_ALLOC Dup (0),0,0
Tb_PSP Dw NUM_ALLOC Dup (0),0
Tb_Conta Dw NUM_ALLOC Dup (0)
Tb_Prior Dw NUM_ALLOC Dup (0)
Tarea_Act Dw 0
Tarea_Sig Dw ?
Psp_Cancel Dw ?

Tb_Bk_Mem Dw NUM_BK_MAX Dup(?)

StsInt00 Dw 8 Dup (0)
StsInt08 Dw 8 Dup (0)
StsInt09 Dw 8 Dup (0)
StsInt0B Dw 8 Dup (0)
StsInt0C Dw 8 Dup (0)
StsInt10 Dw 8 Dup (0)
StsInt13 Dw 8 Dup (0)
StsInt16 Dw 8 Dup (0)
StsInt21 Dw 8 Dup (0)
StsInt2F Dw 8 Dup (0)
HoraI Dw 16 Dup (0)
HoraF Dw 16 Dup (0)

Rc Db ?

Tareas_Activas Db 0
Activar_Task Db 0
Timer_Activo Db 0

Ind_13 Db 0

Pagina Db 0
Color Db 0Bh
Interrup Db 0

Msg_CANCEL Db ' PSP: ['
xPSP Db 'xxxx] ',0
Msg_Final Db 'FINALIZADO.',0
Msg_Sts Db 'Pulse para ver estadisticas ',0
Pos_Tsk Dw 0943h
Txt_Rc Db '[Rc='
xRc Db 'xxh]',0
Tx_Task Db 'TASK : '
N_Task Db '0',0

Hora_Inicio Db 'Inicio : '
Hi Db 'xx:xx:xx,xx',0
Hora_Fin Db 'Final : '
Hf Db 'xx:xx:xx,xx',0
Cpp Dw 0
Coord Dw 0

TInt00a Db 'Int.'
xxa Db ' H:'
xInt00 Db ' ',0
sxxa Db '0008090B0C101316212F'
Inch Db ?
Incl Db ?
Msg_Error1 Db 13,10,13,10,'No encontrado.',07,'$'
Msg_Error2 Db 13,10,13,10,'Error lib. memoria.',07,'$'
Txt_Pgm Db 'PROGRAMA [Return=FIN] : $'
Txt_Param Db 'Parametros : $'
Txt_Prior Db 'Prioridad [1-15] : $'
Buffer Db 64,0,64 dup(?)
BufferP Db 3,0,3 dup(?)
Msg_Prior Db 'PRTY=['
Prty Db 'xx]',0
;
BuffPrm Db 128
Param Db 0
Db 0Dh,127 Dup (' ')
;
Dpb1 Dw 0
Orden Dw Offset Param
Dw 0
FCB1 Dw -1
Dw -1
FCB2 Dw -1
Dw -1
Stk1 Dw 0
Dw 0
Inic1 Dw 0
Dw 0
Dd 0

Conta_Pgms Dw -1
Pos_Pgm Dw 0043h
Despl_24 Dw ?

;

Main0:
Mov Cs:[Tb_PSP],Ds

Mov Ax,3301h
Mov Dl,0
Int 21h

Mov Ax,Cs
Mov Ss,Ax
Mov Sp,Offset Stack_M

Mov Ax,3500h
Int 21h

Mov Word Ptr Cs:Old_00,Bx
Mov Word Ptr Cs:Old_00[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_00
Mov Ax,2500h
Int 21h

Mov Ax,3508h
Int 21h

Mov Word Ptr Cs:Old_08,Bx
Mov Word Ptr Cs:Old_08[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_08
Mov Ax,2508h
Int 21h

Mov Ax,3509h
Int 21h

Mov Word Ptr Cs:Old_09,Bx
Mov Word Ptr Cs:Old_09[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_09
Mov Ax,2509h
Int 21h

Mov Ax,350Bh
Int 21h

Mov Word Ptr Cs:Old_0B,Bx
Mov Word Ptr Cs:Old_0B[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_0B
Mov Ax,250Bh
Int 21h

Mov Ax,350Ch
Int 21h

Mov Word Ptr Cs:Old_0C,Bx
Mov Word Ptr Cs:Old_0C[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_0C
Mov Ax,250Ch
Int 21h

Mov Ax,3510h
Int 21h

Mov Word Ptr Cs:Old_10,Bx
Mov Word Ptr Cs:Old_10[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_10
Mov Ax,2510h
Int 21h

Mov Ax,3513h
Int 21h

Mov Word Ptr Cs:Old_13,Bx
Mov Word Ptr Cs:Old_13[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_13
Mov Ax,2513h
Int 21h

Mov Ax,3516h
Int 21h

Mov Word Ptr Cs:Old_16,Bx
Mov Word Ptr Cs:Old_16[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_16
Mov Ax,2516h
Int 21h

Mov Ax,3521h
Int 21h

Mov Word Ptr Cs:Old_21,Bx
Mov Word Ptr Cs:Old_21[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_21
Mov Ax,2521h
Int 21h

Mov Ax,352Fh
Int 21h

Mov Word Ptr Cs:Old_2F,Bx
Mov Word Ptr Cs:Old_2F[2],Es

Push Cs
Pop Es

Mov Dx,Offset OUR_2F
Mov Ax,252Fh
Int 21h

Mov Ax,5D06h
Int 21h

Mov Word Ptr Cs:[Direc_SDA],Si
Mov Word Ptr Cs:[Direc_SDA][2],Ds
Mov Cs:[Length_SDA],Cx

Push Cs
Pop Ds

Xor Cx,Cx
Mov Ax,Length_SDA
Mov Bx,NUM_ALLOC
Mul Bx
Add Ax,Offset Save_Areas - Offset Prog + 15
Mov Bx,Ax
Shr Bx,4
Mov Ah,4Ah
Int 21h

Xor Bx,Bx
Call GuardaSaveAreas

SALVA Save_Regs

Call AsignarMemoria

Call ConstruirP7

Jmp Carga_Pgms
;
Desbto Db ' Desbordamiento de divisi¢n$'

OUR_00 PROC FAR

Mov Cs:[Timer_Activo],0
Mov Al,20h
Out 20h,Al
Mov Cs:[Interrup],0
Call GuardarSts
Push Cs
Pop Ds
Mov Dx,Offset Desbto
Mov Ah,09
Pushf
Call Dword Ptr CS:[Old_21]
Mov Ax,4CFFh
Int 21h

OUR_00 ENDP

OUR_09 PROC FAR

Pushf
Mov Cs:[Interrup],09
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_09]

OUR_09 ENDP

OUR_0B PROC FAR

Pushf
Mov Cs:[Interrup],0Bh
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_0B]

OUR_0B ENDP

OUR_0C PROC FAR

Pushf
Mov Cs:[Interrup],0Ch
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_0C]

OUR_0C ENDP

OUR_10 PROC FAR

Pushf
Mov Cs:[Interrup],10h
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_10]

OUR_10 ENDP

OUR_13 PROC FAR

Pushf
Mov Cs:[Ind_13],1
Mov Cs:[Interrup],13h
Call GuardarSts
Popf
Pushf
Call Dword Ptr CS:[Old_13]
Mov Cs:[Ind_13],0

Retf 2

OUR_13 ENDP

OUR_16 PROC FAR

Pushf
Mov Cs:[Interrup],16h
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_16]

OUR_16 ENDP

OUR_2F PROC FAR

Pushf
Mov Cs:[Interrup],2Fh
Call GuardarSts
Popf
Jmp Dword Ptr CS:[Old_2F]

OUR_2F ENDP

OUR_21 PROC FAR

Pushf
Mov Cs:[Interrup],21h
Call GuardarSts
Cmp Cs:[Ind_13],1
Je End21
Cmp Ah,4Ch
Jne Int21_Normal
Jmp End_Task
Int21_Normal:
Cmp Cs:[Activar_Task],1
Je Cont_21

End21:
Popf
Jmp Dword Ptr Cs:[Old_21]

Cont_21:
Mov Cs:[Activar_Task],0
Mov Cs:[Timer_Activo],0
Popf
Pushf
Call Dword Ptr Cs:[Old_21]
SALVA Wrk_Regs
Add Cs:[Wrk_Regs][18],6
Mov Ax,Cs
Mov Ds,Ax
Mov Es,Ax
Mov Si,Tarea_Act
Shl Si,2

Pop Save_Dir[Si]
Pop Save_Dir[Si][2]
Add Sp,2

Mov Di,Offset Save_Regs
Xor Dx,Dx
Mov Ax,Tarea_Act
Mov Bx,24
Mul Bx
Add Di,Ax
Mov Si,Offset Wrk_Regs
Mov Cx,12
Cld
Rep Movsw

Mov Bx,Tarea_Act
Call GuardaSaveAreas

Saltar_P_Activo:
Mov Si,Tarea_Sig
Dec Si
Shl Si,2
Cmp HoraI[Si],0
Jne H_calc
Mov Ah,2Ch
Pushf
Call Dword Ptr [Old_21]
Xchg Ch,Cl
Mov HoraI[Si],Cx
Xchg Dh,Dl
Mov HoraI[Si][2],Dx
H_calc:
Mov Bx,Tarea_Sig
Mov Tarea_Act,Bx
Call RecuperaSaveAreas

Mov Si,Tarea_Act
Shl Si,2
Mov Ax,Save_Dir[Si]
Mov Wrk_Dir,Ax
Mov Ax,Save_Dir[Si][2]
Mov Wrk_Dir[2],Ax

Xor Dx,Dx
Mov Ax,Tarea_Act
Mov Bx,24
Mul Bx
Mov Si,Ax
RECUPERA Save_Regs[Si]
Mov Cs:[Timer_Activo],1
Jmp Dword Ptr Cs:[Wrk_Dir]

End_Task:
Mov Cs:[Activar_Task],0
Mov Cs:[Timer_Activo],0
XPUSH <Ax, Cx, Di, Ds, Es>
Push Cs
Pop Ds
Mov Rc,Al
Les Di,Dword Ptr [Direc_SDA]
Mov Ax,Es:[Di+10h]
Cmp Ax,0
Je Fin_NoLoc
Mov Es,Ax
Mov Es:[0Ah],Offset Rut_Finalizacion
Mov Es:[0Ch],Cs
Mov Psp_CANCEL,Ax
Push Cs
Pop Es
Mov Di,Offset Tb_PSP
Mov Cx,NUM_ALLOC
Cld
Repne Scasw
Jne Fin_NoLoc
Sub Di,2+Offset Tb_PSP
Shr Di,1
Mov Tb_Task[Di],0
Fin_NoLoc:
XPOP <Es, Ds, Di, Cx, Ax>
Popf
Jmp Dword Ptr Cs:[Old_21]



Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



"Javier García" wrote in message
news:
"JM Tella Llop [MVP Windows]"

por detras por delante...vaya un lenguaje muy tecnico..si señor.

Todavia estoy esperando que tu o cualquier mvp de estos grupos, haya
hecho algun programa de ayuda y tal...o es que no sabes programar??

Uno solo uno..no un script...un programa...aunqeu sea Hello World!!!!

jejeje!!!!

http://www.winternals.com/index.asp : de toda la vida, legal y sin
posibilidad de que te "la claven" por detrás. :-))))





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida