标签: bochs

在Mac OS x Snow Leopard上编译Bochs

有人能够在Snow Leopard下编译Bochs模拟器.Leopard对我来说很好,但在Snow Leopard下我遇到了很多与Carbon库有关的问题......

好的,还有一些信息是请求.

  • 我在shell上用make编译; 标准建立过程随着bochs来源而来
  • 我成功地能够针对10.5 SDK进行编译.不幸的是,它没有在Snow Leopard下运行......总是坠毁
  • 然后我从SnowLeopard CD安装了最新的XCode,并针对10.6 SDK进行了编译; 除了isysroot标志指向10.6而不是10.5现在编译器有问题找到一些碳标题时没有改变...(-framework Carbon作为参数包含在g ++中)

这里的错误......在编写bochs的碳基gui时失败了:

g++ -c  -I.. -I./.. -I../iodev -I./../iodev -I../instrument/stubs -I./../instrument/stubs -pipe -O3 -isysroot /Developer/SDKs/MacOSX10.6.sdk -framework Carbon -fomit-frame-pointer -finline-functions -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-labels=16 -falign-loops-max-skip=15 -falign-jumps-max-skip=15 -fprefetch-loop-arrays  -fpascal-strings -fno-common -Wno-four-char-constants -Wno-unknown-pragmas -Dmacintosh -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES    carbon.cc -o carbon.o
carbon.cc:154: warning: non-local variable ‘<anonymous enum> last_screen_state’ uses anonymous type
carbon.cc:154: warning: non-local variable ‘<anonymous enum> screen_state’ uses anonymous type
carbon.cc:163: error: ‘CIconHandle’ does not name a type
carbon.cc: In function …
Run Code Online (Sandbox Code Playgroud)

macos macos-carbon osx-snow-leopard bochs

9
推荐指数
3
解决办法
7272
查看次数

如何使用Bochs运行汇编代码?

我想使用Bochs作为8086模拟器.是否有捷径可寻?我想要的是像emu8086(http://www.emu8086.com/).

assembly emulation bochs

7
推荐指数
3
解决办法
4857
查看次数

CS寄存器在启动时的值是多少?

我是汇编语言的绿手.这些天我用bochs来模拟虚拟软盘的启动过程.但我不知道的一件事CS是系统初始化时寄存器值是什么.

;;  init registers

org 0x7c00

BaseOfStack equ 0x7c00

Label_Start:

mov ax, cs
mov ds, ax
mov es, ax
mov ss, ax
mov sp, BaseOfStack

;; clear screen

mov ax, 0600h
mov bx, 0700h
mov cx, 0
mov dx, 0184h
int 10h
Run Code Online (Sandbox Code Playgroud)

上面的代码只是其中的一部分.ORG执行命令时,指令的CS寄存器值是多少mov ax, cs.它与0x7c00相同吗?谢谢.

下面是bochsrc配置:

romimage: file="$BXSHARE/BIOS-bochs-latest"
vgaromimage: file="$BXSHARE/VGABIOS-lgpl-latest"
boot: floppy
floppy_bootsig_check: disabled=0
floppya: type=1_44, 1_44="myboot.img", status=inserted
pci: enabled=1, chipset=i440fx
vga: extension=vbe, update_freq=15
cpu: ips=15000000
log: bochsout.txt
mouse: enabled=0 …
Run Code Online (Sandbox Code Playgroud)

boot assembly bios bochs x86-16

7
推荐指数
1
解决办法
79
查看次数

用int 13h读取硬盘驱动器写入扇区

我有一个简单的程序.它必须从硬盘驱动器(而不是mbr)读取第一个扇区,并将其写入0扇区(mbr).但它不起作用.我认为它与错误的DAP有关.谢谢.

    [bits   16]
    [org    0x7c00]

;clear screen
start:
    mov     ax, 0x3
    int     0x10

;reset the hard drive
    xor     ah, ah
    mov     dl, 0x80
    int     0x13
    jnz     error

;read the second sector
    mov     si, DAP
    mov     ah, 0x42
    int     0x13

    mov     si, data
    call    print_string
    jmp     $

DAP:
    db      0x10    ;size of DAP
    db      0x0     ;zero
    db      0x1     ;number of sectors to read
    db      0x0     ;zero
;point to memory
    dw      0x0     ;offset
    dw      0x0     ;segment
    dq      0x1     ;disk address

DAP2:
    db …
Run Code Online (Sandbox Code Playgroud)

x86 assembly bios bootloader bochs

6
推荐指数
2
解决办法
1万
查看次数

使用IDA PRO 6.1的DEbug x64应用程序

我有IDA PRO 6.1 - (我无法安装最新版本)

我试图用bochs调试器或windgb调试x64应用程序.

我做了以下事情:

  1. 安装了Bochs-2.4.6
  2. 安装了x86和x64版本的windows调试器.
  3. 确保ida.cfg中Windows调试器的默认路径是:

    DBGTOOLS = "C:\\Program Files (x86)\\Windows Kits\\8.1\\Debuggers\\x86\\";
    
    Run Code Online (Sandbox Code Playgroud)

我无法使用任何调试器使用x64,我希望对配置调试器的正确方法有一点指导.

我无法调试任何x64应用程序.当我将调试器设置为bochs时,它开始运行,然后遇到以下错误:

在此输入图像描述

当我尝试使用windgb时,它会一直报告:

无法初始化WinDgb引擎...有错误:找不到指定的过程.(000007F)...

当我点击OK我得到:

"调试器插件无法加载文件.请验证参数是否有效."

什么是正确的参数?

我在调试本地应用程序时是否有连接字符串.在IDA帮助文件中,它表示将Connection字符串留空以供本地应用程序使用,但即使我选择x64 dbgsrv.exe并设置默认连接字符串也不起作用.

debugging 64-bit reverse-engineering ida bochs

6
推荐指数
1
解决办法
6795
查看次数

启用引导加载程序以加载USB的第二个扇区

我正在学习汇编语言.我写了一个简单的bootloader.测试后,它没有用.这是我的代码:

[bits 16]
[org 0x7c00]

jmp start

data:
wolf_wel_msg db 'Welcome to Bootloader!!!',0x0D,0x0A,0
wolf_kernel_load db 'Loading kernel....',0x0D,0x0A,0
wolf_error_msg db 'Kernel.bin not found!',0x0D,0x0A,0
wolf_error_msg1 db 'Press any key to restart..',0

start:
        mov si, wolf_wel_msg
    call wolf_print

    mov si, wolf_kernel_load
    call wolf_print

    pushf
    stc

    mov ah,00
    mov dl,00
    int 13h

    read_sector:
            mov ax, 0x0
        mov es, ax
        xor bx, bx
            mov ah, 02
        mov al, 01
        mov ch, 01
        mov cl, 02
        mov dh, 00
        mov dl, 00
        int 13h

    jc wolf_error …
Run Code Online (Sandbox Code Playgroud)

assembly osdev bootloader bochs x86-16

6
推荐指数
1
解决办法
1404
查看次数

如何使用bochsdbg在bochsrc.txt中自动设置断点?

我想在运行bochsdbg时在0x7c00处设置断点.

我不想每次都自己输入这两个命令.

  b 0x7c00
  c
Run Code Online (Sandbox Code Playgroud)

如何在bochsrc.txt中执行此操作?

谢谢〜

bochs

5
推荐指数
1
解决办法
859
查看次数

安装 Pint-OS 并尝试运行多个警报后,我收到以下错误。我使用 bochs 作为模拟器。任何可能的解决方法?

Prototype mismatch: sub main::SIGVTALRM () vs none at /home/abhijay/pintos-os/pintos/src/utils/pintos line 934.
Constant subroutine SIGVTALRM redefined at /home/abhijay/pintos-os/pintos/src/utils/pintos line 926.
warning: can't find squish-pty, so terminal input will fail
bochs -q
========================================================================
                       Bochs x86 Emulator 2.4.6
             Build from CVS snapshot, on February 22, 2011
                   Compiled at Jun  8 2013, 05:16:04
========================================================================
00000000000i[     ] LTDL_LIBRARY_PATH not set. using compile time default '/usr/lib/bochs/plugins'
00000000000i[     ] BXSHARE not set. using compile time default '/usr/share/bochs'
00000000000i[     ] reading configuration from bochsrc.txt
00000000000e[     ] user_shortcut: old-style …
Run Code Online (Sandbox Code Playgroud)

operating-system bochs pintos

5
推荐指数
1
解决办法
2022
查看次数

软盘读取(AH = 0x2,int 0x13)未完成

在我的引导程序的第二阶段,我试图将一些虚拟软盘上的扇区加载到bochs的内存中,但是在调用时int 0x13,例程就不会返回.

我相信我的第二阶段的相关代码是:

bootsys_start:
    mov %cs, %ax
    mov %ax, %ds

    /*
     * Remap IRQs. Interrupts have been disabled in the
     * bootloader already.
     */

    mov i8259A_ICW1($i8259A_IC4), %al
    out %al, i8259A_ICW1_ADDR($i8259A_MASTER)
    out %al, i8259A_ICW1_ADDR($i8259A_SLAVE)

    mov i8259A_ICW2($USER_INT_START), %al
    out %al, i8259A_ICW2_ADDR($i8259A_MASTER)
    mov i8259A_ICW2($USER_INT_START + 8), %al
    out %al, i8259A_ICW2_ADDR($i8259A_SLAVE)

    mov i8259A_ICW3($0x4), %al
    out %al, i8259A_ICW3_ADDR($i8259A_MASTER)
    mov i8259A_ICW3($0x2), %al
    out %al, i8259A_ICW3_ADDR($i8259A_SLAVE)

    mov i8259A_ICW4($i8259A_uPM & i8259A_x86), %al
    out %al, i8259A_ICW4_ADDR($i8259A_MASTER)
    out %al, i8259A_ICW4_ADDR($i8259A_SLAVE)

    call mm_detect

    /* Load the kernel …
Run Code Online (Sandbox Code Playgroud)

x86 assembly floppy bios bochs

3
推荐指数
1
解决办法
398
查看次数

Bochs:显示库“sdl”不可用

最近我开始阅读这本关于操作系统开发的“书”(https://littleosbook.github.io/),我发现它很棒,但是我在尝试在 bochs 中启动我的映像时遇到了一个问题。

在某些时候,有关在Bochs中运行操作系统的指南告诉我为模拟器创建一个配置文件。我将每个选项设置为我读到的内容。

但是当我运行以下命令时,

bochs -f bochsrc.txt -q

它说:

显示库“sdl”不可用

配置文件中的相关行非常明显:

显示库:sdl

我不知道出了什么问题。我安装了libsdl和libsdl2.0,但仍然无法工作。

我的工作环境包括 Ubuntu 20.04 和 Bochs 2.6.11。

有人遇到过这个问题吗?解决办法是什么?

ubuntu operating-system sdl emulation bochs

3
推荐指数
1
解决办法
4309
查看次数