朱航宇-20112878-应用程序加壳与脱壳

朱航宇-20112878-应用程序加壳与脱壳
朱航宇-20112878-应用程序加壳与脱壳

应用程序加壳与脱壳

计算机与信息学院 信息安全专业11级1班

朱航宇 20112878

(1)实验目的

通过对灰鸽子自带的加壳程序,实现对改程序的加壳操作,并对加壳前后作出相应比较。从而了解什么是加壳,什么是脱壳,以及加壳的原理、作用。

(2) 实验内容

使用灰鸽子黑防专版生成加壳和未加壳程序;使用PEID测试加壳程序;使用UPXUnpack汉化版(利用OD脱壳)对已加壳的程序进行脱壳操作。

(3) 实验步骤

1. 加壳

1. 打开灰鸽子黑防专版。

2. 配置服务程序,生成不加壳程序。

点击工具栏上的“配置服务程序”按钮,自动上线设置中,ip设置为127.0.0.1;选择“高级选项”,选择 不加壳,设置保存路径保存路径当前文件夹,保存文件名称为 Server.exe ,然后点击 生成服务器。此时在系统桌面上将生成该程序。这个程 序即为没有加壳的灰鸽子程序。

3.配置服务程序,生成加壳程序。

在主界面点击配置服务程序,打开服务器配置对话框设置好IP地址为127.0.0.1,然后点击“高级选项”选择:使用UPX加壳,保存路径当前文件夹,保存文件名设置为Server_jiake.exe ,并点击生成服务器按钮。生成的程序如图1所示。

图1.灰鸽子生成加壳和不加壳的server

4.打开PEID程序;将这两个文件分别拖到PEiD程序界面。分别查看检测结果 ,以下两个图分别是未加壳和加了壳的检测结果,如图2,图3,可以看出,未加壳程序所检测出来的是文件开发工具,而加了壳的文件检测出来的是加壳信息。

图2.未加壳的检测

图3.加壳的检测

2. 脱壳

1、打开UPXUnpack汉化版程序,主界面如下;直接拖动

Server_jiake.exe文件到程序内,显示如图4所示,生成脱壳文件Server_tuoke。

图4.加壳server脱壳

2. 再次打开PEID程序,检测Server_tuoke.exe文件的加壳信息,如图5

所示。

可以看到它的信息和未加壳server是相同的。

图5.脱壳后的server

(4) 实验结果

使用灰鸽子黑防专版成功的生成加壳和未加壳程序;使用PEID成功测试加壳程序和脱壳程序;使用UPXUnpack汉化版(利用OD脱壳)成功对已加壳的程序进行脱壳操作。

(5) 实验总结及思考

经过本次实验了解了灰鸽子的加壳和脱壳处理,对程序加壳有了初步的掌握。所谓壳,其实就是指利用特殊的算法,对exe、dll文件里面的资源进行压缩的方法,这个压缩后的文件可以独立运行,解压过程完全隐蔽,都在内存中完成解压的原理是加壳工具在文件头里加一段指令,告诉CPU,怎么才能解压自己。这种技术用于正当方面,可运用于版权保护。软解的作者可通过哈希算法对软解的关键部位求其哈希值,然后将其作为软件在内存中运行密钥,当密钥正确时方可让CPU解压。当然黑客通过对木马进行加壳从而躲避杀毒软件的检测。

(完整版)常见几种脱壳方法

----------------<小A分>---------------- 一、概论 壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳(强壳)两种 "UPX" "ASPCAK" "TELOCK" "PELITE" "NSPACK(北斗)" ... "ARMADILLO" "ASPROTECT" "ACPROTECT" "EPE(王)" "SVKP" ... 顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。 当然加密壳的保护能力要强得多! -----------<小A分割线>------------- 二、工具的认识 OllyDBG ring3 shell层级别的动态编译工具、 PEid、 ImportREC、 LordPE、 softIce ring0级别调试工具 -------------<小A分割>------------------- 三、常见手动脱壳方法 预备知识 1.PUSHAD (入栈/压栈)代表程序的入口点, 2.POPAD (弹栈/出栈)代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近 3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以立刻脱壳。 ------------<小A分割线>-------------------- 方法一:单步跟踪法 1.用OD载入,点“不分析代码!” 2.单步向下跟踪F8,实现向下的跳。也就是说向上的跳不让其实现!(通过F4) 3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选) 4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现! 5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP 6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入 7.一般有很大的跳转(大跨段),比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETN 的一般很快就会到程序的OEP。 近CALL F7 远CALL F8 Btw:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,

怎样使用脱壳软件

