终于搞定bochsdbg调试dos下保护模式程序
2010-03-01 09:30
316 查看
-----------------------------------------------------牢骚,不用看-----------------------------------
最近又回到了操作系统的研究,搞来搞去,发现自己基本啥都会,精的不多。这是好,还是不好,我现在也不知道,反正不能克制自己,看到有意思的东西就想弄弄。 主要的目标还是定于底层,照目前的发展来看,以后应用层肯定是web的天下,web式的操作系统应该是主流。但支持这个系统的底层系统也会不少,按我个人情况,写写c和汇编应是强处。快奔三的人了,感觉还是一玩是处,虽然一直在努力,也是一直没啥突破。
----------------------------------------------------正文开始---------------------------------------
相信很多人都被这个东东给困扰了吧,有看到网上其他高手提出的方案,死循环改eip之类,试了下,感觉不爽,昨天晚上在床上想了一下,白天利用上班时间给实现了,(嘿嘿),首先给图,这是调试,已在调试状态进入了保护模式。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/14/574e3d2271fef710675c51e2b4834eb1.jpg)
代码:
原理很简单,自己先设一个段,这个段可以用bochsdbg能断下来的,然后在段里面填shellcode,(也就是机器码) jmp offset:seg,跳回去,执行原来的代码。
最近又回到了操作系统的研究,搞来搞去,发现自己基本啥都会,精的不多。这是好,还是不好,我现在也不知道,反正不能克制自己,看到有意思的东西就想弄弄。 主要的目标还是定于底层,照目前的发展来看,以后应用层肯定是web的天下,web式的操作系统应该是主流。但支持这个系统的底层系统也会不少,按我个人情况,写写c和汇编应是强处。快奔三的人了,感觉还是一玩是处,虽然一直在努力,也是一直没啥突破。
----------------------------------------------------正文开始---------------------------------------
相信很多人都被这个东东给困扰了吧,有看到网上其他高手提出的方案,死循环改eip之类,试了下,感觉不爽,昨天晚上在床上想了一下,白天利用上班时间给实现了,(嘿嘿),首先给图,这是调试,已在调试状态进入了保护模式。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/14/574e3d2271fef710675c51e2b4834eb1.jpg)
代码:
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,跳回去,执行原来的代码。
相关文章推荐
- 终于搞定bochsdbg调试dos下保护模式程序
- 在Bochs的虚拟机中的FreeDos中调试保护模式的程序
- 用Bochs GUI Debugger调试保护模式程序
- 关于BOCHS调试保护模式程序的思路
- bochs调试保护模式程序
- bochsdbg调试保护模式程序的方法
- x86从实模式到保护模式学习记录之Bochsdbg
- VS2005下编译调试保护模式32位汇编程序总结
- VS2005下编译调试保护模式32位汇编程序总结
- linux-0.11调试教程,显示strat minix后不能进入保护模式的原因,看bochsout.txt
- bochs利用中断调试dos程序
- bochs调试DOS下程序
- 如何调试从实模式切换到保护模式的程序
- Self-Delete程序之Delphi版本,终于搞定了
- 带dos调试窗口的win32程序
- pmtest7的调试,从dos返回到bochs
- 在Win32程序中显示Dos调试窗口,可暂停(AllocConsole,WriteConsole,FreeConsole函数,GetStdHandle函数取得输入句柄)
- 基于MDK编程STM32程序无法使用,硬件仿真在汇编窗口看到停留在“0x0800XXXX BEAB BKPT 0xAB //进入调试模式”
- Android studio中如何利用Debug模式来调试程序
- windbg 如何在内核模式调试用户空间的程序