壳,即坚硬的外皮,当壳的厚度与其曲面率半径的比值小于0.5时。称为“薄壳”。反之称为“厚壳”。由壳演化来的胸甲,盾牌.

在计算机这个注重创意又不失从文化科技中汲取养分的世界里.你能够找到非常多有趣的东西与与现实相应.

比方漏洞攻击中的Payload原意便是导弹术语中有效载荷.而恶意程序在正常程序中复制自身的行为被称为感染,有这样的行为的恶意程序又被类比到生物学称为病毒.

随着专业人士对可执行文件执行机制的加深,破解行为越来越猖獗.相关法律法规不健全和执行力度不强.保护自己商业机密成为程序猿不得不考虑的任务.而病毒这样的寄生在目标程序中的,先于目标程序执行的行为,又被聪明的程序猿使用起来保护自己的软件资产.他们在程序执行前对程序本身进行加密.在寄生体执行起来后,寄生体開始解密自己的感染体程序并将它们放置在合理的位置.至此保护与反保护的大幕被徐徐揭开.

注:恶意程序对自身的保护的部分技术被用于壳中.诸如:

跟踪调试,反AntiASM,数据加密,代码迷惑,操作码混合,校验和,基于压缩的隐蔽代码,反跟踪,攻击性反制等

-<计算机病毒防范艺术>-PeterSzor

计算机壳保护程序,一般分为:

  • 压缩壳:著名代表是UPX.主要目的是降低程序体积.差点儿不採用破解反制措施.
  • 加密壳:大部分壳属于此范围,採用一种或者数种反制措施,时常包含一些环境探測和反调试等.
  • 虚拟机壳:通过相似于虚拟机的机制,将原程序拆解转换成保密的OPCode,通过模拟CPU,寄存器,堆栈,解释并执行被拆装后的程序.

虚拟机壳的代表是同一家公司的两款产品:ThemidaVMProtect.后者在虚拟机机制的基础上添加了很多其它的反调试功能并能针对特定代码段进行保护,以做到效率和安全性兼顾.

古人有云:不积硅步,不能至千里.我们这次壳之旅将从探讨“壳程序的需求”開始,然后从一款壳的打造实例来解说一些关键知识点.最后驰骋我们的想象,打造一款仅仅属于你自己的轻量程序保护壳.

你准备好了吗?



浅谈&quot;壳&quot;(一)的更多相关文章

  1. 浅谈Hybrid技术的设计与实现第二弹

    前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 接上文:浅谈Hybrid技术的设计与实现(阅读本文前,建议阅读这个先) ...

  2. 浅谈Android应用保护(一):Android应用逆向的基本方法

    对于未进行保护的Android应用,有很多方法和思路对其进行逆向分析和攻击.使用一些基本的方法,就可以打破对应用安全非常重要的机密性和完整性,实现获取其内部代码.数据,修改其代码逻辑和机制等操作.这篇 ...

  3. 浅谈android代码保护技术_ 加固

    浅谈android代码保护技术_加固 导语 我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服.虽然我们混淆,做到native层,但 ...

  4. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  5. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

  6. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  7. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  8. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

  9. 浅谈angular2+ionic2

    浅谈angular2+ionic2   前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别.   1. 项目所用:angular2+ionic2 ...

随机推荐

  1. J.U.C并发框架源码阅读(九)LinkedBlockingQueue

    基于版本jdk1.7.0_80 java.util.concurrent.LinkedBlockingQueue 代码如下 /* * ORACLE PROPRIETARY/CONFIDENTIAL. ...

  2. Codeforces 626F Group Projects (DP)

    题目链接  8VC Venture Cup 2016 - Elimination Round 题意  把$n$个物品分成若干组,每个组的代价为组内价值的极差,求所有组的代价之和不超过$k$的方案数. ...

  3. 洛谷——P2660 zzc 种田

    P2660 zzc 种田 题目背景 可能以后 zzc就去种田了. 题目描述 田地是一个巨大的矩形,然而zzc 每次只能种一个正方形,而每种一个正方形时zzc所花的体力值是正方形的周长,种过的田不可以再 ...

  4. 八. 输入输出(IO)操作8.文件的压缩处理

    Java.util.zip 包中提供了可对文件的压缩和解压缩进行处理的类,它们继承自字节流类OutputSteam 和 InputStream.其中 GZIPOutputStream 和 ZipOut ...

  5. 如何避免CSS :before、:after 中文乱码

    问题: 在进行页面开发时,经常会使用:before, :after伪元素创建一些小tips,但是在:before或:after的content属性使用中文的话,会导致某些浏览器上出现乱码. 解决方案: ...

  6. android中的开机自启动

    android中的开机自启动 android中的开机自启动可分为两步: 1.写一个BroadcastReceiver: public class BootReceiver extends Broadc ...

  7. Jackson反序列化提示:Can not deserialize instance of Task out of START_ARRAY token

    解决方法: 1.没有绝对的方法,只能不断的测试和排查. 2.检查一下JSON数据和实体的字段结构是不是不一致导致的.比如JSON数据是数组,而实体字段为非数组. 参考: https://stackov ...

  8. 教程:基于Spring快速开发电子邮件发送功能

    在Spring框架的spring-context-support.jar中有对电子邮件发送功能的封装: 基于Spring开发简单省事,而且更稳定.需要mail.jar包支持 @Component pu ...

  9. jtds链接SqlServer数据库(整合)

    先前使用的时候没做汇总,现在结合遇到的问题总结下. 开始使用jdbc驱动配置调用SqlServer不合适,根据网上的资料修改成了jtds配置方式. 当时使用的maven配置,配置如下: <spa ...

  10. 解析HTML文件 - 运用SgmlReader类来解析HTML文件

    运用.NET Framework类来解析HTML文件.读取数据并不是最容易的.虽然你可以用.NET Framework中的许多类(如StreamReader)来逐行解析文件,但XmlReader提供的 ...