第二节脱壳 一切从“壳”开始 吴朝相1999.2.23 (搜新网https://www.360docs.net/doc/5c17850930.html,) 我写这篇东西的主要目的是让初到本站的新手们能对“壳”有个大概的认识,知道我每天说了些什么。限于本人的知识,如果有ERROR 之处,还请多原谅。如果你觉得还可以,也欢迎转贴,但请保留文章的完整性和作者的资料。当然如果你想把它发表,硬塞些稿费给俺花花,我也不会拒绝的。;) 作为一个以“壳”为主的站台,如果连访者连什么是“壳”都不清楚的话,那我也太失败了。很早以前就想写编完全关于“壳”的文章,但苦于时间和文字水平的关系,都没提笔。本着对站台负责的态度,现在经过一天的努力,“打”出这编尝试由壳的历史一直谈到最新发展的本章来。 首先我想大家应该先明白“壳”的概念。在自然界中,我想大家对壳这东西应该都不会陌生了,植物用它来保护种子,动物用它来保护身体等等。同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。 最早提出“壳”这个概念的,据我所知,应该是当年推出脱壳软件RCOPY 3 的作者熊焰先生。在几年前的DOS 时代,“壳”一般都是指磁盘加密软件的段加密程序,可能是那时侯的加密软件还刚起步不久吧,所以大多数的加密软件(加壳软件)所生成的“成品”在“壳”和需要加密的程序之间总有一条比较明显的“分界线”。有经验的人可以在跟踪软件的运行以后找出这条分界线来,至于这样有什么用这个问题,就不用我多说了。但毕竟在当时,甚至现在这样的人也不是很多,所以当RCOPY3 这个可以很容易就找出“分界线”,并可以方便的去掉“壳”的软件推出以后,立即就受到了很多人的注意。老实说,这个我当年在《电脑》杂志看到广告,在广州电脑城看到标着999元的软件,在当时来说,的确是有很多全新的构思,单内存生成EXE 可执行文件这项,就应该是世界首创了。但它的思路在程序的表现上我认为还有很多可以改进的地方(虽然后来出现了可以加强其功力的RO97),这个想法也在后来和作者的面谈中得到了证实。在这以后,同类型的软件想雨后春笋一般冒出来,记得住名字的就有:UNKEY、MSCOPY、UNALL .... 等等,但很多的软件都把磁盘解密当成了主攻方向,忽略了其它方面,当然这也为以后的“密界克星”“解密机器”等软件打下了基础,这另外的分支就不多祥谈了,相信机龄大一点的朋友都应该看过当时的广告了。 解密(脱壳)技术的进步促进、推动了当时的加密(加壳)技术的发展。LOCK95和BITLOK 等所谓的“壳中带籽”加密程序纷纷出笼,真是各出奇谋,把小小的软盘也折腾的够辛苦的了。正在国内的加壳软件和脱壳软件较量得正火红的时候,国外的“壳”类软件早已经发展到像LZEXE 之类的压缩壳了。这类软件说穿了其实就是一个标准的加壳软件,它把EXE 文件压缩了以后,再在文件上加上一层在软件被执行的时候自动把文件解压缩的“壳”来达到压缩EXE 文件的目的。接着,这类软件也越来越多,PKEXE、AINEXE、UCEXE 和后来被很多人认识的WWPACK 都属于这类软件,但奇怪的是,当时我看不到一个国产的同类软件。 过了一段时间,可能是国外淘汰了磁盘加密转向使用软件序列号的加密方法吧,保护EXE 文件不被动态跟踪和静态反编译就显得非常重要了。所以专门实现这样功能的加壳程序便诞生了。MESS 、

加壳与脱壳应用及实现

加壳与脱壳的应用与实现

一、加壳 (2) 1.什么是壳 (2) 2.加壳原因 (2) 3.壳的加载过程 (3) 4.压缩引擎 (5) 5.常见的加壳工具 (6) a.常用压缩壳介绍 (6) b.加密保护壳介绍 (7) 二、脱壳 (10) 1.侦壳 (10) 2.脱壳 (13) a.查找程序的真正入口点(OEP) (13) b.抓取内存映像文件 (15) c.输入表重建 (15) 附:视频“加壳与脱壳(软件)”和“手动脱壳” (17)

加壳与脱壳 一、加壳 1.什么是壳 在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,就把这样的程序称为“壳”了。 图1.1 2.加壳原因 就把这样的程序称为“壳”了。 作者编好软件后,编译成exe可执行文件。 1)有一些版权信息需要保护起来,不想让别人随便改动,如作者

的姓名,即为了保护软件不被破解,通常都是采用加壳来进行保护。 2)需要把程序搞的小一点,从而方便使用。于是,需要用到一些软件,它们能将exe可执行文件压缩。 3)在黑客界给木马等软件加壳脱壳以躲避杀毒软件。实现上述功能,这些软件称为加壳软件。 3.壳的加载过程 1)获取壳自己所需要使用的API地址 如果用PE编辑工具查看加壳后的文件,会发现未加壳的文件和加壳后的文件的输入表不一样,加壳后的输入表一般所引入的DLL和API函数很少,甚至只有Kernel32.dll以及GetProcAddress这个API 函数。 壳实际上还需要其他的API函数来完成它的工作,为了隐藏这些API,它一般只在壳的代码中用显式链接方式动态加载这些API函数2)解密原程序的各个区块(Section)的数据 壳出于保护原程序代码和数据的目的,一般都会加密原程序文件的各个区块。在程序执行时外壳将会对这些区块数据解密,以让程序能正常运行。壳一般按区块加密的,那么在解密时也按区块解密,并且把解密的区块数据按照区块的定义放在合适的内存位置。 如果加壳时用到了压缩技术,那么在解密之前还有一道工序,当然是解压缩。这也是一些壳的特色之一,比如说原来的程序文件未加壳时1~2M大小,加壳后反而只有几百K。

VB加壳脱壳程序源码

