博客已经成功切换为 Wordpress! My blog has been switched to Wordpress!

【易语言】检测是否被调试,开发者必用的超级代码 [E语言源码]

编程分享 edwardfang 7年前 (2011-08-30) 197次浏览 2个评论

想保护自己的 软件不被 破解者调试和调用吗?

那么跟我来吧。部分代码展示。

判断循环首 (Found ≠ 0)’ 遍历所有进程

.判断开始 (取操作系统类别 () = 3)
        ExeName = 取进程文件名 (Pn.th32ProcessID)  ' 2000/xp 要从模块那里才能正确取出执行的文件名
    .默认
        ExeName = 到小写 (到文本 (Pn.szExefile))  ' 98 下直接取进程名就可以了,在模块那里没有的,所以反而取不出来,不过这个名字是一个路径,要转换一下
        ExeName = 取文本右边 (ExeName, 取文本长度 (ExeName) - 倒找文本 (ExeName, “\”, , 真))
    .判断结束
    .如果 (ExeName = 到小写 (取执行文件名 ()))  ' 自己的进程
        ParentProc = Pn.th32ParentProcessID  ' 得到父进程的进程 ID
        H = OpenProcess (#PROCESS_ALL_ACCESS, 真, Pn.th32ParentProcessID)  ' 父进程的句柄
        ' CloseHandle (H)  ' 如果下面要使用 TerminateProcess (H, 0)的话这一句不用写
    .否则
        .如果真 (ExeName = ExplName)
            ExplProc = Pn.th32ProcessID  ' Explorer 的进程 ID
        .如果真结束
    .如果结束
    Found = Process32Next (sHandle, Pn)  ' 查找下一个
.判断循环尾 ()
CloseHandle (sHandle)
.如果 (ParentProc ≠ ExplProc)  ' 如果父进程不是 Explorer,则是调试器……

TerminateProcess (H, 0)’ 杀之!除之而后快哦! :)如果要使用这一句的话请把上面一句 CloseHandle (H)去掉就可以了

‘ 你还可以加上其它什么死机代码来消遣消遣这位破解者 :)


回味依旧 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【易语言】检测是否被调试,开发者必用的超级代码 [E 语言源码]
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 要是C语言就好了
    assos2011-11-07 10:18 回复
  2. 易语言没有学过,C++会一点
    陈龙飞2011-08-30 11:52 回复