软件加密系列问题3:注册信息的保存(150分)

  • 主题发起人 oceanwave
  • 开始时间
O

oceanwave

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在合适的注册表或文件位置,保存适当的注册信息。
 
http://www.inner-smile.com/nocrack.phtml
 
请问有中文的吗?或者是具体的代码,谢谢!
 
直接写进注册表把
use TRegistry;
...
procedure WriteReg;
var
Reg:TRegistry;
begin
Reg:=TRegistry.create;
Reg.rootkey:='Local_machine.....';//想要写进注册表的根键
Reg.OpenKey('s',true);
//s为键值
Reg.WriteString('TalkUdp','"' +YourInfo + '"');//YourInfo 为想要写入的数据
Reg.CloseKey;
Reg.free;
end;

 
常规的方法:
你看Windows, Windows/System下那么多文件,你再塞一个进去有谁会注意到呢?[:D]
 
我有这样的系统,如果你要找我(我的MSN:wangbarry@taihsing.com.cn)
var
reg:TRegistry;
NumSec: SmallInt;
StartTime: TDateTime;
LABEL Systemsetup;
begin
//开始运行
S_RegTree:='/Software/SytySoft/THINKSHOP';
//延时
numsec:=1;
//延时1秒
StartTime :=now;
repeat
application.ProcessMessages ;
until Now > StartTime + NumSec * (1/24/60/60);
Systemsetup: //重新设置时的入口
reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
try
if (Reg.OpenKey(S_RegTree,False))=False then
begin
// 如果注册表中没有信息则创建初始化信息
//打开注册窗口
Application.CreateForm(TFrm_setup, Frm_setup);
with Frm_setupdo
begin
sb_stop.Visible :=true;
Caption :=Caption +'(初始化设置)';
showmodal;
free;
end;
end;
Reg.OpenKey(S_RegTree,True);
S_name:=reg.ReadString('Coname');
S_username:=reg.ReadString('username');
S_cotel:=reg.ReadString('Cotel');
S_address:=reg.ReadString('address');
S_autosave:=reg.Readstring('autosave');
S_savedays:=reg.Readstring('savedays');
if Reg.ReadString('Countdate')='1' then
try
I_countdate:=reg.ReadInteger('Dateday');
except
I_countdate:=0;
end
else
I_countdate:=0;
HWSHOPDATA:=reg.ReadString('Datapath');
if HWSHOPDATA='【系统默认】' then
begin
HWSHOPDATA:=ExtractFileDir(Application.ExeName);
if (StrLen(PChar(HWSHOPDATA)) <> 3) then
HWSHOPDATA:=HWSHOPDATA+'/DATA/'
else
HWSHOPDATA:=HWSHOPDATA+'DATA/';
end;
if (trim(s_name)='') then
begin
reg.DeleteKey(S_RegTree);
reg.CloseKey ;
reg.Free ;
halt;
end;
finally
Reg.CloseKey;
Reg.Free;
end;
 
你需要在做安装程序的时候,让用户输入你要求的加密信息,
在安装过程中注册,你在自己的程序中判断 注册的相应信息是否正确就可以
 
信息保存是个麻烦的问题,原来我用VB开发程序的时候,做一个注册文件放进去的,里面
是一些经过简单加密的资料,其实保存注册信息应该是无所谓,看现在的一些软件,注册
资料不外乎于注册文件、注册表,只要加密算法搞得好,这些应该都不是什么大问题,因
为就算拿到注册文件,还要过硬件较验这一关呢。
如果非要说保存在哪里最好,我看还是程序本身,这样可以避免其它一些因素造成的影响,
外部文件被被误删,注册表,可能重装系统,只是这个好象是个难题,程序在运行过程中
不能向这个文件内写入东西,不知有没有高手可以提供些相关方面的资料…
 
程序写自身呢,只能通过合并EXE来解决,关于合并Exe以前的问题中有,
思路是:
编制一个解密程序,然后将要加密的程序放到解密程序后面,也就是合并成一个文件,在
运行整个程序时然后解开文件执行,为了隐蔽,需要屏蔽掉该进程在Ctrl+Alt+Del时的显示
,同时在软件运行时需限执行一次CreateFile功能将文件变成不允许读取,然后解密进程
监视改进程的执行情况,当进程执行结束后,删除之,但这种方法有个缺点,如果在程序
执行过程中采用强行关机后,能够找到这个解密后的可执行文件,这是一个比较头疼的问
题,目前没有办法解决
 
顶部