WEB开发网
开发学院网络安全黑客技术 注册机破解法的原理以及应对方法 阅读

注册机破解法的原理以及应对方法

 2006-12-04 20:10:44 来源:WEB开发网   
核心提示: procedure CheckParentProc; var //检查自己的进程的父进程 Pn: TProcesseNtry32; sHandle:THandle; H,ExplProc,注册机破解法的原理以及应对方法(3),ParentProc:Hwnd; Found:Boolean;

  procedure CheckParentProc;
   var //检查自己的进程的父进程
   Pn: TProcesseNtry32;
   sHandle:THandle;
   H,ExplProc,ParentProc:Hwnd;
   Found:Boolean;
   Buffer:array[0..1023]of Char;
    Path:string;
   begin
   H:= 0;
   ExplProc:= 0;
   ParentProc:= 0;
   //得到Windows的目录
   SetString(Path,Buffer)
   GetWindowsDirectory(Buffer,Sizeof(Buffer)- 1));
   Path:= UpperCase(Path)+ 'EX PLORER.EXE';//得到Explorer的路径
   //得到所有进程的列表快照
   sHandle:= CreateToolHelp32Snap Shot(TH32CS_SNAPALL,0);
   Found:= Process32First(sHandle,Pn);//查找进程
   while Found do //遍历所有进程
   begin
   if Pn.szExeFile = ParamStr(0)then //自己的进程
   begin
   ParentProc:= Pn.th32ParentProcessID://得到父进程的进程ID
   //父进程的句柄
   H:= OpenProcess(PRO CESS_ALL_ACCESS,True,Pn.th32Parent ProcessID);
   end
   else if UpperCase(Pn.szExeFile)= Path then
   ExplProc:= Pn.th32ProcessID;//Ex plorer的PID
   Found:= Process32Next(sHandle,Pn);//查找下一个
   end;
   //父进程不是Explorer,是调试器……
   if ParentProc <> ExplProc then
   begin
   TerminateProcess(H,0);//杀之!除之而后快也! :)
   //你还可以加上其它什么死机代码来消遣消遣这位可爱的Cracker:)
    end
   end

你可以在Delphi或者VC中试试,这样可以把Delphi和VC杀掉了,因为你现在用的是Delphi和VC的内置调试器来运行你的程序。调试的时候你还是把它的注释删掉吧,发布时别忘记激活哟!

第四招:保护字符串

最后一个问题,这也是一个非常重要的问题:保护你的字符串!字符串在注册模块中非常重要!当一个富有经验的Cracker破解你的软件时,首先做的就是窃取你的字符串。比如他会输入错误的注册码,得到你关于错误注册码的提示,通常是“无效的注册码,请重新输入!”或者“Invalid key(please input again)”等等,然后用OllyDbg进行断点调试或者用WinDASM、IDA Pro等静态分析工具在被他脱壳后的程序中查找那个字符串,找到后进行分析。因此,请一定加密你的字符串! 使用时再临时解密出来,而且要尽量少使用消息提示框,避免被Cracker找到漏洞。加密字符串不需要太复杂的算法,随便找一个快速的对称算法就可以了。

最后提醒大家一句,不要在加密上花太多的功夫!你应该把更多的时间和精力都用来完善你的软件,这样会更合算。借用一位前辈的话来忠告大家吧:花点时间考虑你自己的软件,看看它是否值得保护?如果没人用你的软件,保护也就没有意义了,不要过高估计你的软件“对世界的重要性”!

上一页  1 2 3 

Tags:注册机 原理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接