关于软盘反拷贝(100分)

  • 主题发起人 主题发起人 zswenyun
  • 开始时间 开始时间
Z

zswenyun

Unregistered / Unconfirmed
GUEST, unregistred user!
请问那位作过软盘反拷贝的相关程序?
或者是软盘0磁道加密的,
望能指教,不胜感激,
我的Email:zswenyun@163.com
 
前面回答过,你可以去看看
http://www.delphibbs.com/delphibbs/dispq.asp?lid=970858
 
1) 在软盘上打眼,正版程序读盘时判断眼的位置;
2) 作非标准格式化,在某个磁道上划分非标准的扇区数,程序中判断是否如此;
……
动动脑筋,办法很多。
在Windows系统中,需要采用专用的底层编程技术。
不过现在这类方法已经不灵了,破解高手很容易破解你的程序,
跳过检测部分,使加密失效。

 
我是超级菜鸟,能不能具体举个列子?
 
我在win2000下把一个字符串用int 13 中断写如软盘,可是出错不只为什么
程序如下:
function WriteInFloppyDisk(sourstr:string):boolean;
begin
//写A盘引导区
asm
mov ax,0301//03是指写操作01是指写入扇区数
mov bx,WORD PTR[sourstr]//此处是数据缓冲区的首址
mov ch,70
mov cl,03h
// mov cx,0000//起始扇区数为0扇区
mov dx,0 //盘号A-0
int 13//////////出错处
end;

//DISPOSE(TEMPSTR);
end;
function ReadOutFloppyDisk():string;
var tempstr:string;
begin
tempstr:='00';
asm
//读A盘引导区
mov ax,0201h //02是指读操作 01是指读出扇区数
mov bx,word ptr[tempstr] //此处是数据缓冲区的首址
mov cx,0102h //起始扇区数
mov dx,0 //盘号A-0
int 13//////////出错处
end;
result:=tempstr;
end;

procedure TForm1.Button1Click(Sender: TObject);
var tt:string;
begin
tt:='aa';
//WriteInFloppyDisk(tt);
aa:=ReadOutFloppyDisk();
edit1.Text:=aa;
end;
出错信息是:Project Project2.exe raised exception class EAccessViolation with message'Access violation
at address 00401907 in module'Project2.exe',Read of address ffffffff'.Process stopped.Use Step
or Run to continue.
我是在WIN2000,D5的环境下
你能帮我看一下吗?
最好能举个列程,不胜感激
 
怎么没人回答呀!
 
Win2000下好像已经不允许使用BIOS中断了吧?
 
我想知道2000下如何直接读取和写入软盘的0扇区?
最好能举个列程
 
读小学时看过一篇文章,至今神往。
软盘加密的终极手段-磁盘转速差加密,
即在程序第一次启动时检查软驱的转速,将转速信息写入软盘,
以后每次都检查软驱的转速与第一次写入的转速是否相符,
这样,这张软盘就被彻底绑定到这台机器上,他哪怕是换了个电源,
以后也休想再打开这张软盘。
 
谁能救救我呀?分全给他
 
直接用软盘的序列号哇!
 
我已经做了个类似的实验软件,可以完全杜绝在不同电脑上的程序拷贝,可以达到你要的
效果,现在没有空间,如果有空间,我会将我的程序和源代码上传!
 
>>晶晶
能不能发一个给我?
email:zswenyun@163.com,zswenyun@yahoo.com.cn
 
首先,没有解不开的锁!
如果你只是希望拷贝软盘没用,为什么不把些东西写进注册表呢?
 
这个问题我在98下已解决,2000下单独的话也以解决,但是由于不只2000下用程序怎么控制
向软盘的指定扇区写入
请看问题:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1159262
 
大富翁的高手都那里去了?
是不是现在都只剩下我们这些菜鸟了?
 
现在的软盘能用几次?大方一点让他们去拷吧!
实在要加密,我不知道方法,但原来看见过一篇文章说:Windows下不允许直接操作硬件,
但可以先定义一个常量,再变通处理,例如某硬件的I/O口是071H,你就不能这样:
in al,071h
但你可以这样:
MyPort equ 071h
...
in al,Myport
不知你的问题是否也有类似的方法呢?(我确实不知道,但愿你能摸索出来)
 

Similar threads

D
回复
0
查看
604
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部