用E语言检测是否被调试,开发者必用的超级代码[E语言源码]
{:301_996:}想保护自己的 软件不被 破解者调试和调用吗?那么跟我来吧。部分代码展示。
判断循环首 (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)去掉就可以了
' 你还可以加上其它什么死机代码来消遣消遣这位破解者 :)
本帖最后由 cyn123 于 2011-3-15 03:05 编辑
回复 icentury 的帖子
不好意思,我不是高手 但是这个代码我确实能看懂 而且也很好破解我觉得你的标题挺吸引人 “开发者必用的超级代码” 有点言过其辞了只是就事论事 请楼主注意您的言辞别乱喷 52不是你一人的天下 说的好你就谢谢人家 说的不和你心意 难道都是垃圾? 清者自清,浊者自浊 孔子还不耻下问呢 你焉能比圣人强否? 如果人家diy的od呢? 思路不错。 马上测试,效果不错。 有的OD检测不到········ 楼主的个人图片很个性啊! 回复 落雪飞花 的帖子
{:1_912:}多谢夸奖··{:1_905:} 有啥难度? 一个JMP就OVER了 只能骗骗新手