您的位置:首页 > 其它

终于搞定bochsdbg调试dos下保护模式程序

2010-03-01 09:30 253 查看
-----------------------------------------------------牢骚,不用看-----------------------------------

最近又回到了操作系统的研究,搞来搞去,发现自己基本啥都会,精的不多。这是好,还是不好,我现在也不知道,反正不能克制自己,看到有意思的东西就想弄弄。 主要的目标还是定于底层,照目前的发展来看,以后应用层肯定是web的天下,web式的操作系统应该是主流。但支持这个系统的底层系统也会不少,按我个人情况,写写c和汇编应是强处。快奔三的人了,感觉还是一玩是处,虽然一直在努力,也是一直没啥突破。

----------------------------------------------------正文开始---------------------------------------

相信很多人都被这个东东给困扰了吧,有看到网上其他高手提出的方案,死循环改eip之类,试了下,感觉不爽,昨天晚上在床上想了一下,白天利用上班时间给实现了,(嘿嘿),首先给图,这是调试,已在调试状态进入了保护模式。



代码:

LABLE_BEGIN:
mov  dx, cs
mov  cx, 400h  ;;400h,自己乱定的,可以改,这个就是调试时用的断点
mov  ds, cx
mov  byte [ds:0], 00eah    ;;ea是jmp的机器码,加下面两句就是 jmp offset:seg,也就是跳回
mov  word [ds:1],LABLE_REAL_START
mov  word [ds:3], dx
jmp  400h:0h           ;;跳到断点
LABLE_REAL_START:
原来的代码

原理很简单,自己先设一个段,这个段可以用bochsdbg能断下来的,然后在段里面填shellcode,(也就是机器码) jmp offset:seg,跳回去,执行原来的代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: