DOS下抓取128M的BIOS程序解密源码

;DOS下抓取128M BIOS 已加密 给大家练手用

;http://topic.csdn.net/u/20100503/17/adbde974-fde2-4a10-ac1f-49131a1efb88.html?98770

 ;DOS下抓取128MBIOS,部分解密
 CODE SEGMENT
 ASSUME  CS:CODE,DS:CODE
 .386p
 org 100h
 START:
 cli
 in  al, 0eeh
 mov  ax, 2401h
 int  15h ;开放A20门
 in  al, 92h
 or  al, 2
 out  92h, al
@10e:
 in  al, 64h
 test  al, 2
 jnz  @10e
 mov  al, 0d1h
 out  64h, al
@118:
 in  al, 64h
 test    al, 2
 jnz  @118
 mov  al, 0dfh
 out  60h, al
 mov  ax, cs
 mov  ds, ax
 mov  dx, offset filename
 mov  cx, 0
 mov  ah, 3ch
 int  21h
 mov  bx, ax
 mov  ax, cs
 shl eax, 4
 add cs:[1bah], eax
 lgdt cs:[1b8h]
 ;LGDT m16&32,将内存m16&32处的值装入全局描述符表寄存器
 mov eax, cr0 ;控制寄存器
 or al, 1
 mov cr0, eax
 mov cx, 8
 nop
 mov fs, cx
 and al, 0feh
 mov cr0, eax
 mov esi, 0f8000000h
 mov ax, 8000h
 mov  ds, ax
@165:
 mov eax, fs:[esi]
 mov [si], eax
 add esi, 4
 cmp  si, +0
 jnz  @165
 mov  cx, 0ffffh
 mov  dx, 0
 mov  ah, 40h
 int  21h
 mov  cx, 1
 mov  dx, 0ffffh
 mov  ah, 40h
 int  21h
 cmp  esi, +0
 jnz  @165
 mov  ah, 3eh
 int  21h
 mov  ax, 4c00h
 int  21h

 filename db './128MBIOS.BIN',0
 org 1b8h
 db 10h, 0, 0A8h, 01, 0, 0

 CODE ENDS
 END START

::0190  B4 3E CD 21 B8 00 4C CD-21 2E 5C 31 32 38 4D 42   .>.!..L.!./128MB
::01A0  49 4F 53 2E 42 49 4E 00-00 00 00 00 00 00 00 00   IOS.BIN.........
::01B0  FF FF 00 00 00 93 CF 00-10 00 A8 01 00 00 41 40   ..............A@

    中断15h,功能24h,描述A20控制,平台PS/1.
      
    这些功能控制A20门。开放A20门时,可以访问所有的扩展内存。
    禁止时,A20地址线被强制为低电平来模拟8080地址映射。
    这组功能出现在IBM 486 PS/1的BIOS中,可能还出现在最近的IBM BIOS中。
    A20控制,共有四个了功能。
    AL=子功能
       0 禁止 A20
       1 开放 A20
       2 读取 A20 状态
       3 未知功能

   子功能描述:开放 A20
   调用: ax=2401h
   返回: 1.支持这个功能
      ah=0, 进位位=0
      2.不支持这个功能
      ah=80h或86h,进位位=1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值