下你所需,载你所想!
汇集开发技术源码资料

易语言开发软件防破解不容易被发现的暗桩源码

:331.41KB :1 :2019-12-04 09:43:59

部分简介

教大家如何简单的防破解山寨和反调试,被破解后程序内部的处理代码我都是用的死循环,那这就叫暗桩
第一种

.版本 2

.子程序 _窗口1_创建完毕

.判断循环首 (全局防push ≠ 1)  ' 未通过正常登陆进来功能窗口,进入死循环,这里死循环可以理解为暗桩。

.判断循环尾 ()

第二种

.版本 2

.判断循环首 (文本_解密c (加密后授权, 软件设置.加密数据头) ≠ 软件设置.授权码)  ' 一贴中同款暗桩,相等就略过,不相等就死循环,不执行下方代码

.判断循环尾 () 

 现在简单的结束()已经不符合人们的胃口,而且结束()也真的很容易被人结束,以下是易语言源码对比汇编代码:

.版本 2

.子程序 _按钮1_被单击

结束 ()
信息框 (“ok”, 0, , )


.子程序 _按钮2_被单击

.判断循环首 (2 = 取整 (2))  ' 死循环卡死
.判断循环尾 ()
信息框 (“ok”, 0, , )


 上图是结束,结束后就堆栈窗口直接就能看到这句调用在何处,也很容易被人断下,因为是api断点,开头55直接C3即可干掉这个结束()

上图是判断循环呢,由于看起来像有效功能代码,一般不会轻易nop或jmp掉
 这两种虽然看起来都是改一个je或者retn就能搞定的,但过程不一样 ,不单步是不会发现死循环的,但单步不单步都会发现结束
 还有例如写内存崩溃:
 写到内存 (786666656756, 56566, )
置入代码异常崩溃:
 置入代码 ({ 49, 192, 247, 240 })
总之就是不要用API函数结束或退出,或者提示什么信息框吓唬cracker,当然 软件正常退出还是要用到结束()的,写崩溃不太优雅。
 这些代码在无混淆无加密虚拟的情况下,大家看的一清二楚,觉得大同小异,实际上在代码加密VM等等后,这些区别就很大了,这一篇有点鸡肋,就分享到这吧。

易语言开发软件防破解不容易被发现的暗桩源码

热门推荐

相关文章