壳,即坚硬的外皮,当壳的厚度与其曲面率半径的比值小于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. 树的直径【p3629】[APIO2010]巡逻

    Description 在一个地区中有 n 个村庄,编号为 1, 2, ..., n.有 n – 1 条道路连接着这些村 庄,每条道路刚好连接两个村庄,从任何一个村庄,都可以通过这些道路到达其 他任一 ...

  2. 差分【p3948】 数据结构

    顾z 你没有发现两个字里的blog都不一样嘛 qwq 题目描述-->p3948 数据结构 分析 其实这题完全没有分析的 qwq. 只是因为写了差分数组相关知识,所以顺便写一下题解 qwq. 对于 ...

  3. JSP(待更新)

    1.概念: 所谓JSP就是在HTML中嵌入大量的java代码而已.

  4. mysql中单表多timestamp设置default问题

    mysql中,同一个表多个timesatmp字段设置default的时候,经常会报错. 一个表只能有一个设置default的字段. 但是有时只有一个字段设置default也会报错. 会报:Incorr ...

  5. 【sublime】sublime Text 3 javaScript代码自动提示插件&安装步骤 &启动Debug模式

    最近使用sublime开发node.js,但是sublime的js代码在书写的时候并没有提示功能. 因此搜到资料,用于安装代码自动提示插件. 1.打开sublime,然后快捷键Ctrl+Shift+P ...

  6. mailkit----163邮箱登录拉取邮件的坑

    在使用mailkit的ImapClient拉取邮件的时候,如果我们使用的是网易的邮箱(如:163.126等),如果你没有按照网易的设置去打开IMAP协议,那么将无法登录邮箱,并且发送一封使用不安全的客 ...

  7. squid 访问日志记录

    squid日志记录在squid.conf 也可记录.并且squid日志可以不记录静态项 在squid.conf 加入 (1)access_log /var/log/squid/access.log  ...

  8. nginx静态资源配置

    解决EE工程中静态文件显示问题 在工程中本地测试没有问题,发现使用nginx配置了路径的页面,会获取不到相应页面的静态文件问题 静态文件的路径类似为: http://localhost:8080/sa ...

  9. 【Hadoop】HDFS冗余数据块的自动删除

    HDFS冗余数据块的自动删除 在日常维护hadoop集群的过程中发现这样一种情况: 某个节点由于网络故障或者DataNode进程死亡,被NameNode判定为死亡, HDFS马上自动开始数据块的容错拷 ...

  10. Linux取消挂载,删除用户及其目录

    取消挂载 取消挂载命令: umount /dev/sdb 命令umount 文件系统/挂载点 umount /dev/sdb 例如:umount /dev/sdb即可将sdb1取消挂载. 如果出现de ...