浅谈"壳"(一)
壳,即坚硬的外皮,当壳的厚度与其曲面率半径的比值小于0.5时。称为“薄壳”。反之称为“厚壳”。由壳演化来的胸甲,盾牌.
在计算机这个注重创意又不失从文化科技中汲取养分的世界里.你能够找到非常多有趣的东西与与现实相应.
比方漏洞攻击中的Payload原意便是导弹术语中有效载荷.而恶意程序在正常程序中复制自身的行为被称为感染,有这样的行为的恶意程序又被类比到生物学称为病毒.
随着专业人士对可执行文件执行机制的加深,破解行为越来越猖獗.相关法律法规不健全和执行力度不强.保护自己商业机密成为程序猿不得不考虑的任务.而病毒这样的寄生在目标程序中的,先于目标程序执行的行为,又被聪明的程序猿使用起来保护自己的软件资产.他们在程序执行前对程序本身进行加密.在寄生体执行起来后,寄生体開始解密自己的感染体程序并将它们放置在合理的位置.至此保护与反保护的大幕被徐徐揭开.
注:恶意程序对自身的保护的部分技术被用于壳中.诸如:
跟踪调试,反AntiASM,数据加密,代码迷惑,操作码混合,校验和,基于压缩的隐蔽代码,反跟踪,攻击性反制等
-<计算机病毒防范艺术>-PeterSzor
计算机壳保护程序,一般分为:
- 压缩壳:著名代表是UPX.主要目的是降低程序体积.差点儿不採用破解反制措施.
- 加密壳:大部分壳属于此范围,採用一种或者数种反制措施,时常包含一些环境探測和反调试等.
- 虚拟机壳:通过相似于虚拟机的机制,将原程序拆解转换成保密的OPCode,通过模拟CPU,寄存器,堆栈,解释并执行被拆装后的程序.
虚拟机壳的代表是同一家公司的两款产品:Themida和VMProtect.后者在虚拟机机制的基础上添加了很多其它的反调试功能并能针对特定代码段进行保护,以做到效率和安全性兼顾.
古人有云:不积硅步,不能至千里.我们这次壳之旅将从探讨“壳程序的需求”開始,然后从一款壳的打造实例来解说一些关键知识点.最后驰骋我们的想象,打造一款仅仅属于你自己的轻量程序保护壳.
你准备好了吗?
浅谈"壳"(一)的更多相关文章
- 浅谈Hybrid技术的设计与实现第二弹
前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 接上文:浅谈Hybrid技术的设计与实现(阅读本文前,建议阅读这个先) ...
- 浅谈Android应用保护(一):Android应用逆向的基本方法
对于未进行保护的Android应用,有很多方法和思路对其进行逆向分析和攻击.使用一些基本的方法,就可以打破对应用安全非常重要的机密性和完整性,实现获取其内部代码.数据,修改其代码逻辑和机制等操作.这篇 ...
- 浅谈android代码保护技术_ 加固
浅谈android代码保护技术_加固 导语 我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服.虽然我们混淆,做到native层,但 ...
- 浅谈 Fragment 生命周期
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...
- 浅谈 LayoutInflater
浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...
- 浅谈Java的throw与throws
转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...
- 浅谈SQL注入风险 - 一个Login拿下Server
前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...
- 浅谈WebService的版本兼容性设计
在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...
- 浅谈angular2+ionic2
浅谈angular2+ionic2 前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别. 1. 项目所用:angular2+ionic2 ...
随机推荐
- 计蒜客 28437.Big brother said the calculation-线段树+二分-当前第k个位置的数 ( ACM训练联盟周赛 M)
M. Big brother said the calculation 通过线段树维护. 这个题和杭电的一道题几乎就是一样的题目.HDU5649.DZY Loves Sorting 题意就是一个n的排 ...
- CF978B File Name【数组操作/序列判断连续出现>=3次的‘x’个数】
CF978B File Name [分析]:设置计数器cnt,计数x的个数:遇到非x,若cnt>=3的话累加多出的个数,计数器清零:若最后cnt>=3说明没遇到非x无法清零,那后部分就都是 ...
- linux中,在在shadowsoks下怎么更新软件
在shadowsoks下怎么更新软件 先描述一下我的情况.我们学校不给大一开通校园网,我自己租用了***的vps服务器,搭建shadowsocks,(使用ipv6地址才能连接),开始了自己悲催的上网生 ...
- Spring项目搭建
1,新建web项目 2,导入jar包 3,编写配置文件 <?xml version="1.0" encoding="UTF-8"?> <bea ...
- iPhone 通过UIRequiredDeviceCapabilities指定程序适用于哪些设备
以前在itunes中查看某个应用时,会有说明信息,表明程序适用于ios 1.0,2.0,3.0什么的. 上周末将Key Manager上传到app store时,一直有个疑问,就是没有发现填写程序适用 ...
- dxFlowChart运行时调出编辑器
dxFlowChart运行时调出编辑器 uses dxFcEdit; procedure TForm1.Button1Click(Sender: TObject);var f: TFChartEdit ...
- UVa116 (单向TSP,多决策问题)
/*----UVa1347 单向TSP 用d(i,j)表示从格子(i,j)出发到最后一列的最小开销 则在(i,j)处有三种决策,d(i,j)转移到d(i-1,j+1),d(i,j+1),d(i+1,j ...
- 决定干点事儿--翻译一下《effective modern c++》
写了非常多关于C++11的博客.总是认为不踏实,非常多东西都是东拼西凑.市场上也非常少有C++11的优秀书籍,但幸运的是Meyers老爷子并没有闲赋.为我们带来了<effective moder ...
- iptables 中的SNAT 和MASQUWERADE
NAT 是 network address translation 的缩写 网络地址转换 网络地址转换主要有两种:SNAT和DNAT,即源地址转换和目标地址转换 SNAT:源地址转换 eg:多台pc机 ...
- 改变PS1变量的颜色
2016.1.11今天学了改变PS1的颜色,怎么增加PS1变量找到文件(.bash_profile),或者bashrc export PS1="\[\e[32;1m\]Test $PWD&g ...