开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

友情提示:文字/图片广告均非论坛意见,请担保交易勿直接付款,由此产生的责任自负
查看: 281|回复: 1
收起左侧

[Windows逆向] 易语言逆向_浅谈防破J二

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式   重庆市重庆市
前情提要

在前面介绍了验证的发展历史,从最早期的本地绑机验证,到现在的功能完善的TCP网络验证,两次时代的跨越。

易语言逆向交流群:500002537

7.网络_TCP验证2:

E盾出现后,依靠安装简单,运行稳定,独立算法KEY,加验证方便等等特点,成为了用户量最多的验证,但也出现了一系列问题。

源码公开化:源码经历过一次泄露,导致出现了各种各样的同款类似验证,并且防破J的思路也“完全”公开了。

SDK模块:E盾SDK使用的是易语言模块,众所周知,易语言模块是可以直接反编译得到源码的。

服务端代码检查不严格:在早期存在文件路径漏洞,直至E盾最新的版本,还存在有SQL注入漏洞,甚至服务端执行任意代码的漏洞。

根据以上几点,已经出现的破J方法有下面几种:

1.接口化,HOOK掉所有E盾SDK接口,然后自行处理数据。

2.本地化,因为有所有的通讯算法,和数据处理代码,所以只需要知道算法key,就可以完全本地化。

3.山寨化,是本地化的衍生版本,放到服务器里面,并且加上验证。

8.网络_企业盾验证:

为什么说E盾是把验证提升了一个时代,因为哪怕是放到现在企业盾(改编版)任能让逆向分析的人头疼不已。

为什么在大部分验证卖600、800的时候,企业盾卖6000并且还承诺被破退款,足以见得作者对此验证的自信。

先概括亮点:计算参数无法固定,时间增量检测防止跟踪,代码膨胀无法分析,没有特征无法定位,全ShellCode并全处在代码虚拟机的保护下。

是不是感觉挺复杂?别急,知道原理后,人人都能写出企业盾验证。

计算参数无法固定:参数有rdtsc、cpuid、peb、teb中一些信息,固定参数和返回值这一条路走不通了。

时间检测防止跟踪:ShellCode里面插入了大量的rdtsc检测时间,只要在盾代码中暂停一下,就能产生许许多多意想不到的错误。

代码膨胀:也就是插入了非常多的垃圾指令,毕竟这盾shellcode是要“明文”发给用户的,如果没有耐心,应该都分析不完。

没有特征:就是一段shellcode,不调用函数,被全VM了,该如何去定位。

原理:取一些无法固定的参数,提交到服务器,经过种种复杂的运算,得到一些结果值,并保存到FS里面,然后用户使用SDK,在代码中插入shellcode,对参数值和结果值进行校验,校验失败,程序崩溃退出。

虽然企业盾确实很强,但也不是无解的,很快有大佬发现,如果能快速定位到最后对结果值判断的跳转,那么则能跳过前面的一系列检查,而刚好附近有一些VM不到的特权指令(cpuid,rdtsc),然后就是硬刚VM的画面了,不过VM嘛大佬们都有工具。当然也有一些更为简单的方法,这里不过多讨论。

9.一键式网络验证

这种验证包括后来各种模仿盾,跟E盾算是同时期的,因为并没有太多亮点能提高一个时代的,也许各家验证现在也都到了发展的瓶颈阶段。经常看到有讨论QP量子、麻婆、SP等等,各家有各家的长处吧,但是都没有像本地->PHP->企业盾,这样大维度提升,也许只是我没有了解到,各家的粉丝,友好交流勿喷勿喷。

10.防破J建议

本文上面介绍了多种相关名词,也介绍了多种常见的破J方法,如何在一定程度上防止被破J,我给大家提供几点建议:

1.合理使用壳SDK函数:调用SDK函数可以将你的函数代码保护在壳代码虚拟机里面,可以很大程度的保护软件代码,提高分析难度。注意是合理,并不是越多越好,因为保护之后代码执行效率会变低。

2.对于关键的函数代码,要清楚函数调用栈的问题。例如你调用了某某模块的函数或者调用了支持库的函数,你的代码是加密了,但是模块内和支持库内的代码是没有加密的。

3.减少明文字符串的使用,能用整型就用整型。

4.自实现一个生产随机数,并保护起来。

5.自实现一个加解密算法。

其实防破J跟验证关系不大,公开的验证,主流的验证注定分析的人多,所以针对性的工具也多。拿VMP举例,世界一流的强壳了,但也是分析资料最多的壳,各种各样的过VMP检测的工具烂大街。E盾企业盾再强,在大佬们的工具下面,也不堪一击。所以,验证只是提供一个平台,一个用户管理服务,一个可以让你用得舒服的验证平台,能够更好的发挥出你云计算的强度。最好的防破J永远是自己写的,因为自己写的源代码是保密的不会公开,再基于壳代码虚拟机保护下,分析的成本大大增加。不论是源码级对接,还是一键式的验证,往往最难破的部分,在于用户自己写的云计算。

易语言逆向交流群:500002537


结帖率:67% (4/6)
发表于 6 天前 | 显示全部楼层   上海市上海市
破不了 就D死
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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