VB加壳脱壳程序源码 1、窗体代码 Private Sub Check1_Click() Text2.SetFocus End Sub Private Sub Image2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Image10.Visible = False End Sub Private Sub Image3_Click() If Text1.Text = "" Then MsgBox "Please Select A File First!", vbInformation Else List1.Visible = True List2.Visible = False Frame3.Visible = False List1.Text = " UPX 1.24 " Text2.SetFocus End If End Sub Private Sub Command2_Click() Dim path As String, back_path As String, file_t As String 'Dim's strings Text2.SetFocus CommonDialog1.ShowOpen Text1.Text = CommonDialog1.FileName path = Text1.Text back_path = "Backupfile.exe" If Check1.Value = 1 Then i = FreeFile Open path For Binary As #i file_t = Space(LOF(i)) Get #i, , file_t Close #i Open back_path For Binary As #i Put #i, , file_t Close #i MsgBox " A Backup of the file has been created in the same location as the original file", vbInformation End If End Sub Private Sub Image3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Image8.Visible = True End Sub Private Sub Image3_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Image8.Visible = False

第2课用相应工具软件为软件自动脱壳(非手动脱壳)

第二课用相应工具软件为软件自动脱壳(非手动脱壳) 欲破解一个软件,我们首先应根据前面的内容侦测它的壳,然后我们要把它的壳脱去,还原软件的本来面目。如果软件是一个PLMM,我们不喜欢穿衣服的MM,我们不喜欢艺术照的MM,我们迫不及待地想把MM脱光,想把MM骗上床。带壳的软件以后很难分析,带壳的穿衣的MM很难调教,壳是一个拦路虎,我们却不知武松醉在何处。这就如同我们要吃糖炒栗子,必须先剥掉栗子壳一样。这一课就教给你如何用自动剥壳机去掉花生壳、栗子壳之类的东东。 若侦测出它根本没加壳,就可省掉这一步了(现在没加壳的软件已经很少很少了,除非软件作者缺乏最基本的加密解密常识)。 脱壳成功的标志是脱壳后的文件能正常运行,功能没有任何损耗。一般来说,脱壳后的文件长度大于原文件长度;即使同一个文件,当采用不同脱壳软件进行脱壳的时候,由于脱壳软件机理不同,脱出来的文件大小也不尽相同。但只要能够运行起来,这都是正常的,就如同人的体重,每次上秤,份量都有所不同。但只要这个人是健康的,就无所谓,合乎情理。 一、脱壳软件的两大类别(两个门派――少林、武当) 脱壳软件主要分两大类:专用脱壳软件(武当派)和通用脱壳软件(少林派,源自“全民皆武,天下英雄出少年”)。每个专用脱壳软件只能脱掉特定的一种或两种加壳软件所加的壳,也就是说它是专门针对某种加壳软件的某个版本而制作的。通用脱壳软件则具有通用性,可以脱掉许多种不同类型的壳。根据“以一当一”的原则,专用类此门派为“武当”派。 大家可能会有这样的疑问?既然有通用脱壳软件,为什么还要专用脱壳软件呢?所谓“术业有专攻”,通用的脱壳程序往往不能精确地适用于某些软件,而专用的脱壳程序适用面虽窄,对付特定的壳却极为有效。因此,少林派和武当派缺一不可,相辅相成。 均掌握了武术之精髓,能置“壳”以死地,打得壳满地找牙,第一时间以迅雷不及掩耳之势极速脱掉壳MM的衣衫。 二、专用脱壳软件的四大类别 根据壳的流行程度,常用的脱壳软件主要有三类:脱Aspack类(叉A)、脱UPX类(叉U)、脱pecompact类(叉P,怎么又跟微软搞到一块儿了),分别针对前面提到的3个加壳软件。剩下的全都归到一个其他类中。下面详细介绍它们的使用方法: (一)脱ASPack壳软件(叉A)――重点 针对ASPack壳的软件主要有两个: AspackDie,AsprStripper。 1. AspackDie(A死) AspackDie (作者网站https://www.360docs.net/doc/5c17850930.html,,需要代理才能访问)支持ASPack 2.11/2.11c/2.11d/2.12版所加壳的脱壳。此软件的优点是支持新版ASPack壳、图形界面、使用方便、操作简单。最新版本1.41。

壳的介绍以及是常用脱壳方法

一、概论 壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳两种 UPX ASPCAK TELOCK PELITE NSPACK ... ARMADILLO ASPROTECT ACPROTECT EPE SVKP ... 顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。当然加密壳的保护能力要强得多! 二、常见脱壳方法 预备知识 1.PUSHAD (压栈)代表程序的入口点, 2.POPAD (出栈)代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近 3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以立刻脱壳。 方法一:单步跟踪法 1.用OD载入,点“不分析代码!” 2.单步向下跟踪F8,实现向下的跳。也就是说向上的跳不让其实现!(通过F4) 3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选) 4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现! 5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP 6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入 7.一般有很大的跳转(大跨段),比如jmp XXXXXX 或者JE XXXXXX 或者有RETN的一般很快就会到程序的OEP。 在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。一般情况下可以轻松到达OEP! 方法二:ESP定律法 ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!) 1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)。(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值) 2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车! 3.选中下断的地址,断点--->硬件访--->WORD断点。 4.按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP。 方法三:内存镜像法

软件脱壳破解精典实例教程

