开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1720|回复: 0
收起左侧

[技术专题] 易高级加解密技术[第十课:附录]

[复制链接]
头像被屏蔽
结帖率:81% (17/21)
发表于 2015-6-13 23:32:32 | 显示全部楼层 |阅读模式   辽宁省锦州市
本帖最后由 痛恨一生 于 2015-6-13 23:47 编辑

还有一点,调试器对我们的威胁很大,我们不会肯定让Cracker们舒舒服服地使用SoftICETRWOllyDbg来调试我们的程序。除了常用的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中试试,呵呵,是不是把DelphiVC杀掉了,因为你现在用的是DelphiVC的内置调试器来运行你的程序的,当然它会六亲不认了,呵呵!调试的时候你还是把它注释掉吧,发布时别忘记激活哟!

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


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







  友情广告位
  By:江雪软件工作室
  Byqq:[qq]787209100[/qq]
  精易论坛——http://bbs.125.la/
  

  
  
※复制与下载本内容,请不要删除版权信息,因为我是在08年接触电脑到至今,结合各种网络技术,以易为主的技术经验得到的结论,并已免费发布在了精易论坛,这对于我个人来说是我作为一名程序员一生的心血免费提供给了大家进行学习与讨论,如果你们要删除版权信息,那么以后我相信绝不会在有人发布这样免费的教程了,并文章内携带了精易论坛的版权与本人的版权信息;

鸣谢:江雪软件工作室[qq]787209100[/qq]
鸣谢:精易论坛平台

  






您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表