每天拿出一分钟来学习,你的生命会更加精彩。

易语言简单实用加密技术

发布:洪雨2019-7-5 15:04分类: 编程相关 标签: 易语言 编程

    之前在52论坛了解到易语言所谓的push大法,虽然看都不懂,但大概知道原理。

    因为易语言执行命令前都是先启动窗体,然后进行命令。只要能push到要执行核心命令的窗体,就能破解。

    虽然不是很明白吧,但是觉得好厉害。

    对于易语言写的东西防破解和加密,虽然没怎么关注,这些年来多少也接触了些。(平时都是加个强壳了事)

    这两天忽然有点兴趣,就好好看了两眼,太复杂的不做研究,只搞那种几行代码就行之有效的方法。

    第一个,强壳。

    这个最省事。经常上52就知道,其实强壳还是能屏蔽不少中新手破解者。你只需要5秒钟套壳,他可能需要几天来破。对于熟练的高手来说,还是没用。不过已经很好了,简单方便。四大猛壳 zprotect  tmd  vmp  se

    如果对壳感兴趣的,可以百度一下《新老压缩/加密壳大全洪雨收集推荐》这篇文章。

    第二个,加花。

    花指令,当年用途最多的还是欺骗一下杀毒软件进行免杀。虽然可以通过内存的形式进行破解,不过现在的人还是喜欢脱壳爆破,做注册机的人越来越少,所以加花还是很有用的,至少给破解找找点麻烦也是好的。

    洪雨建议自己写一些无用运算,进行源码混淆,写的多了,甚至可以模块化,直接调用来隐藏核心代码。如果觉得麻烦,用易语言自带的加花也ok。

    简单数学计算,“如果”,“如果真”,“判断”,等命令进行混淆。常量中多加入“注册码”“激活码”等相关字样,结合计次循环,判断循环等进行综合混淆运算。这样虽然生成的文件会变大,占用一定的内存,不过还是很有效果的。

    第三个,敏感内容加密。

    注册码,效验码等不要进行简单比对,要处理后再比对,比如效验码为123456,那么先将123456进行md5加密后,比对加密后的结果。取反,异或等都可以。

    不要直接信息框。信息框的内容是很容易追踪查询的。最好新建窗口,将信息分开再组合进行显示。或者直接做成现成的图片,进行提示。

    关键文本要分开写,比如“A21B40C81”,要写成“A”+到文本(3×7)+“B”+到文本(5×8)+“C”+到文本(9×9)。这样就不容易被追踪到。

    第四个,避免用判断命令

    不要用“如果”命令,这个命令指向唯一,要用最好用“判断”。洪雨这里建议最好不用判断的命令,换一种写法。

    计次循环首(到数值(注册码是否相符()),)

    | 注册成功=1

    |计次循环尾()

    注册码是否相符()返回一个逻辑型,“真”到数值是1。这样计次循环就会运行,注册成功就等于1,如果是假,那么到数值就是0,计次循环就不运行,注册成功就不等于1。

    用这种方式进行判断代替其他判断命令。

    第五个,效验自身

    通常我们效验自身的大小和md5。

    先说说大小,通常我们加壳以后,软件大小都会有所改变。用upx这种压缩壳,通常能压缩40%以上。脱壳后软件体积变大。这样我们写软件的时候,在软件运行进行一个判断,效验自身大小。比如软件加壳后体积为1024,那么我们就写成,如果体积大于1024就退出,或者就删除自身。

    这里有一个死循环逻辑,如果我们编译出来,加壳以后,体积是1024,那么我们再写入判断代码,再加壳以后,体积就会有变化。这怎么办?

    这里就用大于小于来取一个模糊值。比如软件原来1500,加壳后1024,那么我们就判断,如果软件体积大于1300,那么就退出,即可。

    第二种是效验自身md5。这个就更加严格,哪怕你软件改动一个字节,软件md5也会变化。效验方法同理,不过也同样会遇到死循环逻辑。这个就不能取模糊值了,要另想办法。通常的做法是,将md5效验硬写到软件要调用的dll里。这样就既不会改变软件自身,也能做到效验的目的。

    第六个,暗桩和伪注册

    暗桩就是掩藏很深的效验。平时不触发,只有满足一定条件后触发。说一个简单的,比如软件使用次数有一定的概率触发暗桩,这个比率可以是1/30,不一定。这样就让破解者需要大量尝试才能触发一次,增加破解困难。再比如,记录使用天数,只有使用10天以后才触发等等……暗桩的形式要发挥想象,和多积累。

    听说有的软件甚至设置上百个不同的暗桩……

    再说说伪注册。洪雨觉得这是一种营销方式,也是对自己产品的充分认可。有的软件自身做的很好,功能很棒。然而开发者会设计一个很笨拙的验证放在那里。让破解者很容易就破解成功。

    然后呢,当使用破解版的人用到一定时间的时候,暗桩才触发。比如货物存储软件,当数据库达到一定大小的时候,自动锁数据库。重要的数据被锁了,使用者只有像开发者购买软件,才能得以解锁。

    再说一个例子,比如视频录像专家。这款软件我从10年前就在用。真的很好用。

    这款软件的每个版本几乎都有破解版,但是至今我都没有找到一个真正的完美破解。前半个小时,或者一个小时的录像,没有任何水印,但是一但超过半个小时或者一个小时,视频就会显示“未注册”字样和软件的水印。无数的破解高手都尝试过,但是因为暗桩实在太多,所以市面上所有所谓完美破解的,其实都不完美。

    这样反而让这款软件家喻户晓。因为软件做的确实不错,而且如果你录制视频小于半个小时,是可以正常使用所有功能的。

    软件知名度上来了,价格又不贵,所以至今销售都不错。

    第七个,反调试

    这个不做讨论。洪雨上面说了,太复杂太麻烦的不与考虑。说说原理吧。其实就是检测一些反编译软件的运行。经常监控的不准确,有时候还不兼容导致死机。

    有的是监控进程,通常软件的父进程都是exploer,如果你是通过od这样的工具载入的,父进程就变了。

    第八个,洪雨自己的想法,也不知道对不对。

    看书上说,加壳不是很安全,就算强壳也是如此。所以推荐直接一个upx压缩壳加上自效验,再加一些暗桩。

    洪雨前些天写了一个加密压缩壳,没啥技术含量,但思路很有趣。主要思路不是加密算法,而且对接。

    洪雨这里讲解一下整体思路。首先将源软件进行防破解处理。加壳,什么壳都可以,甚至内存加密资源加密的都可以,自效验,暗桩。

    然后将软件进行字节集二次加密,对接到头文件后面。

    这个头文件的功能就是解密源文件然后写出并运行。这个头文件本身做加花,自效验和暗桩。

    换个说法,洪雨写的这个加密压缩壳,是一个万能二次加壳软件。无论怎样,至少给软件再次加设了一道防线。

   

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

已有 0/3486 人参与

发表评论:

欢迎使用手机扫描访问本站,还可以关注微信哦~