壳,加壳,脱壳,介绍壳的一些基本常识
壳,加壳,脱壳,介绍壳的一些基本常识
壳,加壳,脱壳,介绍壳的一些基本常识免杀入门 2009-08-06 16:58 阅读7 评论0 字号:大大中中小小在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。
它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。
就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。
由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。
就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。
从功能上抽象,软件的壳和自然界中的壳相差无几。
无非是保护、隐蔽壳内的东西。
而从技术的角度出发,壳是一段执行于原始程序前的代码。
原始程序的代码在加壳的过程中可能被压缩、加密……。
当加壳后的文件执行时,壳-这段代码先于原始程序运行,他把压缩、加密后的代码还原成原始程序代码,然后再把执行权交还给原始代码。
软件的壳分为加密壳、压缩壳、伪装壳、多层壳等类,目的都是为了隐藏程序真正的OEP(入口点,防止被破解)。
关于“壳”以及相关软件的发展历史请参阅吴先生的《一切从“壳”开始》。
(一)壳的概念作者编好软件后,编译成exe可执行文件。
1.有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名,即为了保护软件不被破解,通常都是采用加壳来进行保护。
2.需要把程序搞的小一点,从而方便使用。
于是,需要用到一些软件,它们能将exe可执行文件压缩,3.在黑客界给木马等软件加壳脱壳以躲避杀毒软件。
实现上述功能,这些软件称为加壳软件。
(二)加壳软件最常见的加壳软件ASPACK ,UPX,PEcompact 不常用的加壳软件WWPACK32;PE-PACK ;PETITE NEOLITE (三)侦测壳和软件所用编写语言的软件因为脱壳之前要查他的壳的类型。
1.侦测壳的软件fileinfo.exe 简称fi.exe(侦测壳的能力极强)。
2.侦测壳和软件所用编写语言的软件language.exe(两个功能合为一体,很棒),推荐language2000中文版(专门检测加壳类型)。
普通壳的脱壳方法和脱壳技巧
普通壳的脱壳方法和脱壳技巧脱壳是指将普通壳(通常指硬壳类)从内部原材料中取出的过程。
这个过程既需要一定的方法,也需要一些技巧。
下面我将详细介绍普通壳的脱壳方法和技巧。
脱壳主要分为以下几个步骤:准备工作、撬开壳体、去除壳体和整理内部原材料。
首先,准备工作是非常重要的。
需要准备好必要的工具,例如锤子、螺丝刀、剪刀、塑料袋等,以及切割和清洁壳体的材料,如剪刀、刀片、洗涤剂等。
接下来,需要撬开壳体。
首先,要检查壳体是否有任何阻挡物,如胶水、胶带或其他附着物。
如果有,需要小心地切除或剥离它们。
然后,可以用螺丝刀或剪刀等工具轻轻撬开壳体的缝隙,逐渐将缝隙扩大,直到可以插入手指或其他工具。
使用锤子轻轻敲击壳体,有时会使壳体裂开,从而更容易打开。
脱壳之后,要去除壳体。
根据壳体的类型和材料,不同的方法和技巧可以选择。
例如,对于较薄的塑料壳体,可以用手指轻松地撕裂或剥离。
对于较厚的金属壳体,可能需要使用剪刀或刀片进行切割。
切割时要小心不要损坏内部的原材料,以及不要让手指受伤。
最后,需要整理内部原材料。
脱壳后,可能会有一些残留的胶水、胶带或其他附着物,需要用洗涤剂和水或其他清洁剂擦拭清除。
同时,还要注意保持内部原材料的完整和安全。
如果壳体中还有其他零部件或线路,要小心保护它们,以免损坏。
在脱壳的过程中,还有一些技巧可以使用。
首先,要注意避免使用过大的力量,以免损坏壳体或内部原材料。
其次,可以选择从壳体的较薄、较弱的部位开始撬开,比如角落或接缝处,这样更容易开启壳体。
另外,使用锤子时,要轻轻敲击,以避免壳体破裂或内部原材料受损。
最后,选择适当的工具非常重要。
根据壳体的类型和特性,选择合适的工具可以更有效地完成脱壳过程。
总的来说,普通壳的脱壳方法和技巧在于准备工作的细致、撬开壳体的谨慎、去除壳体的适当、整理内部原材料的细致和使用合适的工具等。
希望以上的介绍对您有所帮助!。
Armadillo脱壳知识和方法大全
般情况下,这个跳转比较大的话,就改为jmp,而跳转比较小的话,就改nop)。[注:下此断点的目的是找到Magic Jump,修改Magic Jump目的
是避开的IAT的加密。]
2、找OEP
下断点bp GetCurrentThreadId/bp CreateThread,shift+f9运行,中断后,取消断点,Alt+F9返回,单步执行,看到一个call edi之类的。F7
进入,即到oep。OD不要关!打开import--选择进程--OEP输入va--自动搜索IAT--获取输入表--显示无效函数--CUT!
(二) 双线程的标准壳
总体步骤:1、要双变单;2、处理IAT,修改Magic Jump;3、寻找OEP;4、修复
1、双变单,方法有三。
方法一:PATCH代码法
004010109D popfd
0040101161 popad
00401012- E9 8F9FA777jmp KERNEL32.OpenMutexA
点右键选择重建eip,f9运行,断下后,取消断点, ctrl+g到00401000,恢复修改。
方法二:下断点BP OpenMutexA,SHIFT+F9运行,断下后,ALT+F9返回,返回后,将返回代码下面的第一个跳转改为相反跳转,再次SHIFT+F9
,断下后,ALT+F9返回,再次将返回代码下面的第一个跳转改为相反跳转。然后再一次SHIFT+F9,取消断点,至此,同样,双进程转单进程完毕!
此法相对简单,另外适用于00401000空数据不能修改的程序。
(2)修改Magic Jump 。
下断BP GetModuleHandleA+5,运行,一般是在堆栈窗口出现ASCII "kernel32.dll"和ASCII "VirtualFree后,再运行一次,就是返回时机,中
脱壳基础知识入门
脱壳基础知识入门现在加解密发展己形成2个分支了,一个就是传统的算法,另一个就是加密壳。
越来越多的软件采用了密码学相关算法,现在要做出一个软件注册机己不象前几年那么容易,这就要求解密者必须要有一定的数学功底和密码学知识,而这些在短时间内是不容易掌握的。
除了密码学的应用,越来越多的软件加壳了,因此要求解密者必须掌握一些脱壳技术,这就使得壳成了解密必须迈过的一个门槛。
壳发展到今天,强度越来越高了,将许多人挡在门外,使得大家望壳兴叹。
另外,论坛现在两极分化比较严重,高手讨论的脱壳技术新手看不懂,很多人想学脱壳,但看到壳这么难,只好放弃了,造成新手与高手间一个断档,为了鼓励更多新人加入脱壳的行列,很有必要将壳有关知识总结一下。
主页提供的教学确实有点过时了,己到非更新不可了。
相对于密码学算法,脱壳并不难,只要肯花时间,短期内还是比较容易取得成绩的。
第一课 PE格式要想学脱壳,第一步就得掌握PE格式,PE是Portable Executable File Format(可移植的执行体)简写,它是目前Windows平台上的主流可执行文件格式。
Microsoft Visual C++提供的WINNT.H里有PE数据结构的完整定义。
推荐文档:ah007翻译的“PE文件格式”1.9版qduwg翻译的PE文件格式Iczelion's 的PE文件格式PE结构各字段偏移参考学习PE格式的方法是自己先准备一个十六进制工具,如HexWorkshop,WinHex,用这些工具打开一个EXE文件对照着学。
强烈推荐你用Stud_PE v.2.2.0.5这款工具辅助学习PE格式。
PE格式学习的重点是在输入表(Import Table)这块。
Stud_PE工具界面:PE结构图:第二课 SEH技术结构化异常处理(Structured Exception Handling,SEH)是Windows操作系统处理程序错误或异常的技术。
SEH是Windows操作系统的一种系统机制,与特定的程序设计语言无关。
Crack软件破解脱壳入门术语简介
SMC : (self-modifying code) 意思是自我修改的代码,使程序在运行时自我修改,用途包括:
- 使一些重要的跳转位置爆破无效化 (以 smc 对重要位置进行覆写)
- 使一些重要代码隐藏 (在必要时才实时产生重要代码段,防止程序被人静态分析,也防止一些透过搜寻的破解方法)
RSA : 是一套加密技术 (public key infrastructure),它被广泛应用于各种层面,由一对密钥 (public key 和 private key) 的组合,提供安全的资料加密
Symmetric encryption : 对称加密,意思是加密和解密的 secret key 是相同的,例如 DES, AES, Blowfish
VA : (Virtual Address) 内存虚拟空间中的一个位置,在 PE 描述中的意思是 : PE 被载入后,区块在内存的确实位置
Offset : 意思是偏移值,通常用于指明一个位置,它的用法是把一个基底位置加上 offset 值 (offset 可以是负数)。 例如我们说 : 一个资料结构在内存中的位置是 0x125000,它的 offset 0x10 处是用户名字, offset 0x14 是用户序号。在 PE 结构中, offset 通常用于指明在 exe 档案中的实际位置
【入门术语简介】
(更详尽的资料,请Байду номын сангаас考看雪论坛精华,或看雪的书籍)
加壳 : 表示程序的 exe 被一层外壳保护,这层外壳是一些软件保护公司 (或一些高手) 设计出来的,可以把 exe包裹起来,在 exe 执行时提供保护,对抗破解者
爆破 : 意思是透过修改程序,来达到破解目的,主要方法包括,修改重要跳转指令 (jmp, jz, jzn, 等等)
壳加壳脱壳介绍壳的一些基本常识
壳加壳脱壳介绍壳的一些基本常识壳(Shell)是计算机操作系统的一种用户接口,它提供了用户与操作系统内核之间的交互方式。
它是用户与操作系统之间的纽带,使用户能够通过命令、脚本等方式与操作系统进行交互。
加壳(Packaging)指的是给软件程序添加额外的代码,以便增加安全性、保护程序免受非法分析和篡改。
加壳技术可以对软件进行加密,防止逆向工程和盗版,同时还可以实现防病毒和反调试的功能。
脱壳(Unpacking)是指将被加壳的软件程序恢复为原始的可执行文件。
通常情况下,脱壳是为了分析软件的结构和行为,或者绕过加壳的保护机制进行非法操作。
下面是一些基本的壳常识:1. 壳的种类:常见的壳包括命令行壳和图形用户界面壳。
命令行壳(例如Bash、PowerShell等)提供了一个命令行界面,用户可以通过输入命令来与操作系统进行交互。
图形用户界面壳(例如Windows的资源管理器、macOS的Finder等)提供了可视化的界面,用户可以通过鼠标点击和拖放来进行操作。
2.壳的功能:壳作为用户接口,提供了很多功能,例如操作文件和文件夹、运行程序、管理系统设置等。
它还可以提供脚本语言的支持,使用户可以通过编写脚本来自动化任务和定制操作。
3.壳的配置和定制:壳通常可以进行配置和定制,用户可以根据自己的需求设置壳的外观和行为。
例如,可以更改壳的主题、布局和颜色,添加自定义菜单和工具栏,设置快捷键等。
4. 壳脚本:壳脚本是一种用于定制壳行为的脚本语言。
例如,在Bash中,用户可以编写Shell脚本来自动执行一系列命令和操作。
壳脚本可以用于自动化任务、批处理、系统管理等方面。
5.加壳的原因和目的:加壳可以增加软件的安全性,保护知识产权和商业机密。
它可以防止软件被逆向工程,避免黑客和破解者篡改程序逻辑或者盗版软件。
加壳还可以实现软件的防病毒功能,使病毒难以对软件进行分析和感染。
6.加壳的原理和技术:加壳通常通过改变软件的结构和代码来实现。
加壳与脱壳
壳
1.什么是壳? 2.加壳与脱壳 3.加壳的加载过程 4.脱壳的实现过程
什么是壳?
在一些计算机软件里也有一段专门负 责保护软件不被非法修改或反编译的程序。 它们一般都是先于程序运行,拿到控制权, 然后完成它们保护软件的任务。由于这段 程序和自然界的壳在功能上有很多相同的 地方,基于命名的规则,就把这样的程序 称为“壳”了。
壳的加载过程
3.重定位 文件执行时将被映像到指定内存地址 中,这个初始内存地址成为基地址。 对于EXE的程序文件来说,Windows 系统会尽量满足,所以加壳软件把源程序 文件中用于保存重定位信息的区块干脆也 删除了。
壳的加载过程
4.HOOK-API 程序文件中的输入表的作用是让 Windows系统在程序运行时提供API的实际 地址给程序使用。在程序的第一行代码执 行之前,Windows系统就完成了这个工作。 壳一般都修改了原程序文件的输入表, 然后自己模仿Windows系统的工作来填充 输入表中相关的数据。
什么是壳?
壳的加载过程
1.获取壳自己所需要使用的API地址 如果用PE编辑工具查看加壳后的文件,会发 现未加壳的文件和加壳后的文件的输入表不一样, 加壳后的输入表一般所引入的DLL和API函数很少, 甚至只有Kernel32.dll以及GetProcAddress这个 API函数。 壳实际上还需要其他的API函数来完成它的 工作,为了隐藏这些API,它一般只在壳的代码 中用显式链接方式动态加载这些API函数
脱壳
一般的压缩壳,都有专用的脱壳机,或者 用万能脱壳机也可以,如:procdump。而 加密壳一般很少有脱壳机,必须手动脱 壳手动脱壳----三步 1.查找程序的真正入口点(OEP) 2.抓取内存映像文件 3.输入表重建
什么叫脱壳
什么叫脱壳作为一个以“壳”为主的站台,如果连访者连什么是“壳”都不清楚的话,那我也太失败了。
很早以前就想写编完全关于“壳”的文章,但苦于时间和文字水平的关系,都没提笔。
本着对站台负责的态度,现在经过一天的努力,“打”出这编尝试由壳的历史一直谈到最新发展的本章来。
首先我想大家应该先明白“壳”的概念。
在自然界中,我想大家对壳这东西应该都不会陌生了,植物用它来保护种子,动物用它来保护身体等等。
同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。
它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。
就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。
由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。
就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。
最早提出“壳”这个概念的,据我所知,应该是当年推出脱壳软件 RCOPY 3 的作者熊焰先生。
在几年前的 DOS 时代,“壳”一般都是指磁盘加密软件的段加密程序,可能是那时侯的加密软件还刚起步不久吧,所以大多数的加密软件(加壳软件)所生成的“成品”在“壳”和需要加密的程序之间总有一条比较明显的“分界线”。
有经验的人可以在跟踪软件的运行以后找出这条分界线来,至于这样有什么用这个问题,就不用我多说了。
但毕竟在当时,甚至现在这样的人也不是很多,所以当 RCOPY3 这个可以很容易就找出“分界线”,并可以方便的去掉“壳”的软件推出以后,立即就受到了很多人的注意。
老实说,这个我当年在《电脑》杂志看到广告,在广州电脑城看到标着999元的软件,在当时来说,的确是有很多全新的构思,单内存生成 EXE 可执行文件这项,就应该是世界首创了。
但它的思路在程序的表现上我认为还有很多可以改进的地方(虽然后来出现了可以加强其功力的RO97),这个想法也在后来和作者的面谈中得到了证实。
外壳知识点总结
外壳知识点总结一、外壳的概念外壳是指覆盖在物体表面上的保护性结构,可以保护物体不受外界的损害。
在生物学中,外壳也指动植物体外具有保护功能的结构。
在工程学中,外壳是指包裹在设备或机械结构表面的保护层,可防腐、防爆、防尘。
在计算机科学中,外壳(shell)是用来启动程序和向操作系统发送命令的软件。
二、外壳的类型1. 生物学中的外壳在生物学中,外壳是许多动植物的一种特殊结构,用来保护身体或结构。
比如,鸡蛋的外壳、甲壳类动物的外骨骼等。
2. 工程学中的外壳在工程学中,外壳通常是指一种覆盖在设备、机械或结构表面的保护层。
根据材料和用途的不同,工程学中的外壳可以分为金属外壳、塑料外壳、玻璃外壳等。
3. 计算机科学中的外壳在计算机科学中,外壳是一种用户与操作系统交互的软件。
外壳可以分为命令行外壳和图形化外壳两种。
三、外壳的功能1. 保护功能外壳的最基本功能是保护物体不受外界损害。
例如,机械设备的外壳可以防止设备零部件受到外界物体的碰撞和磨损。
2. 美观功能外壳还可以起到美化物体的作用,使物体看起来更加整洁、精致。
3. 防护功能外壳还可以起到防护作用,如防火、防腐、防爆、防尘等。
4. 用户交互功能计算机科学中的外壳还可以作为用户与操作系统交互的界面,用户可以通过外壳向操作系统发送命令,执行各种操作。
四、外壳的制造材料1. 金属外壳金属外壳多用于机械设备、电子产品等,常见的金属外壳材料有铝合金、不锈钢等。
2. 塑料外壳塑料外壳多用于家用电器、手机等产品,常见的塑料外壳材料有ABS、PC、PP等。
3. 玻璃外壳玻璃外壳通常用于手机、平板等电子设备,常见的玻璃外壳材料有康宝莱、大猩猩玻璃等。
五、计算机科学中的外壳在计算机科学中,外壳是用户与操作系统交互的界面,可以分为命令行外壳和图形化外壳。
1. 命令行外壳命令行外壳是一种纯文本界面,用户通过输入命令来与操作系统进行交互,常见的命令行外壳有Bash、PowerShell等。
脱壳基础知识入门
脱壳基础知识入门现在加解密发展己形成2个分支了,一个就是传统的算法,另一个就是加密壳。
越来越多的软件采用了密码学相关算法,现在要做出一个软件注册机己不象前几年那么容易,这就要求解密者必须要有一定的数学功底和密码学知识,而这些在短时间内是不容易掌握的。
除了密码学的应用,越来越多的软件加壳了,因此要求解密者必须掌握一些脱壳技术,这就使得壳成了解密必须迈过的一个门槛。
壳发展到今天,强度越来越高了,将许多人挡在门外,使得大家望壳兴叹。
另外,论坛现在两极分化比较严重,高手讨论的脱壳技术新手看不懂,很多人想学脱壳,但看到壳这么难,只好放弃了,造成新手与高手间一个断档,为了鼓励更多新人加入脱壳的行列,很有必要将壳有关知识总结一下。
主页提供的教学确实有点过时了,己到非更新不可了。
相对于密码学算法,脱壳并不难,只要肯花时间,短期内还是比较容易取得成绩的。
第一课PE格式要想学脱壳,第一步就得掌握PE格式,PE是Portable Executable File Format(可移植的执行体)简写,它是目前Windows平台上的主流可执行文件格式。
Microsoft Visual C++提供的WINNT.H里有PE数据结构的完整定义。
推荐文档:ah007翻译的“PE文件格式”1.9版qduwg翻译的PE文件格式Iczelion's的PE文件格式PE结构各字段偏移参考学习PE格式的方法是自己先准备一个十六进制工具,如HexWorkshop,WinHex,用这些工具打开一个EXE文件对照着学。
强烈推荐你用Stud_PE v.2.2.0.5这款工具辅助学习PE格式。
PE格式学习的重点是在输入表(Import Table)这块。
Stud_PE工具界面:PE结构图:第二课SEH技术结构化异常处理(Structured Exception Handling,SEH)是Windows操作系统处理程序错误或异常的技术。
SEH是Windows操作系统的一种系统机制,与特定的程序设计语言无关。
壳是什么
壳是什么?脱壳又是什么?这是很多经常感到迷惑和经常提出的问题,其实这个问题一点也不幼稚。
当你想听说脱壳这个名词并试着去了解的时候,说明你已经在各个安全站点很有了一段日子了。
下面,我们进入“壳”的世界吧。
一、金蝉脱壳的故事我先想讲个故事吧。
那就是金蝉脱壳。
金蝉脱壳属于三十六计中的混战计。
金蝉脱壳的本意是:寒蝉在蜕变时,本体脱离皮壳而走,只留下蝉蜕还挂在枝头。
此计用于军事,是指通过伪装摆脱敌人,撤退或转移,以实现我方的战略目标的谋略。
稳住对方,撤退或转移,决不是惊慌失措,消极逃跑,而是保留形式,抽走内容,稳住对方,使自己脱离险境达到己方战略目标,己方常常可用巧妙分兵转移的机会出击另一部分敌人。
三国时期,诸葛亮六出祁山,北伐中原,但一直未能成功,终于在第六次北伐时,积劳成疾,在五丈原病死于军中。
维遵照诸葛亮的吩咐,在诸葛亮死后,秘不发丧,对外严密封锁消息。
他带着灵柩,秘密率部撤退。
司马懿派部队跟踪追击蜀军。
姜维命工匠仿诸葛亮摸样,雕了一个木人,羽扇纶巾,稳坐车中。
并派杨仪率领部分人马大张旗鼓,向魏军发动进攻。
魏军远望蜀军,军容整齐,旗鼓大张,又见诸葛亮稳坐车中,指挥若定,不知蜀军又耍什么花招,不敢轻举妄动。
司马懿一向知道诸葛亮“诡计多端”,又怀疑此次退兵乃是诱敌之计,于是命令部队后撤,观察蜀军动向。
姜维趁司马懿退兵的大好时机,马上指挥主力部队,迅速安全转移,撤回汉中。
等司马懿得知诸葛亮已死,再进兵追击,为时已晚。
相信这个故事,大家在大型连续剧《三国演义》里已经看过了。
呵呵,只是没有理解得这么深入罢了!而在黑客入侵技术中,金蝉脱壳则是指:删除系统运行日志攻击者攻破系统后,常删除系统运行日志,隐藏自己的痕迹...呵呵二、壳,脱壳,加壳在自然界中,我想大家对壳这东西应该都不会陌生了,由上述故事,我们也可见一斑。
自然界中植物用它来保护种子,动物用它来保护身体等等。
同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。
软件加壳、脱壳基础介绍
软件加壳、脱壳基础介绍什么是加壳加壳的全称应该是可执⾏程序资源压缩,压缩后的程序可以直接运⾏。
加壳,顾名思义,就是给⼀个东西加上⼀个壳,只不过这⾥是程序。
就好⽐这⼤⾃然中的种⼦⼀样,为了保护⾃⼰,有⼀层壳,要想看到⾥⾯的东西,就要剥开这层壳。
加壳的另⼀种常⽤的⽅式是在⼆进制的程序中植⼊⼀段代码,在运⾏的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的⽬的是隐藏程序真正的OEP(⼊⼝点,防⽌被破解)。
⼤多数病毒就是基于此原理。
加壳的程序需要阻⽌外部程序或软件对加壳程序本⾝的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运⾏。
这种技术也常⽤来保护软件版权,防⽌软件被破解。
但对于病毒,加壳可以绕过⼀些杀毒软件的扫描,从⽽实现它作为病毒的⼀些⼊侵或破坏的⼀些特性。
加壳的⼯具分为压缩壳和加密壳:* UPX ASPCAK TELOCK PELITE NSPACK … ** ARMADILLO ASPROTECT ACPROTECT EPE SVKP …*什么是脱壳 脱壳就是将外⾯的保护程序脱掉,看到⾥⾯的程序。
对于有壳的程序,每次程序的⼊⼝点总是从壳开始,,这个⼊⼝点是EP,那么源程序的⼊⼝点是OEP,壳将真正的OEP隐藏了,我们脱壳就是修改程序的⼊⼝点。
如何脱壳 如果没有基础的汇编知识,那就查出相应的壳,⽤相应的脱壳机进⾏脱壳,那如果,脱壳机⽆法脱呢?⼿动脱壳!基础知识1.PUSHAD (压栈)代表程序的⼊⼝点,2.POPAD (出栈)代表程序的出⼝点,与PUSHAD想对应,⼀般找到这个OEP就在附近3.OEP:程序的⼊⼝点,软件加壳就是隐藏了OEP(或者⽤了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以⽴刻脱壳。
脱壳的⽅法清单⽅法⼀:单步跟踪法1.⽤OD载⼊,点“不分析代码!”2.单步向下跟踪F8,实现向下的跳。
也就是说向上的跳不让其实现!(通过F4)3.遇到程序往回跳的(包括循环),我们在下⼀句代码处按F4(或者右健单击代码,选择断点——>运⾏到所选)4.绿⾊线条表⽰跳转没实现,不⽤理会,红⾊线条表⽰跳转已经实现!5.如果刚载⼊程序,在附近就有⼀个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP6.在跟踪的时候,如果运⾏到某个CALL程序就运⾏的,就在这个CALL中F7进⼊7.⼀般有很⼤的跳转(⼤跨段),⽐如 jmp XXXXXX 或者 JE XXXXXX 或者有RETN的⼀般很快就会到程序的OEP。
脱壳知识——精选推荐
脱壳知识什么是壳因为许多软件为了保护⾃⼰的软件不被和修改,通常会加壳,代码加密,增加破解的难度,从⽽达到保护软件的⽬的。
⾸先⼤家应该先明⽩“壳”的概念。
在⾃然界中,我想⼤家对壳这东西应该都不会陌⽣了,植物⽤它来保护种⼦,动物⽤它来保护⾝体等等。
同样,在⼀些计算机软件⾥也有⼀段专门负责保护软件不被⾮法修改或反编译的程序。
它们⼀般都是先于程序运⾏,拿到控制权,然后完成它们保护软件的任务。
举个例⼦,核桃⼤家都知道吧,想要吃到⾥⾯的⾁,就必须得先打开核桃外⾯那⼀层坚硬的壳,同样,外⾯想要看到⼀个程序的内部逻辑代码,就要脱掉外⾯的⼀层壳。
程序作者在编好软件后,编译成exe可执⾏⽂件。
有⼀些版权信息需要保护起来,不想让别⼈随便改动,如作者的姓名,即为了保护软件不被破解,通常都是采⽤加壳来进⾏保护。
需要把程序搞的⼩⼀点,缩⼩程序的体积,减少内存容量,从⽽⽅便使⽤。
于是,需要⽤到⼀些软件,它们能将exe可执⾏⽂件压缩,在⿊客界给⽊马等软件加壳以躲避杀毒软件。
实现上述功能,这些称为加壳。
⾃然有加壳就会有脱壳。
为什么要脱壳脱壳是为了能够学习⼀个软件的程序设计逻辑,达到我们想要的⽬的。
如果不脱壳,我们就不能够了解软件的逻辑,也就⽆法得到源代码,也就⽆法破解⼀个软件,也就不会有这篇⽂章了。
我们拿到⼀个软件想要了解它的编程逻辑,那么我们就需要对它进⾏反汇编,当然有壳,也必须先脱壳(有些软件也可以不脱壳破解)。
如果我们需要对⼀个病毒或者⽊马进⾏分析,也是需要脱壳的,如果病毒⽊马不加壳,早被杀毒软件杀掉了。
⼀些常见的壳1、aspack壳2.caspr2、upx壳3、PEcompact壳等等...我们要脱壳,就需要⽤到⼀些汇编的指令,这是必须的,如果不懂汇编指令的话,那么就⽆法进⾏软件的脱壳了。
下⾯我就来介绍破解需要的⼀些主要的汇编指令⼀、数据传输指令───────────────────────────────────────它们在存贮器和寄存器、寄存器和输⼊输出端⼝之间传送数据.1. 通⽤数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压⼊堆栈.POP 把字弹出堆栈.PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压⼊堆栈.POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压⼊堆栈.POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP 交换32位寄存器⾥字节的顺序XCHG 交换字或字节.( ⾄少有⼀个操作数为寄存器,段寄存器不可作为操作数)CMPXCHG ⽐较并交换操作数.( 第⼆个操作数必须为累加器AL/AX/EAX )XADD 先交换再累加.( 结果在第⼀个操作数⾥ )XLAT 字节查表转换.── BX 指向⼀张 256 字节的表的起点, AL 为表的索引值 (0-255,即0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL )2. 输⼊输出端⼝传送指令.IN I/O端⼝输⼊. ( 语法: IN 累加器, {端⼝号│DX} )OUT I/O端⼝输出. ( 语法: OUT {端⼝号│DX},累加器 )输⼊输出端⼝由⽴即⽅式指定时, 其范围是 0-255; 由寄存器 DX 指定时,其范围是 0-65535.3. ⽬的地址传送指令.LEA 装⼊有效地址.例: LEA DX,string ;把偏移地址存到DX.LDS 传送⽬标指针,把指针内容装⼊DS.例: LDS SI,string ;把段地址:偏移地址存到DS:SI.LES 传送⽬标指针,把指针内容装⼊ES.例: LES DI,string ;把段地址:偏移地址存到ES:DI.LFS 传送⽬标指针,把指针内容装⼊FS.例: LFS DI,string ;把段地址:偏移地址存到FS:DI.LGS 传送⽬标指针,把指针内容装⼊GS.例: LGS DI,string ;把段地址:偏移地址存到GS:DI.LSS 传送⽬标指针,把指针内容装⼊SS.例: LSS DI,string ;把段地址:偏移地址存到SS:DI.4. 标志传送指令.LAHF 标志寄存器传送,把标志装⼊AH.SAHF 标志寄存器传送,把AH内容装⼊标志寄存器.PUSHF 标志⼊栈.POPF 标志出栈.PUSHD 32位标志⼊栈.POPD 32位标志出栈.⼆、算术运算指令───────────────────────────────────────ADD 加法.ADC 带进位加法.INC 加 1.AAA 加法的ASCII码调整.DAA 加法的⼗进制调整.SUB 减法.SBB 带借位减法.DEC 减 1.NEC 求反(以 0 减之).CMP ⽐较.(两操作数作减法,仅修改标志位,不回送结果).AAS 减法的ASCII码调整.DAS 减法的⼗进制调整.MUL ⽆符号乘法.IMUL 整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),AAM 乘法的ASCII码调整.DIV ⽆符号除法.IDIV 整数除法.以上两条,结果回送:商回送AL,余数回送AH, (字节运算);或商回送AX,余数回送DX, (字运算).AAD 除法的ASCII码调整.CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去)CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去)三、逻辑运算指令───────────────────────────────────────AND 与运算.OR 或运算.XOR 异或运算.NOT 取反.TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL 逻辑左移.SAL 算术左移.(=SHL)SHR 逻辑右移.SAR 算术右移.(=SHR)ROL 循环左移.ROR 循环右移.RCL 通过进位的循环左移.RCR 通过进位的循环右移.以上⼋种移位指令,其移位次数可达255次.移位⼀次时, 可直接⽤操作码. 如 SHL AX,1.移位>1次时, 则由寄存器CL给出移位次数.如 MOV CL,04SHL AX,CL四、串指令─────────────────────────────────────── DS:SI 源串段寄存器 :源串变址.ES:DI ⽬标串段寄存器:⽬标串变址.CX 重复次数计数器.AL/AX 扫描值.D标志 0表⽰重复操作中SI和DI应⾃动增量; 1表⽰应⾃动减量. Z标志⽤来控制扫描或⽐较操作的结束.MOVS 串传送.( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. ) CMPS 串⽐较.( CMPSB ⽐较字符. CMPSW ⽐较字. )SCAS 串扫描.把AL或AX的内容与⽬标串作⽐较,⽐较结果反映在标志位.LODS 装⼊串.把源串中的元素(字或字节)逐⼀装⼊AL或AX中.( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. )STOS 保存串.是LODS的逆过程.REP 当CX/ECX<>0时重复.REPE/REPZ 当ZF=1或⽐较结果相等,且CX/ECX<>0时重复.REPNE/REPNZ 当ZF=0或⽐较结果不相等,且CX/ECX<>0时重复.REPC 当CF=1且CX/ECX<>0时重复.REPNC 当CF=0且CX/ECX<>0时重复.五、程序转移指令─────────────────────────────────────── 1>⽆条件转移指令 (长转移)JMP ⽆条件转移指令CALL 过程调⽤RET/RETF过程返回.2>条件转移指令 (短转移,-128到+127的距离内)( 当且仅当(SF XOR OF)=1时,OP1<OP2 )JA/JNBE 不⼩于或不等于时转移.JAE/JNB ⼤于或等于转移.JB/JNAE ⼩于转移.JBE/JNA ⼩于或等于转移.以上四条,测试⽆符号整数运算的结果(标志C和Z).JG/JNLE ⼤于转移.JGE/JNL ⼤于或等于转移.JL/JNGE ⼩于转移.JLE/JNG ⼩于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z).JE/JZ 等于转移.JNE/JNZ 不等于时转移.JC 有进位时转移.JNC ⽆进位时转移.JNO 不溢出时转移.JNP/JPO 奇偶性为奇数时转移.JNS 符号位为 "0" 时转移.JO 溢出转移.JP/JPE 奇偶性为偶数时转移.JS 符号位为 "1" 时转移.3>循环控制指令(短转移)LOOP CX不为零时循环.LOOPE/LOOPZ CX不为零且标志Z=1时循环.LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.JCXZ CX为零时转移.JECXZ ECX为零时转移.4>中断指令INT 中断指令INTO 溢出中断IRET 中断返回5>处理器控制指令HLT 处理器暂停, 直到出现中断或复位信号才继续.WAIT 当芯⽚引线TEST为⾼电平时使CPU进⼊等待状态.ESC 转换到外处理器.LOCK 封锁总线.NOP 空操作.STC 置进位标志位.CLC 清进位标志位.CMC 进位标志取反.STD 置⽅向标志位.CLD 清⽅向标志位.STI 置中断允许位.CLI 清中断允许位.其实上⾯我们⽤到的也就主要有⼀些赋值指令和⼀些跳转指令⽽已,⼤部分我们⽬前是⽤不到的。
病毒加壳和脱壳技术详解
( ) P oet a ak 次 之 , 外 的 2 AS rtc+ s c : p 国 软 件 多 用 它 加 壳 ,脱 壳 时 需 要 用 到 s T c I E uM P 0F I E+ c D ,需 要 一 定 的 专 业 知识 , 最新版现在暂 时没有办法。 但 () x 3 Up :可 以 用 UP 本 身 来 脱 X 壳 , 要 注 意 版 本 是 否 一 致 , 一 参 但 用 D 数。 ( )_ dl 可 以 用 S T C 4 A ma i : r l OF I E+ IE C DUMP脱 壳 , 比较 烦 。 () p :国 内 比 较 好 的 加 密软 5 Db e 件 , 版 本 暂 时 不 能 脱 , 可 以破 解 。 新 但 ( ) o i : 以 用 自己 来 脱 壳 。 6 Ne Lt 可 e
( PrV11一 . 有 效 ) Ra (只 对 AS . V12 , d
时 , 一这 段 代 码 先 于 原 始 程 序 运 行 , 壳 他 把 压 缩 、加 密 后 的 代 码 还 原 成 原 始
程 序 代 码 ,然 后 再 把 执 行 权 交 还 给 原 始 代 码 。 软 件 的 壳 分 为 加 密 壳 、 缩 压
安 全 咖 啡 屋
n 翻 嘲 嘲 踊 硼 嘲 啦 翘 礤 鼹 计 鼻 L 向 蓍 睁 训 蒜f 生 『 酒
/
瘸霉赫蠢 稳麟藏技 详 解
1什 么 是 壳 : 数学运算 , 可执行程 序文件或动态链 将 文件 分析 工具 ( 测 壳 的 类 型 ) 侦 :
计 算 机 软 件 里 有 一 段 专 门 负 责 保 护 软 件 不 被 非 法 修 改 或 反 编 译 的 程 序 。 们 一 般 都 是 先 于 程 序 运 行 。 到 它 拿 控 制 权 ,然 后 完 成 它 们 保 护 软 件 的 任
如何加双层壳、多层壳
资源释放:这个,我其实也说不太明白^_^ ,应该就是利用软件运行之后[已经被CPU 在内存中解压]这个机会,提取出内存中的软件资源。FreeRes这个工具(这个工具注册费很低的,建议使用注册版),就是提取出资源,并可以重新建立一个可以编辑的资源,主要用在汉化领域,用来释放资源后再进行汉化工作。
脱壳,是完全破除压缩后软件无法编辑的限制,去掉头部的解压缩指令,然后解压出加壳前的完整软件。这样,你就可以对其“动刀”了。
先说一下什么是加壳,什么是脱壳,什么是资源释放:加壳:其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。解压原理,是加壳工具在文件头里加了一段指令,告诉CPU,怎么才能解压自己。现在的CPU都很快,所以这个解压过程你看不出什么东东。软件一下子就打开了,只有你机器配置非常差,才会感觉到不加壳和加壳后的软件运行速度的差别。你的机器配置很差么?喔,恭喜你。你将可能无法忍受等会你照我说的方法加壳后的软件的运行速度~~:)
一直有人问怎么样加多层壳,其实很简单,不过多层壳再有些人眼里看来就是浪费资源,不过也确实能增加软件的安全性,刚才又有问这个问题的,就简单写个教程,本人原来以为自己是个菜鸟,现在才发现,自己已经不是菜鸟了,都快成白痴型了,由于接二连三的打击,堕落了好久,已经对键盘生疏了不少,算了,不多说,直接来说明怎么样加多层壳。高手绕道,新手止步!
脱壳和资源释放的区别:脱壳软件版本依赖性很强。用哪种加壳软件加的壳,几乎只能用相应版本对应的脱壳工具。资源释放软件,并不是脱壳,只是释放出“文字”“图片” 这些资源,供你编辑进行第一层加壳,然后再用freeRes进行资源重建。然后再用其他加壳软件进行第二层加壳。压缩完毕后,测试一下,软件是否还能运行。(一般情况下是不会出错的^_^)再次用freeRes进行资源重建。继续用其他加壳软件进行压缩~ 譬如使用UPX 1.20的图形界面版本,选中“压缩输出信息”、“压缩资源”“压缩图标” 还有最重要的“强制压缩”,只有选了这个,UPX才会压缩。切记!KO,现在搞定。你的软件已经有了3层外壳了。如果你还想给破解者加难度,呵呵,就再用tElock 0.42 再来一层,因为这个的脱壳机在XP下貌似很少。。。
壳加壳脱壳介绍壳的一些基本常识
壳加壳脱壳介绍壳的一些基本常识壳是计算机领域中的一个术语,它指的是对可执行文件进行封装或保护的一种技术方法。
壳通过在可执行文件中添加一些额外的功能,或者对文件进行加密和混淆,来防止程序被破解、修改或复制。
壳可以分为加壳和脱壳两个方面。
加壳是指在可执行文件的外部包裹一层壳,壳可以是自己编写的程序代码,也可以是现有的壳程序。
加壳的目的是增强程序的安全性,使破解者难以通过逆向工程的方式分析、修改或复制可执行文件。
加壳壳通常会在执行可执行文件时先将文件解压缩或解密成原始的可执行文件,然后再执行该文件。
加壳壳中还可以添加一些功能,如代码调试、反调试、防止内存修改等。
加壳壳还可以选择将部分或全部的代码进行混淆,使得反汇编或逆向分析更加困难。
脱壳是指将加壳的可执行文件恢复成原始的可执行文件。
脱壳是反加壳的过程,可以通过逆向工程等方法来进行。
脱壳可以用于研究加壳技术、分析壳的实现方式以及绕过壳进行破解。
脱壳既可以是为了学习和研究的目的,也可以是为了绕过软件的保护措施进行非法操作。
因此,在一些情况下,脱壳也可能构成侵权行为。
壳技术在软件保护和安全领域有着广泛的应用。
它可以保护软件版权,防止软件被未授权的用户使用和复制。
壳还可以加固软件的安全性,防止软件被破解、修改和滥用。
壳也可以实现程序的试用期限制、授权验证和网络授权等功能。
壳技术的发展与软件逆向工程的发展和对抗密切相关。
随着逆向工程技术的不断成熟和发展,对壳的破解和绕过也变得越来越容易。
因此,壳厂商也会不断改进和更新壳的技术,以适应逆向工程的挑战。
现如今,一些高级的壳技术已经能够有效地抵御逆向工程和破解行为。
总的来说,壳是一种对可执行文件进行封装和保护的技术方法,可以增强软件的安全性和防止软件的破解、修改和复制。
加壳是指在可执行文件中添加一层外壳,脱壳是将加壳的文件恢复成原始的可执行文件。
壳技术在软件保护和安全领域有着重要的应用,但也面临着逆向工程的挑战。
壳技术的发展与逆向工程技术的发展密切相关,双方在不断的博弈和对抗中推动着彼此的进步。
软 件 加 壳
如果模式中选择了使用软件激活密码,则单击 Activatin keys选项卡,进入相应界面进行设置,如下 图所示。其中可以设置绑定硬件ID、注册名、注册码、 黑名单等,可以验证注册信息。
软件加壳
软件加壳
3.应用测试
应用测试是针 对加壳前的软件进 行的,用于测试加 壳前软件的质量如 何。先单击 Protection选项卡 (如右图所示), 然后单击Debug Run按钮进行测试。
1.主应用选择
软件启动后首先进 入应用程序主窗口,如 右图所示。在该窗口进 行应用名称、应用版本 号、要保护的文件、输 出文件、保护选项、压 缩选项等选择。选择完 毕单击Modes选项卡,进 入应用模式选择与定义 界面,如下图所示。
软件加壳
软件加壳
2.应用模式的定义与选择
在Modes选项卡中,可以定义或选择软件加壳所采 用的保护模式。如果定义一个新的模式,需指定模式 名称、模式状态、软件激活密码、模式到期判定条件 等选项。也可以选择一个已有的模式。
软件加壳
4.应用保护
一切准备工作完成后,就可以对受保护软件 进行加壳操作,单击Protection选项卡中的 Protect按钮即可完成,在窗口中会显示相关的保 护信息。
ASProtect加壳程序允许外挂用户自己编写的 DLL文件,这样用户可以在壳中加入自己的代码, 以提高软件的反跟踪能力。
软件加壳
软件加壳
1.1 软件加壳概述
软件加壳其实是利用特殊的算法, 对.exe、.dll等可执行文件里的资源进行压缩,改 变其原来的特征码,隐藏一些字符串等等,使一 些资源编辑软件不能正常打开或者修改。
为软件加壳的目的有两个。一是对受保护的 程序进行保护,防止软件的相关信息泄露,同时 加壳技术中往往集成了反跟踪、反内存补丁、反 dump等技术,可以有效防止软件被反编译和修 改;二是对受保护的程序进行Hale Waihona Puke 缩,节省存储空 间,便于快速传输。
形容壳状物
形容壳状物
以下是一些形容壳状物的词语和短语:
1. 硬壳:指物体的外壳较硬,如坚果的壳。
2. 甲壳:指动物的外壳,如蟹壳、龙虾壳等。
3. 贝壳:指海洋生物的外壳,形状各异,如扇贝、牡蛎等。
4. 龟裂:指物体表面出现的裂纹,如蛋壳裂纹。
5. 外壳:指物体外部较硬的部分,如电脑的外壳。
6. 花生壳:指花生的外壳,常用于比喻事物的外貌或外表。
7. 包皮:指果实或种子的外壳,如香蕉包皮、苹果包皮等。
8. 包皮垢:指男性包皮内的污垢,通常为白色或黄色的壳状物。
9. 荚皮:指豆类植物的荚壳,如豌豆荚皮。
10. 椰壳:指椰子的外壳,常用于制作工艺品或装饰品。
11. 贝壳类:指具有贝壳的海洋生物,如蛤蜊、扇贝等。
12. 螺壳:指螺类生物的外壳,形状各异,如田螺壳、海螺壳等。
13. 甲胄:指古代士兵或武士所穿的坚固外壳,如铁甲、铜胄等。
14. 卵壳:指动物卵的外壳,如鸡蛋壳、鸭蛋壳等。
15. 坚果外壳:指坚果类食物的外壳,如核桃壳、杏仁壳等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
加壳一般属于软件加密,现在越来越多的软件经过压缩处理,给汉化带来许多不便,软件汉化爱好者也不得不学习掌握这种技能。现在脱壳一般分手动和自动两种,手动就是用TRW2000、TR、SOFTICE等调试工具对付,对脱壳者有一定水平要求,涉及到很多汇编语言和软件调试方面的知识。而自动就是用专门的脱壳工具来脱,最常用某种压缩软件都有他人写的反压缩工具对应,有些压缩工具自身能解压,如UPX;有些不提供这功能,如:ASPACK,就需要UNASPACK对付,好处是简单,缺点是版本更新了就没用了。另外脱壳就是用专门的脱壳工具来对付,最流行的是PROCDUMP v1.62 ,可对付目前各种压缩软件的压缩档。在这里介绍的是一些通用的方法和工具,希望对大家有帮助。
第四:杀软的查杀特点:
卡巴:简单来说是靠主动吃饭的!他的病毒库虽然非常大!但是不知道为什么,简单的花指令竟然能破解它......虽然现在升级加了启发扫描~~但是我测试还是一个花就可以过!只要你的花有个性(别去网上找)加个壳改下壳头也可以过!瑞星:国内木马的超级对手可以这么说!对国内的木马定位的特征是洋货的N倍(鸽子见证)主要查杀技术是内存查杀技术,但是对一些生僻的木马,内存病毒库里竟然没有,只要过了表面就可以过内存......主动主杀敏感字符串,本人测试鸽子的时候改了表面跟内存特征,竟然直接过主动......广告卖的倒不错,但是只是针对流行木马!其他不常见木马并没有加大什么强度!
壳,加壳,脱壳,ห้องสมุดไป่ตู้绍壳的一些基本常识.txt不要为旧的悲伤而浪费新的眼泪!现在干什么事都要有经验的,除了老婆。没有100分的另一半,只有50分的两个人。壳,加壳,脱壳,介绍壳的一些基本常识
免杀入门 2009-08-06 16:58 阅读7 评论0 字号: 大大 中中 小小 在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。
NOD32:启发扫描的头领!主杀输入表函数,针对MYCCL定位器做过调整!定位建议用 multiCCL这个来定位!不过这个大块头对生僻壳的侦壳能力不强!加些生僻壳把一些函数保护起来可以让它无用武之地!对外国木马还行~国内好多木马它都放行!!国内朋友不建议装这个杀软(这类壳主要是加密型,不建议用压缩型)金山:数据流查杀技术的代表!简单来说跟瑞星内存查杀技术有点一样!病毒库升级,查杀病毒速度都是超级快!但是杀毒能力比较上面的几款有点逊色!
常见的壳脱法:
1.aspack壳脱壳可用unaspack或caspr 1.unaspack ,使用方法类似lanuage,傻瓜式软件,运行后选取待脱壳的软件即可. 缺点:只能脱aspack早些时候版本的壳,不能脱高版本的壳
2.caspr
第一种:待脱壳的软件(如aa.exe)和caspr.exe位于同一目录下,执行windows起始菜单的运行,键入 caspr aa.exe脱壳后的文件为aa.ex_,删掉原来的aa.exe,将aa.ex_改名为aa.exe即可。使用方法类似fi 优点:可以脱aspack任何版本的壳,脱壳能力极强缺点:Dos界面。
(9)Petite:有一部分的老版本可以用PEDUMP32直接脱壳,新版本脱壳时需要用到SOFTICE+ICEDUMP,需要一定的专业知识 。
(10)WWpack32:和PECOMPACT一样其实有一部分的老版本可以用PEDUMP32直接脱壳,不过有时候资源无法修改,也就无法汉化,所以最好还是用SOFTICE配合 PEDUMP32脱壳
从功能上抽象,软件的壳和自然界中的壳相差无几。无非是保护、隐蔽壳内的东西。而从技术的角度出发,壳是一段执行于原始程序前的代码。原始程序的代码在加壳的过程中可能被压缩、加密……。当加壳后的文件执行时,壳-这段代码先于原始程序运行,他把压缩、加密后的代码还原成原始程序代码,然后再把执行权交还给原始代码。 软件的壳分为加密壳、压缩壳、伪装壳、多层壳等类,目的都是为了隐藏程序真正的OEP(入口点,防止被破解)。关于“壳”以及相关软件的发展历史请参阅吴先生的《一切从“壳”开始》。
(二)加壳软件最常见的加壳软件
ASPACK ,UPX,PEcompact 不常用的加壳软件WWPACK32;PE-PACK ;PETITE NEOLITE
(三)侦测壳和软件所用编写语言的软件
因为脱壳之前要查他的壳的类型。
1.侦测壳的软件fileinfo.exe 简称fi.exe(侦测壳的能力极强)。
(一)壳的概念
作者编好软件后,编译成exe可执行文件。
1.有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名,即为了保护软件不被破解,通常都是采用加壳来进行保护。
2.需要把程序搞的小一点,从而方便使用。于是,需要用到一些软件,它们能将exe可执行文件压缩,
3.在黑客界给木马等软件加壳脱壳以躲避杀毒软件。实现上述功能,这些软件称为加壳软件。
常用脱壳工具:
1.文件分析工具(侦测壳的类型):Fi,GetTyp,peid,pe-scan,
2.OEP入口查找工具:SoftICE,TRW,ollydbg,loader,peid
3.dump工具:IceDump,TRW,PEditor,ProcDump32,LordPE
第二种:将aa.exe的图标拖到caspr.exe的图标上***若已侦测出是aspack壳,用unaspack脱壳出错,说明是aspack高版本的壳,用caspr脱即可。
2.upx壳脱壳可用upx待脱壳的软件(如aa.exe)和upx.exe位于同一目录下,执行windows起始菜单的运行,键入upx -d aa.exe。
第二:免杀的环境:做免杀,逃不了测试这个木马是不是修改成功!所以为了保护自己的系统,我建议学免杀要先学会使用虚拟机,很多人会说,为什么不用影子?影子系统虽然也是可以保护的,暂用资源又少,但是有些反弹型木马,我们运行后如果失败(即使成功)都需要重启来完成完全清除的工作!做过QQ盗号木马跟黑鹰远控软件免杀的朋友应该深有体会!
4.PE文件编辑工具PEditor,ProcDump32,LordPE
5.重建Import Table工具:ImportREC,ReVirgin
6.ASProtect脱壳专用工具:Caspr(ASPr V1.1-V1.2有效),Rad(只对ASPr V1.1有效),loader,peid
我们知道文件的加密方式,就可以使用不同的工具、不同的方法进行脱壳。下面是我们常常会碰到的加壳方式及简单的脱壳措施,供大家参考:脱壳的基本原则就是单步跟踪,只能往前,不能往后。脱壳的一般流程是:查壳->寻找OEP->Dump->修复找OEP的一般思路如下:先看壳是加密壳还是压缩壳,压缩壳相对来说容易些,一般是没有异常,找到对应的popad后就能到入口,跳到入口的方式一般为。 我们知道文件被一些压缩加壳软件加密,下一步我们就要分析加密软件的名称、版本。因为不同软件甚至不同版本加的壳,脱壳处理的方法都不相同。
3.PEcompact壳 脱壳用unpecompact 使用方法类似lanuage傻瓜式软件,运行后选取待脱壳的软件即可。
4.procdump 万能脱壳但不精,一般不要用使用方法:运行后,先指定壳的名称,再选定欲脱壳软件,确定即可脱壳后的文件大于原文件由于脱壳软件很成熟,手动脱壳一般用不到。
免杀过程中的总结
第一:我们学习免杀的方向:
如果象本人一样,只是为了保护自己的黑软的话!就不会学的那么累(没必要去学汇编编程)有时候简单加下壳或者脱下壳就OK!
如果是要挑战世界的杀毒软件的话,毕竟每个PC用户安装的杀软都不一样!想抓鸡拿服务器的朋友就要进修脱壳破解,高级汇编的内容了,这将决定你免杀技术的高低!
(1)Aspack: 用的最多,但只要用UNASPACK或PEDUMP32脱壳就行了
(2)ASProtect+aspack:次之,国外的软件多用它加壳,脱壳时需要用到SOFTICE+ICEDUMP,需要一定的专业知识,但最新版现在暂时没有办法。
(3)Upx:可以用UPX本身来脱壳,但要注意版本是否一致,用-D 参数
(4)Armadill: 可以用SOFTICE+ICEDUMP脱壳,比较烦
(5)Dbpe:国内比较好的加密软件,新版本暂时不能脱,但可以破解
(6)NeoLite: 可以用自己来脱壳
(7)Pcguard: 可以用SOFTICE+ICEDUMP+FROGICE来脱壳