ps520 发表于 2009-10-24 17:48

软件安全新起点【~】

软件安全一直是我们关注的焦点、除了强壳与SDK的结合,我们还有什么可以做的呢?
本文通过对目前安全性最低的语言:易语言进行分析,让大家可以熟悉几种还可以的保护方法。
-------------------------------
一:内存动态解密+载入[例程:VisoEngine3.0 test]
VisoEngine3.0 test采用的原理是先将功能集成为DLL,然后对其用特定算法进行加密。装入自己写的外壳,然后调用解密函数
与内存加载函数即可。本方法被LCG的tale大牛6字节攻破,其原因是因为本身Test是作为加载器,而不是代码储存的地方。在
实际执行过程中Nop掉Call是无法正常执行软件功能的,所以这还是一种比较安全的方法!
具体的一些步骤:
1.采用一种可以加解密的算法,将编译成DLL的软件处理为*.pve(pve可为其他指定名称)
2.新建一个无窗口代码,启动子程序下写入解密pve代码
3.将被解密的pve用动态加载DLL加载
4.将变量pve赋值为{0}
这样我们就完成了自己的软件防护第一层。
安全表现:
1.有效防止本地文件破解,但对Loader动态Patch无保护效果。可另行解决。
2.调试的复杂性,因为DLL的特殊性无法进行一些调试操作。

推荐指数:★★★★☆

二:注入式无痕代码[例程:VisoEngine4.0 test]
VisoEngine4.0 test采用了这种技术。
步骤:
1.同样将程序写成DLL的格式,并进行加壳保护等。保护完成后将其用算法加密。
2.用内存DLL注入法将解密后的DLL注入其他进程或自进程,并调用接口函数。
这种方法的好处在于将DLL无痕化。但在实际使用过程中发现,有时DLL会变成*.EXE的样子。
可以做到无痕隐形化。如果配合双重执行程序,将自己注入到自身那么就更加完美了。减少了污染嘛~
安全表现:
1.将自身代码隐藏起来,并且不妨碍加壳等动作,可以让DLL完美隐形。
2.无法Dump,对于程序的安全性有保障。并且调试本身就是难事。

推荐指数:★★★★★☆

三:双进程[狼狈为奸]型
该动作一般都是壳做的,这里为了赚精华,于是也套进来。
这时我们需要利用的是进程通信技术,就是两个进程互相通信。
一般而言这两个进程必须同存,独立存在即有问题,而我们在分工上一般是让1个作为主进程,
也就是软件的原形,一个作为外部保护程序,用于检查执行环境、校验程序数据等。但是既然要赚
精华,肯定就要走出自己的特色啦。所以我推荐是:
让两个进程拥有部分功能,通过进程通信召唤另一个程序执行代码!这是一个新兴的理念,为什么呢?
如果两个进程独立存在,代码是不完整的,所以无法使用;如果两个进程同时存在,它们的校验和保护生效,
会让破解难度系数如GDP般增长。而进程通信可以传递大量数据,所以无需担心参数无法传递的问题!
狼狈为奸肯定要玩得狠点,我们把其中一个用加密算法保护,然后用内存加载EXE执行,这样两个进程相互依存,
会让对方手足无措,这意味着必须开两个OD两边跟!因为这和DLL不同,DLL可以在一个OD里查看(注入除外),EXE是
独立的俩段程序。
步骤:
1.编译第一个程序,留好接口等,将其用算法压缩。
2.写第2个,将第一个算法压缩后的作为release加入程序。
3.实现进程互相通信。
这个方法看起来很麻烦,但如果第一次做的时候把一个常用功能集成为模块,也就很简单了!

安全表现:
1.手忙脚乱,代码横行。
2.单一进程存在则代码不完整,双进程则保护生效!
推荐指数:★★★★★

四:校验海量+变异
一般我们习惯写N多校验,为偷懒直接用复制粘贴。这样大家以为可以让Crackers忙一阵子,不过
其实也很简单,比如可以直接Jmp到校验最后一个,然后Nop~
那么我们应该怎么变呢?
方法就是在每个校验下初始一些必要数据,如果被Jmp了,那么就无法正常执行数据咯~
变异就是把程序的逻辑顺序改变或用其他方法达到相同效果:
.版本 2
.如果 (取反 (A))
    C ()
.否则
    B ()
.如果结束

变异为


.版本 2
.如果 (A)
    B ()
.否则
    C ()
.如果结束


这样单一的特征码便无法轻松除掉咱的校验了!
推荐指数:★★★★


五:暗桩阵
暗桩阵是我们常用的技术,但如何才能做到真正发挥暗桩的功能呢?
我们可以在一些事件里放暗桩,比如在窗口获得焦点里放,也可以在控件的事件里放。放
暗桩的要求是代码必须独立,意思就是别都调用同一个校验,这样Nop或者其他方法就可以Pass。
另外我们可以在注册后的功能里加入暗桩,同样防不胜防啊~

推荐指数:★★★★★★

千年de黄昏 发表于 2009-10-24 17:50

还在学习。。暂时现在看的不是很懂!!!

ps520 发表于 2009-10-24 17:50

这篇文章是我敲了仨小时的成果。针对常见的校验等提出新的方式,达到一种新的强度。

希望各位大牛喜欢~别拍我

ps520 发表于 2009-10-24 17:58

还在学习。。暂时现在看的不是很懂!!!
千年de黄昏 发表于 2009-10-24 17:50 http://www.52pojie.cn/images/common/back.gif



以后深入学习时就可以明白了、加油~一起进步

什么也不是 发表于 2009-10-24 18:02

{:299_842:}
   膜拜520大牛

zapline 发表于 2009-10-24 18:06

额换个语言吧

ps520 发表于 2009-10-24 18:08

{:299_842:}
   膜拜520大牛
什么也不是 发表于 2009-10-24 18:02 http://www.52pojie.cn/images/common/back.gif



膜拜城管大人。。。

jipings 发表于 2009-10-24 21:22

学习学习!!!!!!

圣泪的爱 发表于 2009-10-25 11:47

:Dweeqw老朋友牛起来了?

ps520 发表于 2009-10-25 14:41

:Dweeqw老朋友牛起来了?
圣泪的爱 发表于 2009-10-25 11:47 http://www.52pojie.cn/images/common/back.gif



复古而已、、、、现在都是驱动+VM普及风暴时代了
页: [1] 2
查看完整版本: 软件安全新起点【~】