DOS命令扩充-给硬盘加软锁

1.原理

 给硬盘加锁的方法很多,但最简单的方法是改变主引导记录或者改变分区表中某些关键字,达到不能使用硬盘的目的。硬盘主引导扇区内容如下:

 000H 主引导记录(240字节)

 0F0H 全0(206字节)

 1BEH 第一分区表(16字节)

 1CEH 第二分区表(16字节)

 1DEH 第三分区表(16字节)

 1EEH 第四分区表(16字节)

   55H AAH

 主引导扇区最后两个字节55H和AAH是硬盘自举记录的有效标志。每个分区表为16个字节,内容如下:

 0 Boot ind

 1 H

 2 S

 3 CYL

 4 SYS ind

 5 H

 6 S

 7 CYL

 8-11 Rel seet

 12-15 # of sects

 其中Boot ind是自举标志字节,其值为80H时,表示可自举分区;其值为00H时,表示不可自举分区。SYS ind 是DOS系统标志字节,其值为01时,表示DOS分区;为00H时,表示未知。H.S.CYL表示分区的起止地址:H是磁头号;S是扇区号;CYL指柱面号的低8位;高2位在S字节的高2位;Rel seet表示该分区的相对扇区号,# of sects表示该分区实用的扇区。例如,某硬盘的一个分区表为 80 00 02 00 01 03 51 30 01 00 00 00 03 51 00 00,第一个字节80H是自举分标志,第五个字节01是DOS分区标志,若改变01H为00H,可达到加密硬盘效果。下面的程序仅仅修改主引导扇区是最后两个字节55H和AAH,修改后若启用硬盘启动,则系统提示:Disk Boot Failure. Insert system Disk AND Press Enter.

 使用的主要函数如下:

 char biosdisk(int cmd, int drive, int head, int track, int sector, int nsects,void*buffer);

 该函数使用中断0x13,把磁盘操作直接转给BIOS。Cmd指示待执行的操作。其中cmd为2时是读盘操作;为3时是写盘操作。drive为0时代表第一个软驱;为1表示第二个软驱,0x80表示第一个硬驱,返回值00时,表示操作成功。

 

2.程序清单

#include <bios.h>

#include <stdio.h>

#include <conio.h>

 

int main()

{

 int result;

 char buffer[512];

 

 result = biosdisk(2,0x80,0,0,1,1,buffer);

 

 if(!result)

 {

  buffer[510] = 0x0;

  buffer[511] = 0x0;

 

  printf("读主引导扇区失败!\n");

 }

 

 if(!result)

 {

  result = biosdisk(3,0x80,0,0,1,1,buffer);

 }

 

 (!result)?(printf("写主引导扇区成功!\n")):(printf("写主引导扇区失败!\n"));

 return 0;

}

资源下载链接为: https://pan.quark.cn/s/67c535f75d4c 在Android开发中,为了提升用户体验和视觉效果,背景模糊化处理是一种常用的设计手段。它可以为应用界面增添层次感,同时突出显示主要内容。本文将详细介绍如何在Android中实现背景模糊化功能。 首先,我们需要获取当前设备的壁纸作为背景。这可以通过WallpaperManager类来完成。调用WallpaperManager.getInstance(this.getContext())可以获取壁纸管理器实例,然后通过getDrawable()方法获取当前壁纸的Drawable对象。接下来,需要将壁纸Drawable转换为Bitmap对象,因为模糊处理通常需要在Bitmap上进行。可以通过((BitmapDrawable) wallpaperDrawable).getBitmap()来完成这一转换。 模糊处理的核心是使用Android的RenderScript API。RenderScript是一种高效的并行计算框架,特别适合处理图像操作。在blur()方法中,我们创建了一个RenderScript实例,并利用ScriptIntrinsicBlur类来实现模糊效果。ScriptIntrinsicBlur提供了设置模糊半径(setRadius(radius))和执行模糊操作(forEach(output))的方法。模糊半径radius可以根据需求调整,以达到期望的模糊程度。 然而,仅依赖ScriptIntrinsicBlur可能无法达到理想的模糊效果,因此我们还需要对原始图片进行缩放处理。为此,我们设计了small()和big()方法。先将图片缩小(small()),然后执行模糊操作,最后再将图片放大(big())。这种方式不仅可以增强模糊效果,还能在一定程度上提高处理速度。在small(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值