软件脱壳、破解精典实例教程 我要破解的软件:网络填表终结者破解需要的软件(点击下载): 侦壳language.exe 脱壳AspackDie.exe 反编译W32Dasm黄金中文版 16进制编辑器UltraEdit.rar 在破解之前先复习一下基础知识: 一.破解的等级 初级,修改程序,用ultraedit修改exe文件,称暴力破解,简称爆破 中级,追出软件的注册码 高级,写出注册机 二.用w32dasm破解的一般步骤: 1.看软件的说明书,软件注册与不注册在功能上有什么区别,如何注册 2.运行此软件,试着输入你的姓名和任意注册码去注册,有什麽错误提示信息,将错误提示信息记下来 3.侦测有无加壳(第一课).若加壳,脱壳(第二课) 4.pw32dasmgold反汇编 5.串式参考中找到错误提示信息或可能是正确的提示信息双击鼠标左键 6.pw32dasmgold主窗口中分析相应汇编,找出关键跳转和关键call 7.绿色光条停在关键跳转,在pw32dasmgold主窗口底部找到关键跳转的偏移地址(实际修改地址) 8.用ultraedit找到偏移地址(实际修改地址)修改机器码,保存 壳的概念:版权信息需要保护起来,不想让别人随便改动,exe可执行文件压缩,最常见的加壳软件ASPACK ,UPX,PEcompact 脱壳:拿到一个软件,侦测它的壳,然后我们要把它的壳脱去,还原它的本来面目.若它没有加壳,就省事不用脱壳了.脱壳软件unaspack,caspr,upx,unpecompact,procdump 实际修改地址(偏移地址)和行地址(虚拟地址)pw32dasmgold反汇编出来的代码由三列组成 第一列行地址(虚拟地址) 第二列机器码(最终修改时用ultraedit修改)

朱航宇-20112878-应用程序加壳与脱壳

应用程序加壳与脱壳 计算机与信息学院 信息安全专业11级1班 朱航宇 20112878 (1)实验目的 通过对灰鸽子自带的加壳程序,实现对改程序的加壳操作,并对加壳前后作出相应比较。从而了解什么是加壳,什么是脱壳,以及加壳的原理、作用。 (2) 实验内容 使用灰鸽子黑防专版生成加壳和未加壳程序;使用PEID测试加壳程序;使用UPXUnpack汉化版(利用OD脱壳)对已加壳的程序进行脱壳操作。 (3) 实验步骤 1. 加壳 1. 打开灰鸽子黑防专版。 2. 配置服务程序,生成不加壳程序。 点击工具栏上的“配置服务程序”按钮,自动上线设置中,ip设置为127.0.0.1;选择“高级选项”,选择 不加壳,设置保存路径保存路径当前文件夹,保存文件名称为 Server.exe ,然后点击 生成服务器。此时在系统桌面上将生成该程序。这个程 序即为没有加壳的灰鸽子程序。 3.配置服务程序,生成加壳程序。 在主界面点击配置服务程序,打开服务器配置对话框设置好IP地址为127.0.0.1,然后点击“高级选项”选择:使用UPX加壳,保存路径当前文件夹,保存文件名设置为Server_jiake.exe ,并点击生成服务器按钮。生成的程序如图1所示。

图1.灰鸽子生成加壳和不加壳的server 4.打开PEID程序;将这两个文件分别拖到PEiD程序界面。分别查看检测结果 ,以下两个图分别是未加壳和加了壳的检测结果,如图2,图3,可以看出,未加壳程序所检测出来的是文件开发工具,而加了壳的文件检测出来的是加壳信息。

图2.未加壳的检测 图3.加壳的检测

2. 脱壳 1、打开UPXUnpack汉化版程序,主界面如下;直接拖动 Server_jiake.exe文件到程序内,显示如图4所示,生成脱壳文件Server_tuoke。 图4.加壳server脱壳 2. 再次打开PEID程序,检测Server_tuoke.exe文件的加壳信息,如图5 所示。 可以看到它的信息和未加壳server是相同的。

PE文件中脱壳技术的研究

