如题

解决方案 »

  1.   

    加密?反编译?还是什么?如果是加人注册的话,下面的不知道对你有没有帮助假设软件的主程序窗口为FORM1,则将该段代码置放在FORM1.CREATE事件中。代码如下: procedure TForm1.form1create(Sender: TObject); 
    var 
    re_id:integer; 
    registerTemp : TRegistry; 
    inputstr,get_id:string; 
    dy,clickedok:boolean; 
    begin 
     dy:=false; //软件是否已到注册期、及是否允许继续使用的标志,当值为FALSE是为允许使用。 
     registerTemp := TRegistry.Create; //准备使用注册表 
     with registerTemp do 
     begin 
       RootKey:=HKEY_LOCAL_MACHINE; //存放在此根下 
       if OpenKey('Software\Microsoft\Windows\CurrentVersion\Mark',True) then 
        // 建一目录,存放标志值。当然也可以存放在已存在的目录下。怎么样,很难发现吧? 
        begin 
         if valueexists('gc_id') then begin //用gc_id的值作为标志,首先判断其存在否? 
           re_id:=readinteger('gc_id');//读出标志值 
           if (re_id<>0) and (re_id<>100) then begin //若标志值为0,则说明已注册。 
                  //若不为0且值不到100,说明虽未注册,但允许使用的次数尚未达到。 
            re_id:=re_id+5; //允许标志的最大值为100,每次加5,则最多只可用20次。 
            Writeinteger('gc_id',re_id);//将更新后的标志值写入注册表中。 
         end; 
         if re_id=100 then dy:=true; //假如值已到100,则应注册。 
        end 
       else Writeinteger('gc_id',5);//建立标志,并置初始标志值。 
      end; 
      if dy then begin //若dy值为TRUE,则应提示用户输入注册码,进行注册。 
        clickedok:=InputQuery('您使用的是非注册软件,请输入注册码:',' ',inputstr); 
        if clickedok then begin 
          get_id:=inttostr(111111*2);//注册码为222222,当然可加入更杂的算法。 
          if get_id=inputstr then begin 
            Writeinteger('gc_id',0);//若输入的注册码正确,则将标志值置为0,即已注册。 
            CloseKey; 
            Free; 
           end 
          else begin //若输入的注册码错误,应作出提示并拒绝让其继续使用 
            application.messagebox('注册码错误!请与作者联系!','警告框',mb_ok); 
            CloseKey; 
            Free; 
            application.terminate; //中止程序运行,拒绝让其继续使用 
           end; 
          end 
        else begin //若用户不输入注册码,也应作出提示并拒绝让其继续使用 
          application.messagebox('请与作者联系,使用注册软件!','警告框',mb_ok); 
          CloseKey; 
          Free; 
          application.terminate; 
         end; 
      end; 
     end; 
    end; 
      

  2.   

    用这个软件,是开源的,很不错,http://sourceforge.net/projects/tponguard/
      

  3.   

    这些我都有了,正如你上面的例子
    "注册码为222222,当然可加入更杂的算法"我就是要这更更杂的算法,比如:RSA等,最好还能提供硬盘系列号来作为加密?请各位大虾帮帮忙?
      

  4.   

    可以讀取cpu序列號作明碼,然後讀取硬盤序列作暗碼,使用他們進行異或運算,各種函數加密,自己想吧.