您现在的位置是: 堆糖网 > 杂谈 > 加壳-加壳与脱壳的原理

加壳-加壳与脱壳的原理

2020-03-15 05:16作者:堆糖网 355人阅读

简介一、加壳 所有壳如果放到高手手里都会被破解。 建议加一个upx加壳器,压缩一下。 这样还是可以防破解的。 上网查“易语言做upx加壳工具” 也可以找到哦 如图。 这是破解软件的工

一、加壳

所有壳如果放到高手手里都会被破解。

建议加一个upx加壳器,压缩一下。

这样还是可以防破解的。 上网查“易语言做upx加壳工具” 也可以找到哦

如图。 这是破解软件的工具

壳是用来保护软件的,防止被破解,比如著名的vmp加壳软件,加了这个壳之后较难破解,但高手还是可以破解的。不加壳的软件仿佛是在裸奔,很轻易破解。加壳的软件可以查看反汇编代码,也可以修改,包括关键的,常用的软件就是反汇编工具。破解软件一般就是用对软件进行脱壳再破解。

一加壳

以上数据内容来源于:百度加壳搜狗加壳360加壳

二、软件加壳工具

每个杀软的病毒库不同报毒也就不同不能360我认为很垃圾呀举个例子卡巴斯基曾屡次误杀过系统文件但有谁说它垃圾没人

免杀最简单的方式就是加壳,加壳软件分压缩和加密壳,简单的可以用压缩壳或加密壳直接对EXE文件进行加壳,如果杀毒软件不报警,说明加壳成功。建议去看雪论坛学习加密解密知识。

二软件加壳工具

以上数据内容来源于:百度软件加壳工具搜狗软件加壳工具360软件加壳工具

三、加壳与脱壳的原理

很少有需要的软件,所以最近总是自娱自乐。自己写的软件自己破着玩但是由于都是知道自己的手段,没有什么意思。真的希望有高手们写些。

最近看了看的脱壳大致的理解了脱壳的原理,之前没有怎么接触脱壳,通常只是选择没有壳的软件看看。在下的壳没有找到几个。只找到了一个upx的壳,在下是个弱壳。实际上在下面也是弱壳,完全可以使用的命令解决问题。但我总是喜欢自己手动的。呵呵纯属于自娱自乐。

ok开始我们的的upx的脱壳之旅

我在选择工具的时候花了很多时间,忽然发现GDB在upx面前是那么的苍白无力也终于知道为什么有人说GDB不适合做逆向了虽然软件在调试器里可以正常于运行,正常下断。但是根本无法查看反汇编的代码。

无奈无奈使用传说中最好的工具IDA为此我特地简单的学习了一下IDC脚本的使用方法

没有什么资料可以参考,是一件很不愉快的事情,因为不知道能不能成功。不管了,一步一步来吧

我用“upx-d“脱出了原来的文件,发现文件是全的,没有任何部分丢失,所以我相信这些文件会出现在进程空间的某个时间的某个角落,这个很大的坚定了我手动脱壳的信心(但是实际上到这篇文章的结尾我也没有能够在找到完整的程序文件,但我相信理论上内存空间中应该会出现完整的文件的)。

我的加壳软件是我上次文章中用到做外挂的(扫雷游戏)。先找到了upx303i软件附件中我会给出的免的度这篇文章的人去寻找了。

对我们目标软件加壳,命令如下,的确是个好用的压缩壳软件,直接有54%的压缩律。

代码

27

好了,我们开始调试他了,加了壳以后,一般的调试软件已经对他无能为力了

实验一下GDB和DDD的效果以及

还可以正常使用,(仅限于一部分功能呵呵,不详谈了)

代码

7f454

32

2’

0x1

0x0

0x00x00x01d600x01d60RE0

0fc0b2fc0b2fc0RW0

上面的输出,我们可以发现他的入口点是0这个入口点已经和GCC编译出来的程序大不一样了。实际上重“upx-d“脱出来的效果来看,原来的入口点基本上是不会改变的,也就是说我们的手动脱壳的时候软件的入口点,加载方式都是和未加壳的软件是一样的这一点又为我们的脱壳成功,增加了砝码

继续gdb调试一下

代码

1at0

10x00in

gdb

gdb看不反汇编代码,晕了都不知道下一步的操作是什么看来是没有什么用了

祭起传说中的逆向利器IDA学西习了一下,简单操作,我开始了调试之旅

代码

等到加载完成,会停在入口处,呵呵在光标在上直接按F4,程序运行,停到了入口出

单步运行实际上我没有什么办法,不知道有什么下好的方法下断点,可以使这个简单方法调试

这边我是这么想的,upx是压缩壳,当他把执行权交给原目标程序的时候,必定会有一个大的跳转,好多新手在脱壳,都是以这个为oep的标准的。应该也不会例外的

F8单步到0xc025c8跳到oxc025d1在0xc025d3又会跳回来。显然是个循环。不在循环里浪费时间了。我们向下找找,下面有个返回。光标移到上面F4。实际上没有什么把握。只是蒙的,结果很好,没有飞走F8单步到了这里

继续单步,到一个地方

不详细分析了往下看。翻阿翻,不会这么巧吧看见了跳转,这不会是传说中的大跳吧。

不管直接F4到这里哈哈很成功。

单步一下,跳到了这里。

不懂代码的具体含义,但是明显不是程序的入口为什么单步继续

看到这里我忽然顿悟,这里是在做ld连接,不能让他运行了,很可能是为了我们目标程序的运行进行共享库的连接会修改我们内存中的映像文件。这样我们出来的就不是原来的干净程序,因为我们没有修复工具,比起里面的PE修复要麻烦多了所以赶紧出来

用来映像的idc脚本

代码

基址

0xc地址,14大小0x4

0x0

"8xn"

0x7f454c0x464c457f

"w"

0x1c

0x2c

0x4

0xc

0x14

set

0x20

0x300

0x

0x

0x

0x

改变文件的属性,让他可以运行。

代码

psu

口令:

程序运行的很好

总结:第一次在下手动脱壳,看上去文章中写的很轻松,实际上在之前做了很多工作。包括ELF的加载等等。还有我发现如果程序的节表头程序也能很好的运行,什么的

另外,我之调试的时候,实际经过很多挫折没有足够的经验嘛不过些文章,截图的时候都很顺利呵呵共勉

三加壳与脱壳的原理

以上数据内容来源于:百度加壳与脱壳的原理搜狗加壳与脱壳的原理360加壳与脱壳的原理
更多关于加壳
更多相关:百度加壳搜狗加壳360加壳

Tags:微信指数代刷

堆糖随机推荐

堆糖探索

网名:堆糖

职业:部落开发工程师

现居:互联网堆糖部落

站点探索