第27卷第9期 计算机应用与软件 Vol 127No .92010年9月 Computer App licati ons and Soft w are Sep.2010 PE 文件中脱壳技术的研究 李 露 刘秋菊 徐汀荣 (苏州大学计算机科学与技术学院 江苏苏州215006) 收稿日期:2009-01-07。李露,硕士生,主研领域:网络安全,信息技术。 摘 要 对PE (Portable Executable )文件进行加壳是保护软件的有效手段,但恶意程序也会通过加壳来保护自己。作为一名病毒 分析师或软件安全分析员,只有先将其脱壳,才能进行彻底的分析。以W indows 记事本程序为实例,首先分析了PE 文件结构及其加壳原理,其次阐述了脱壳的一般步骤,然后从压缩壳和加密壳的角度,重点探讨了脱壳技术的原理和方法。最后对伪装壳和多重壳及程序自校验进行了探讨和分析。 关键词 PE 加壳 脱壳 伪装壳 多重壳 自校验 O N UNPACK I NG TECHNOLO GY FO R PE F I L ES L i Lu L iu Q iuju Xu Tingr ong (School of Co m puter Science and Technology,Soocho w U niversity,Suzhou 215006,J iangsu,China ) Abstract Packing Portable Executable (PE )files is an effective mean t o p r otect s oft w are,but mal w are can als o use packing t o p r otect the m selves .A s a virus analyst or a s oft w are security researcher,you must unpack the mal w are first,then can you analysis the m in detail .Taking the notepad p r ogra m in M icr os oftW indows as an in this paper we first analyzed the PE file structure and the p rinci p le of packing,and then expounded the general step s of unpacking .After that,in ter m s of the comp ressi on shell and encryp ti on shell,we f ocused on the p rinci p les and methods of unpacking technol ogy .Finally,we discussed and analyzed the ca mouflage shell,multi 2shell and self 2chec 2king . Keywords PE Packing Unpacking Ca mouflage shell Multi 2shell Self 2checking 0 引 言 PE 文件格式是W I N 32环境自带的跨平台可执行文件格 式,常见的EXE 、DLL 、OCX 、SYS 、COM 等文件均是PE 格式。使用该格式,在非I ntel 芯片的CP U 上,W indows 一样能识别和使用。 对PE 文件加壳,能较好地保护原程序。但病毒和木马也会利用加壳技术来保护自己,因为加壳后程序执行结果不变,但代码发生了变化,从而使杀毒软件无法查杀。作为一名病毒分析师或者软件安全研究员,如果不懂得脱壳技术,将很难对这些恶意程序进行分析。据瑞星公司截获的病毒样本统计,90%以上的病毒文件都经过加壳处理,可见掌握脱壳技术十分重要。现有文章大都进行加壳技术的探讨[1-3],本文则着重研究脱壳技术。 1 壳的介绍 壳是一段附加在原程序上的代码,它先于真正的程序运行并拿到控制权,在完成程序保护任务后(检测程序是否被修改,是否被跟踪等),再将控制权转交给真正的程序,其运行过程与病毒有些相似。在形式上又与W I N RAR 类的压缩软件类似,运行前都需要将原程序解压。但壳对程序的解压是在内存中进行,对用户来说完全透明,用户感觉不到壳的存在。 壳分为压缩壳和加密壳。压缩壳只是为了减少程序体积而 对资源进行压缩,便于传输,具有一定的保护作用。常见的压缩壳有UPX 、ASPCAK 、TE LOCK 、PE L I TE 、NSP ACK 等。加密壳是使用各种手段对程序资源进行保护,防止其被反汇编或跟踪,文件加壳后是否变小不是其主要目标。常见的加密壳有AR MA 2D I L LO 、ASPROTECT 、ACPROTECT 、EPE 、S VKP 等。目前一些壳已兼具有两种功能,即能压缩资源,又能加密资源。 2 PE 结构框架 PE 文件使用一个平面地址空间,所有代码和数据都被合并 成一个很大的结构。文件内容由属性相同的区块组成,各区块按页边界对齐,大小没有限制。每个区块都有不同的名字,用来表示区块的功能。图1是W indows98下记事本Notepad .exe 程序的PE 结构图。从图中可以看出PE 文件由几个连续的区块组成。先后由DOS 头部、PE 头部、区段表以及各个区段组成。其中.text 是代码段,.data 是已初始化的数据段,.idata 是输入表段,.rsrc 是资源段,.rel oc 是基址重定位表段 。 图1 W indows98记事本PE 结构图

破解基础—判断你到底有没有壳

首先说明一下,这篇文章是转自 https://www.360docs.net/doc/5c17850930.html,/read.php?tid=1667455 这个教程主要是讲判断程序是否加壳,所以老鸟飞过。很多人一看到这里,就会说用PEID查壳就行了呀,其实不然。现在一些商用的软件为了加密来保护知识产权,已不满足于ASProtect、ACProtect 等这些有名的强壳,这些壳虽加密强度高,对新手来说遥不可及,但因为很多人研究,已经很容易手动脱壳。所以这些商家就想到了自行加壳(这在看雪的加密与解密中有提到)和修改程序入口的特征(搞黑客,做木马免杀的都知道),这样查壳工具就会显示无壳,但其实还是加了壳的,有时还不止一层壳。 那怎么准确的判断是否加壳呢?这就是今天的主要内容。 首先按照常规给软件查壳 看上去没有壳,那我们再深入看看,点击PEID右下角的扩展信息试试 判断1: 你有没有压缩呀? 天骄无双小说:https://www.360docs.net/doc/5c17850930.html,

虽然壳有压缩壳和加密壳,但现在大多数的壳都有压缩功能,而现在PEID提示压缩的可能非常大,也就是说加壳的可能性很大,当然Ollydbg在载入时也有类似的提示。但这些还不能完全准确地判断,还是OD载入试试 判断2: 好多命令有问题哦! 看见了吗,很多是未知命令或错误命令,一般程序不会是这样的吧!再看看

判断3: 我知道你有多少 一般加壳程序为了不让人破解,就会加密一些重要的信息,比如文本字串,这个软件查找文本字串时会出现错误,显然作者有东西不让我们知道 到这里,同学们都知道这软件八成就是加壳的,那还有什么其他特征呢

判断4: 跳转和循环 一般来说,加壳的软件一般都有很多的跳转,而且没有规律,大多是JMP,循环出现在算注册码的时候,但有时用在加壳程序在内存中解码的时候,所以可以作为脱壳的突破口

加壳软件大汇总

压缩工具

