16位汇编 Hook int 0实例

来源:互联网 发布:华南师范网络教育官网 编辑:程序博客网 时间:2024/05/21 08:51

div除法溢出之后, 会调用中断0, 显示Divide overflow,


 我们修改中断向量表里对应的0号中断的处理地址, 将我们的代码执行起来, 达到hook的目的

assume cs:codecode segmentstart:;写入新的int 0地址mov ax,0mov es,axmov word ptr es:[0*4],0200h        mov word ptr es:[0*4+2],0;写入新的int 0中断过程的ShellCodemov ax,cs        mov ds,axmov si,offset display_startmov ax,0mov es,axmov di,0200hmov cx,offset display_end - offset display_startcld rep movsb        jmp display_end  ;跳转到除法溢出代码display_start:  jmp $+0ch       ;跳转到mov ax,0b800h  db 'hook int 0'    mov ax,0b800h  mov ds,ax    mov ax,0  mov es,ax  mov si,0202h    ;字符串的位置  mov bx,160*3  ;在屏幕上第三行显示  mov cx,0Ah    ;字符串10位          s:      mov al,es:[si]               inc si             mov ah, 0ch    ;红底黑字             mov ds:[bx],ax             add bx,2    loop s mov ax,4c00h      ;退出程序int 21h          display_end:nop  ;div除法溢出mov ax,1000hmov bh,01hdiv bh       ;退出程序        mov ax,4c00hint 21hcode endsend startend


显示hook int 0, 哈哈

0 0
原创粉丝点击