您现在的位置: 中国教师站 >> 教师关注 >> 电脑技术 >> 编程技术 >> Delphi >> 正文

Google
于破解过招,保护你的共享软件
作者:Siny 文章来源:中国教师站cn-teacher 点击数: 更新时间:2007-4-22 15:49:58
服服地使用SoftICE、TRW和OllyDbg来调试我们的程序。除了常用的MeItICE方法外,这里我给一个我写的方法:
  { 检查自己的进程的父进程是否为Explorer.exe,否则是被调试器加载了 }  { 不过注意,控制台程序的父进程在WinNT下是Cmd.exe哦!}  { 注意加载TlHelp32.pas单元 }    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) + 'EXPLORER.EXE'; //得到Explorer的路径      //得到所有进程的列表快照      sHandle := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);      Found := Process32First(sHandle, Pn); //查找进程      while Found do //遍历所有进程      begin        if Pn.szExeFile = ParamStr(0) then //自己的进程        begin          ParentProc := Pn.th32ParentProcessID; //得到父进程的进程ID          //父进程的句柄          H := OpenProcess(PROCESS_ALL_ACCESS, True, Pn.th32ParentProcessID);        end        else if UpperCase(Pn.szExeFile) = Path then          ExplProc := Pn.th32ProcessID;      //Explorer的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] 

相关专题:
 
 网友评论:(评论内容只代表网友观点,与本站立场无关!)
GOOGLE广告

阅读排行

相关文章

没有相关文章

| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 |
中国教师站

中国教师站 版权所有 Copyright © 2006-2020 All Rights Reserved 站长:Sina & Siny
[备用域名:www.JXZYW.Com] 有事请留言有事请留言
【实力成就精品 诚信呵护品牌】

信息产业部备案
苏ICP备06018635号