加密保护(Protectors) ASProtect 1.2 ASProtect 1.23RC!SDK ASProtect 1.31 build06.14 ASProtect 1.32 Beta build 10.20 ASProtect 1.33 build 03.07 ASProtect 1.35 Keygenerator-TMG ASProtect 1.35 build 04.25 Release ASProtect 2.0 build 01.13 ASProtect 2.0 Build 06.23 Alpha ASProtect SKE 2.11 03.13.crk ASProtect SKE v2.x Keygen-ECLiPSE ASProtect.SKE 2.2 build 04.25 Release ASProtect.SKE 2.3 build 03.19 beta.crk ASProtect.SKE 2.3 build 04.26.beta.汉化版 ASProtect.SKE 2.3 build 05.14 beta ASProtect.SKE.v2.41.Build.02.26 ASProtect.SKE 2.51 09.22 Beta 这个壳在pack界当选老大是毫无异议的,当然这里的老大不仅指它的加密强度,而是在于它开创了壳的新时代,SEH,BPM断点的清除都出自这里,更为有名的当属RSA的使用,使得Demo版无法被crack成完整版本,code_dips也源于这里。IAT的处理即使到到现在看来也是很强的。他的特长在于各种加密算法的运用,这也是各种壳要学习的地方。 特点:兼容性与稳定性最好,商业软件应用的很广大。 ASProtect 1.x系列,低版本用Stripper工具可自动脱壳。 ASProtect SKE 2.x强度大大提高,主要是高级输入保护,特别是抽OEP、SDK。 ASProtect.v.1.35.Keygen适用于04.25以前版本。 ASProtect.v.2.x.Keygen适用于2.2/2.3 0514以前版本。 注册时:初始界面里输入ASP字符,再进入注册框。 注意:这款名气太大,研究的也多,因此对于脱壳者来说,也没啥强度了。 ACProtect v1.09g ACProtect v1.32 ACProtect v1.41.crk ACProtect 2.0 国产壳,该壳变形做得好,强度还不错。https://www.360docs.net/doc/5c17850930.html,/ Armadillo Custom 3.77.0021 Armadillo Custom 3.78.0194 Armadillo Custom 4.00.0230 Armadillo Custom 4.40.0250 Armadillo Custom 6.04.0447 Armadillo Professional Custom v7.00.0081 一款优秀的保护软件!可以运用各种手段来保护你的软件,同时也可以为软件加上种种限制,包括时间、次数,启动画面等等!很多商用软件采用其加壳。 Armadillo4.1的使用说明: https://www.360docs.net/doc/5c17850930.html,/showthread.php?s=&threadid=18116 https://www.360docs.net/doc/5c17850930.html,/ 注意:只有Custom才有完整的功能,Public版没什么强度,不建议采用。需要研究Public的,请到FTP下载。 Dbpe 2.20 Dbpe 2.33 D.boy的幻影,很久没更新了。此款壳己有脱壳机。长时间不更新,不推荐。

介绍下加壳识别壳破壳的方法

介绍下加壳、脱壳以及如何病毒免杀技术与原理(2008-5-26 18:19:00) 【收藏】【评论】【打印】【关闭】 标签:加壳脱壳病毒免杀技术介绍下加壳、脱壳以及如何病毒免杀技术与原理 在自然界中,我想大家对壳这东西应该都不会陌生了,由上述故事,我们也可见一斑。自然界中植物用它来保护种子,动物用它来保护身体等等。同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。从功能上抽象,软件的壳和自然界中的壳相差无几。无非是保护、隐蔽壳内的东西。而从技术的角度出发,壳是一段执行于原始程序前的代码。原始程序的代码在加壳的过程中可能被压缩、加密……。当加壳后的文件执行时,壳-这段代码先于原始程序运行,他把压缩、加密后的代码还原成原始程序代码,然后再把执行权交还给原始代码。软件的壳分为加密壳、压缩壳、伪装壳、多层壳等类,目的都是为了隐藏程序真正的OEP(入口点,防止被破解)。关于“壳”以及相关软件的发展历史请参阅吴先生的《一切从“壳”开始》。 (一)壳的概念 作者编好软件后,编译成exe可执行文件。 1.有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名,即为了保护软件不被破解,通常都是采用加壳来进行保护。 2.需要把程序搞的小一点,从而方便使用。于是,需要用到一些软件,它们能将exe可执行文件压缩, 3.在黑客界给木马等软件加壳脱壳以躲避杀毒软件。实现上述功能,这些软件称为加壳软件。(二)加壳软件最常见的加壳软件 ASPACK ,UPX,PEcompact 不常用的加壳软件WWPACK32;PE-PACK ;PETITE NEOLITE (三)侦测壳和软件所用编写语言的软件 因为脱壳之前要查他的壳的类型。 1.侦测壳的软件fileinfo.exe 简称fi.exe(侦测壳的能力极强)。 2.侦测壳和软件所用编写语言的软件language.exe(两个功能合为一体,很棒),推荐language2000中文版(专门检测加壳类型)。 3.软件常用编写语言Delphi,VisualBasic(VB)---最难破,VisualC(VC)。 (四)脱壳软件 软件加壳是作者写完软件后,为了保护自己的代码或维护软件产权等利益所常用到的手段。目前有很多加壳工具,当然有盾,自然就有矛,只要我们收集全常用脱壳工具,那就不怕他加壳了。软件脱壳有

认识软件脱壳及脱壳工具下载

