壳,即坚硬的外皮,当壳的厚度与其曲面率半径的比值小于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. 2018 JUST Programming Contest 1.0 题解

    题目链接  gym101778 Problem A 转化成绝对值之后算一下概率.这个题有点像 2018 ZOJ Monthly March Problem D ? 不过那个题要难一些~ #includ ...

  2. JDBC二部曲之_事物、连接池

    事务 事务概述 事务的四大特性(ACID) 事务的四大特性是: l  原子性(Atomicity):事务中所有操作是不可再分割的原子单位.事务中所有操作要么全部执行成功,要么全部执行失败. l  一致 ...

  3. PHP添加mcrypt扩展模块

    PHP添加mcrypt扩展模块 系统环境:CentOS6.3 APACHE:httpd-2.4.2 PHP:php-5.3.21 一.安装mcrypt 1.下载Libmcrypt,mhash,mcry ...

  4. 理解Promise简单实现的背后原理

    在写javascript时我们往往离不开异步操作,过去我们往往通过回调函数多层嵌套来解决后一个异步操作依赖前一个异步操作,然后为了解决回调地域的痛点,出现了一些解决方案比如事件订阅/发布的.事件监听的 ...

  5. java 的""和null的区别

    null和""的区别 问题一: null和""的区别 String s=null; string.trim()就会抛出为空的exception String s ...

  6. 用于快速排查Java的CPU性能问题(top us值过高)

    转载于GIT路径 https://github.com/oldratlee/useful-scripts/blob/master/docs/java.md#beer-show-busy-java-th ...

  7. 使用Spring开发和监控线程池服务

    第1步:添加maven 项目 第2步:添加依赖库 将Spring的依赖添加到Maven的pom.xml文件中. 1 2 3 4 5 6 7 8 9 10 11 <!-- Spring 3 dep ...

  8. android项目 之 记事本(13) ----- 查看图片及播放录音

    本文是自己学习所做笔记,欢迎转载.但请注明出处:http://blog.csdn.net/jesson20121020 今天就来实现下查看图片及录音的功能,在编辑或者浏览记事时,点击图片.打开一个自己 ...

  9. Scrapy的介绍和用法

    转载:https://www.toutiao.com/i6493421606306578958/ Scrapy是爬虫必须学会的一个框架!他确实很难搞的透彻!今天就不给大家全部介绍了!还是介绍其中的Cr ...

  10. Sending SMS And Dialing Numbers without User Consent(Context is not needed)

    Sending SMS And Dialing Numbers without User Consent Sending SMS does not require context or user in ...