你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 计算机安全与维护
加密狗的DLL方法探究(六)
 

 List := TStringList.Create;//建立一文件流

  List.LoadFromFile('dog.dat');//装入DOG.dat文件,此文件中已保存有原软件狗中内容

  S := List[0];

  if length(s)=0 then

   for i:=0 to 120 do

    s:=s+' ';

  ss:='';

  for i:=0 to nlength do  //读入待写入狗中的内容

   ss:=ss+pbuffer[i];

  if nstart<>0 then

   s:=copy(s,1,nstart+1)+ss+copy(s,nstart+nlength+1,121-nstart-nlength-1)

  else

   s:=ss+copy(s,nstart+nlength+2,121-nstart-nlength-2); //从初始位置开始写

  list[0]:=s;

  list.savetofile('dog.dat');  //写入到dog.dat文件中,就像狗真的存在一样,可读写

  List.Free;

  Dogwritebuffer:=0; //写入成功

end;

 

function dogreadbuffer(nstart:longint; nlength: longint;pbuffer:PChar):longint; //读狗函数

//三个参数为:从狗中开始读的位置、长度、保存信息的地址

var

  s: String;

  i:Integer;

  List: TStringList;

begin

//  Dogreadbuffer:=nlength; //读出成功

//  exit;

  List := TStringList.Create;

  List.LoadFromFile('dog.dat'); //读入存放在文件dog.dat中的狗资料

  S := List[0];

  if length(s)=0 then

   for i:=0 to 120 do

    s:=s+' ';

  s:=copy(s,nstart+1,nlength+1);  //copy是从1开始计起的,10都一样,复

//提取出相应起始位置和长度的内容

//  for i:=1 to length(s) do

//   pbuffer[i-1]:=s[i];

  StrPCopy(pbuffer,S);   //返回存放内容的相应地址

  List.Free;
  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089