认识软件脱壳及脱壳工具下载 一切从“壳”开始 我写这篇东西的主要目的是让初到本站的新手们能对“壳”有个大概的认识,知道我每天说了些什么。限于本人的知识,如果有ERROR 之处,还请多原谅。如果你觉得还可以,也欢迎转贴,但请保留文章的完整性和作者的资料。当然如果你想把它发表,硬塞些稿费给俺花花,我也不会拒绝的。;) 作为一个以“壳”为主的站台,如果连访者连什么是“壳”都不清楚的话,那我也太失败了。很早以前就想写编完全关于“壳”的文章,但苦于时间和文字水平的关系,都没提笔。本着对站台负责的态度,现在经过一天的努力,“打”出这编尝试由壳的历史一直谈到最新发展的本章来。 首先我想大家应该先明白“壳”的概念。在自然界中,我想大家对壳这东西应该都不会陌生了,植物用它来保护种子,动物用它来保护身体等等。同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。 最早提出“壳”这个概念的,据我所知,应该是当年推出脱壳软件RCOPY 3 的作者熊焰先生。在几年前的DOS 时代,“壳”一般都是指磁盘加密软件的段加密程序,可能是那时侯的加密软件还刚起步不久吧,所以大多数的加密软件(加壳软件)所生成的“成品”在“壳”和需要加密的程序之间总有一条比较明显的“分界线”。有经验的人可以在跟踪软件的运行以后找出这条分界线来,至于这样有什么用这个问题,就不用我多说了。但毕竟在当时,甚至现在这样的人也不是很多,所以当RCOPY3 这个可以很容易就找出“分界线”,并可以方便的去掉“壳”的软件推出以后,立即就受到了很多人的注意。老实说,这个我当年在《电脑》杂志看到广告,在广州电脑城看到标着999元的软件,在当时来说,的确是有很多全新的构思,单内存生成EXE 可执行文件这项,就应该是世界首创了。但它的思路在程序的表现上我认为还有很多可以改进的地方(虽然后来出现了可以加强其功力的RO97),这个想法也在后来和作者的面谈中得到了证实。在这以后,同类型的软件想雨后春笋一般冒出来,记得住名字的就有:UNKEY、MSCOPY、UNALL .... 等等,但很多的软件都把磁盘解密当成了主攻方向,忽略了其它方面,当然这也为以后的“密界克星”“解密机器”等软件打下了基础,这另外的分支就不多祥谈了,相信机龄大一点的朋友都应该看过当时的广告了。 解密(脱壳)技术的进步促进、推动了当时的加密(加壳)技术的发展。LOCK95和BITLOK 等所谓的“壳中带籽”加密程序纷纷出笼,真是各出奇谋,把小小的软盘也折腾的够辛苦的了。正在国内的加壳软件和脱壳软件较量得正火红的时候,国外的“壳”类软件早已经发展到像LZEXE 之类的压缩壳了。这类软件说穿了其实就是一个标准的加壳软件,它把EXE 文件压缩了以后,再在文件上加上一层在软件被执行的时候自动把文件解压缩的“壳”来达到压缩EXE 文件的目的。接着,这类软件也越来越多,PKEXE、AINEXE、UCEXE 和后来被很多人认识的WWPACK 都属于这类软件,但奇怪的是,当时我看不到

个人总结的一个VMP脱壳步骤

个人总结的一个VMP脱壳步骤 个人总结的一个VMP脱壳步骤 个人在学习脱VMP加壳的过程中总结的一个步骤。按照这个步骤,包括VMP1.6—2.0在内应该有70%-80%能脱壳。脱不了的也别问我,我也刚开始学习。我还想找人问呢。 想要脱VMP的壳,首要工作当然是要找一个强OD啦!至于是什么版本的OD自己多试验几个,网上大把大把的,一般来说只要加载了你想脱的VMP加壳程序不关闭都可以。 其次就是StrongOD.dll这个插件了,现在用的比较多的就是海风月影,同样网上也是大把大把的。下载回来后复制到你的OD程序所在的文件夹里面的plugin里。StrongOD的设置选项搞不懂就全部打钩。 接下来要做的工作就是搞清楚我们要脱壳的程序编程的语言了,可以用PEID或者fastscanner查看,如果在这里看不到也可以在OD载入以后通过里面的字符串判断了。例如VB的程序会出现MSVB----/VC的会出现MSVC---等等。这些都是程序运行所需要的windows链接文件。 做完这些预备工作接下来当然是用OD载入文件啦。文件载入后在反汇编窗口CTRL+G搜索VirtualProtect(注意V跟P要大写,至于为什么要搜索这个别问我)。一般来说搜索的结果会出现以下的类似: 7C801AE3 E8 75FFFFFF call kernel32.VirtualProtectEx 我们在这里下F2断点。然后F9运行到我们下的这个断点。接下来我们就要注意观察堆栈窗口了。一般来说当我们F9运行到我们上面下的断点的时候在堆栈窗口会出现以下类似: 0012F66C 00401000 |Address = TradeCen.00401000 0012F670 000280D1 |Size = 280D1 (164049.) 0012F674 00000004 |NewProtect = PAGE_READWRITE 0012F678 0012FF98 \pOldProtect = 0012FF98 我们要注意观察的就是在接下来我们F9运行的时候,ADDRESS和NEWPROTECT这两行的变化。按F9-速度别太快,直到NewProtect项变为PAGE_READONLY,这时候程序就释放完毕了。 0012F66C 0042A000 |Address = TradeCen.0042A000 0012F670 000069DE |Size = 69DE (27102.) 0012F674 00000002 |NewProtect = PAGE_READONLY 0012F678 0012FF98 \pOldProtect = 0012FF98 现在可以取消刚才我们下的断点了。接下来就是找OEP了。找OEP的时候我个人的一个经验就是OEP 一般就在接近上面的ADDRESS地址的附近。例如上面的地址是0042A000,我一般就在这个基础上减到420000搜索程序的特征段,当然我们也可以直接跳到401000开始搜索。虽然我们搜索的范围比较大,但是因为我们搜索的是命令序列,所以工作量还不是很大。 废话不多说,CTRL+G--上面的地址,然后CTRL+S 查找命令序列。命令序列的内容就是我们用查到的编程语言的特征段。我们可以在特征段里面选择两三句固定不变的命令查找。例如VC++6.0的特征段是0046C07B U> 55 push ebp 0046C07C 8BEC mov ebp,esp

