16位汇编 Hook int 0实例
div除法溢出之后, 会调用中断0, 显示Divide overflow,
我们修改中断向量表里对应的0号中断的处理地址, 将我们的代码执行起来, 达到hook的目的
assume cs:codecode segmentstart:;写入新的int 0地址mov ax,0mov es,axmov word ptr es:[0*4],0200hmov word ptr es:[0*4+2],0;写入新的int 0中断过程的ShellCodemov ax,csmov 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,0b800hdb 'hook int 0'mov ax,0b800hmov ds,axmov ax,0mov es,axmov 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 smov ax,4c00h ;退出程序int 21hdisplay_end:nop ;div除法溢出mov ax,1000hmov bh,01hdiv bh;退出程序mov ax,4c00h int 21hcode endsend startend
显示hook int 0, 哈哈
16位汇编 Hook int 0实例相关推荐
- 小谈16位汇编NEG求补指令
16位汇编,看到别人写的3行代码对一个32位数求补,举例子论证 NEG是求补指令,把他之后的操作数求补(先求反再加1) 本指令影响标志位CF.OF.SF.PF.ZF及AF. 有一个32位的数 高16位 ...
- 研究16位汇编NEG求补指令
转自: http://bbs.pediy.com/showthread.php?t=81209 [文章标题]: 研究16位汇编NEG求补指令 [文章作者]: hzmslx 我是个菜鸟··学16位汇 ...
- 手把手教你在64位Win7下部署16位汇编学习环境
实现方式是VirtualBox虚拟机+精简的32位xp系统.指导小白用,高手就直接跳过吧. 一.背景 初学者学习汇编语言通常是从16位汇编开始,但是现在的64位Win7系统明确表示不支持16位的程序. ...
- c语言将两个16位变为一个32位,16位汇编第六讲汇编指令详解第第三讲(示例代码)...
16位汇编第六讲汇编指令详解第第三讲 1.十进制调整指令 1. 十进制数调整指令对二进制运算的结果进行十进制调整,以得到十进制的运算结果 2.分成压缩BCD码和非压缩BCD码调整 简而言之: 以前的时 ...
- 16位汇编相关寄存器
文章目录 1 寄存器的组成部分 1.1 8086寄存器组成 1.2 8086处理器是小端模式 2 X86 16位汇编所涉及的寄存器 3 寄存器的用法 3.1 DS和ES 3.2 CS和IP 1 寄存器 ...
- 【汇编语言】16位汇编总结
16位汇编语言 学习操作系统前对汇编语言进行快速学习,参考汇编语言进行总结. Before Learning 进制: 字节和字: 字节,即Byte,是由八个位组成的一个单元,也就是8个bit组成1个B ...
- 16位汇编第第四讲常用的7种寻址方式
常用的7中寻址方式 昨天稍微讲了一下,立即数寻址,今天继续讲解寻址方式. (注意,这个属于简陋版的,写了4个小时的博客,也就是第一版,保存了一下,但是博客出问题了,重新打开后发现保存的内容没了,让我很 ...
- 16位汇编 int 10h和int 21h 显示字符串实例
int 10h 的9号功能是显示字符串 assume cs:codecode segmentstart:mov ah,2 ;置光标mov bh,0 ;第0页mov dh,1 ;dh中放行号mov dl ...
- 16位汇编 在代码段中使用栈
在代码段中使用栈, 置换 0123 0456 0789 0abc 0def 0fed 0cba 0987 0987 0cba 0fed 0def 0abc 0789 ...
最新文章
- FPGA的LVDS电平以及LVDS25电平能在HR Bank上使用吗?
- 2.1.2监测当前打印机状态
- SQL Server 语句查询手册
- 这五张PPT告诉你,如何打造无人驾驶“最强大脑”
- S3C6410移植u-boot-2010.3(2)基本的启动信息修改
- 黄聪:Linq初级班 Linq To XML体验(编程篇)
- python制作简单网页_怎么用python简单的制作一个网页
- 3d游戏项目实训一周总结
- Springboot+Vue实现仿课堂派
- 索尼公布电池召回计划 不局限于笔记本
- 通过关键字查询地理坐标(天地图)
- 摩托车高级驾驶员辅助系统(ADAS)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- MySQL数据库中.frm和.myi和.myd文件是什么文件?
- Mac 更新系统后无法使用git
- 什么是SQL注入攻击?
- 树莓派 和 电脑共用显示屏 无屏幕玩转树莓派
- 位置与地图(二)地图的使用以及标注地图
- 【U8+】用友U8+删除已经使用过的操作员
- 蓝桥杯 ADV168 算法提高 快乐司机(贪心 快排)(java)
- Qt 设置Widget背景图片并实现透明度的三种方式
热门文章
- OpenGL实现3D立体显示
- mysql中union与union all的区别
- myEclipse开发内存溢出解决办法myEclipse调整jvm内存大小java.lang.OutOfMemoryError: PermGen space及其解决方法...
- 【10】48. Rotate Image
- 获取mac地址方法之一 GetAdaptersInfo()
- plupload+artdialog实现多平台文件上传
- tablefunc 行转列
- 大四中软实习笔记201303011文件
- [课程复习] 数据结构之经典题目回顾 (一)选择题、填空题1
- SwiftUI之深入解析高级动画的几何效果GeometryEffect