软件破解的方法和原理

【转】软件破解的方法和原理 软件破解实例教程2009-05-27 03:42 我要破解的软件:网络填表终结者 破解需要的软件(点击下载): 侦壳 language.exe 脱壳AspackDie.exe 反编译 W32Dasm黄金中文版 16进制编辑器 UltraEdit.rar 在破解之前先复习一下基础知识: 一.破解的等级 初级,修改程序,用ultraedit修改exe文件,称暴力破解,简称爆破 中级,追出软件的注册码 高级,写出注册机 二.用w32dasm破解的一般步骤: 1.看软件的说明书,软件注册与不注册在功能上有什么区别,如何注册 2.运行此软件,试着输入你的姓名和任意注册码去注册,有什麽错误提示信息,将错误提示信息记下来 3.侦测有无加壳(第一课).若加壳,脱壳(第二课) 4.pw32dasmgold反汇编 5.串式参考中找到错误提示信息或可能是正确的提示信息双击鼠标左键 6.pw32dasmgold主窗口中分析相应汇编,找出关键跳转和关键call 7.绿色光条停在关键跳转,在pw32dasmgold主窗口底部找到关键跳转的偏移地址(实际修改地址) 8.用ultraedit找到偏移地址(实际修改地址)修改机器码,保存 壳的概念:版权信息需要保护起来,不想让别人随便改动,exe可执行文件压缩,最常见的加壳软件ASPACK ,UPX,PEcompact 脱壳:拿到一个软件,侦测它的壳,然后我们要把它的壳脱去,还原它的本来面目.若它没有加壳,就省事不用脱壳了.脱壳软件 unaspack,caspr,upx,unpecompact,procdump 实际修改地址(偏移地址)和行地址(虚拟地址)pw32dasmgold反汇编出来的代码由三列组成

去壳的步骤 六

去壳的步骤六 如何将EXE安装文件脱壳和破解--之解决办法 步骤1 检测壳 壳的概念: 所谓“壳”就是专门压缩的工具。 这里的压缩并不是我们平时使用的RAR、ZIP这些工具的压缩,壳的压缩指的是针对exe、com、和dll等程序文件进行压缩,在程序中加入一段如同保护层的代码,使原程序文件代码失去本来面目,从而保护程序不被非法修改和反编译,这段如同保护层的代码,与自然界动植物的壳在功能上有很多相似的地方,所以我们就形象地称之为程序的壳。 壳的作用: 1.保护程序不被非法修改和反编译。 2.对程序专门进行压缩,以减小文件大小,方便传播和储存。 壳和压缩软件的压缩的区别是 压缩软件只能够压缩程序

而经过壳压缩后的exe、com和dll等程序文件可以跟正常的程序一样运行 下面来介绍一个检测壳的软件 PEID v0.92 这个软件可以检测出450种壳 新版中增加病毒扫描功能,是目前各类查壳工具中,性能最强的。 另外还可识别出EXE文件是用什么语言编写的VC++、Delphi、VB或Delphi 等。 支持文件夹批量扫描 我们用PEID对easymail.exe进行扫描 找到壳的类型了 UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo 说明是UPX的壳 下面进行 步骤2 脱壳 对一个加了壳的程序,去除其中无关的干扰信息和保护限制,把他的壳脱去,解除伪装,还原软件本来的面目。这个过程就叫做脱壳。 脱壳成功的标志 脱壳后的文件正常运行,功能没有损耗。 还有一般脱壳后的文件长度都会大于原文件的长度。

即使同一个文件,采用不同的脱壳软件进行脱壳,由于脱壳软件的机理不通,脱出来的文件大小也不尽相同。 关于脱壳有手动脱壳和自动脱壳 自动脱壳就是用专门的脱壳机脱很简单按几下就OK了 手动脱壳相对自动脱壳需要的技术含量微高这里不多说了 UPX是一种很老而且强大的壳不过它的脱壳机随处就能找到 UPX本身程序就可以通过 UPX 文件名-d 来解压缩不过这些需要的命令符中输入 优点方便快捷缺点DOS界面 为了让大家省去麻烦的操作就产生了一种叫UPX SHELL的外壳软件 UPX SHELL v3.09 UPX 外壳程序! 目的让UPX的脱壳加壳傻瓜化 注:如果程序没有加壳那么我们就可以省去第二步的脱壳了,直接对软件进行分析了。 脱完后我们进行

相关文档
最新文档