吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 56749|回复: 208
收起左侧

[原创] 【新手教程一】小Z以UPX为例,讲解什么是壳,什么是压缩壳?

    [复制链接]
Cizel 发表于 2015-7-27 00:32
本帖最后由 奋斗丶小Z 于 2015-8-13 11:50 编辑


UPX (the Ultimate Packer for eXecutables) 壳大家都不陌生,基本上是我们学习破解时候学习的第一个壳。

我们来到吾爱破解,我们是来学习破解的,为什么让我们非要学习脱壳呢?
   
虽然暂时不懂为什么要脱壳,我们可以先看看为什么要加壳?毕竟先有加壳才有脱壳的嘛(是先有鸡呢?还是先有蛋呢?)

  一. 我写的这个程序太多,想把它压缩变小。那我就加压缩壳。

g0_9458009.jpg

二. 我这是是一个商业的程序,是用来赚钱的,怎么可以被别人破解呢,那我就是加密保护壳

QQ截图20150726233402.png

三. 其他(病毒加壳,Anti-AntiVirus)
QQ截图20150726233831.png

今天就以压缩壳为例,讲讲UPX压缩壳的工作原理,等我学到了加密保护壳再去写这方面的帖子好了。
  UPX (the Ultimate Packer for eXecutables)是一款先进的可执行程序文件压缩器,压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间、网络上传下载的时间和其它分布以及存储费用。 通过 UPX 压缩过的程序和程序库完全没有功能损失和压缩之前一样可正常地运行,对于支持的大多数格式没有运行时间或内存的不利后果。 UPX 支持许多不同的可执行文件格式 包含 Windows 95/98/ME/NT/2000/XP/CE 程序和动态链接库、DOS 程序、 Linux 可执行文件和核心。-百度百科
加壳:其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。解压原理,是加壳工具在文件头里加了一段指令,告诉CPU,怎么才能解压自己。当加壳时,其实就是给可执行的文件加上个外衣。用户执行的只是这个外壳程序。当执行这个程序的时候这个壳就会把原来的程序在内存中解开,解开后,以后的就交给真正的程序。-百度百科


    ----看完这2个关于百度百科的介绍,你似乎明白了点什么,但是还是很模糊。

    压缩壳到底是什么?

    ----UPX加壳程序的作用就是压缩程序代码,实现把可执行文件的体积缩小50%~70%,

    那压缩的原理是什么呢?

    压缩就好像把 可执行文件中的 123456 字母%A代替,789ABC字母%C代替,这样程序代码的体积不久变小了很多。(要是可以这样压缩,这不都只有三分之一了,好机智)。看过《硅谷》这部美剧的同学,现在应该懂了吧,压缩算法很赚钱。

    UPX壳既然压缩了,那为什么还可以正常的运行呢?

    upx的工作原理其实是这样的:首先将程序压缩。

    所谓的压缩包括两方面:
    一方面在程序的开头或者其他合适的地方 插入一段代码。
    另一方面是将程序的其他地方做压缩(也就是上面讲到的压缩)。压缩也可以叫做加密,因为压缩后的程序比较难看懂,原来的代码有很大的不同。
   
    当程序执行时:实时的对程序解压缩。解压缩功能是在第一步时插入的代码完成的功能。

    联起来就是:upx可以完成代码的压缩实时解压执行。且不会影响程序的执行效率。

    实时解压的原理可以使用一下图形表示:

QQ截图20150727001632.png

   程序从1开始执行,而1的功能是将2,3,4解压缩为7,8,9。7,8,9就是2,3,4在压缩之前的形式。
   QQ截图20150727001753.png    

最初代码的形式就应该是:

QQ截图20150727001910.png
用upx压缩之后形式为:

QQ截图20150727001632.png

执行时的形式变为:

QQ截图20150727001753.png



     看完这些,你现在懂了为什么我们用F8单步法的时候,一直要向下,遇到向上的调整要F4执行到下一条?    其实就是想运行完1.UPX插入的代码,同时让UPX插入的代码去解压得到正在的7,8,9未压缩的代码。    本次的讲解到这里就完了,像小生大大说的那样,你能在吾爱写上一篇学习心得可能就能挽救一个准备放弃的人,技术是共进的,就是说在以后的技术生涯想依靠一己之力,是很有限的。            我是一名破解新手,但是底层方面和编程能力方面还不错,希望今天写的帖子可以帮助到大家,特别是初学者。第一次分享技术贴,希望大家多多支持。@Hmily @小生我怕怕


附件资源:脱壳前后的代码比较(小生我怕怕教程第二课补充):链接:http://pan.baidu.com/s/1i3rjak9 密码:dz9p


教程导航:



【新手教程一】小Z以UPX为例,讲解什么是壳,什么是压缩壳?

【新手教程二】小Z带你了解一个程序是怎么运行起来的?

【新手教程三】小Z带你学习什么是ESP定律和什么是堆栈平衡 ?

【新手教程四】小Z带你学习什么是两次内存镜像法和什么是内存断点 ?








点评

“你能在吾爱写上一篇学习心得可能就能挽救一个准备放弃的人,技术是共进的” 这句话太感人了!  发表于 2017-6-23 10:58
哥们顺便把脱压缩壳的堆栈平衡用图文表述一下吧,我想看  发表于 2015-7-28 11:49

免费评分

参与人数 84威望 +1 吾爱币 +12 热心值 +83 收起 理由
窗雨树雪 + 1 + 1 用心讨论,共获提升!
esky + 1 用心讨论,共获提升!
SameCorner + 1 + 1 感人肺腑
ly1989vs + 1 我很赞同!
微笑着走过 + 2 + 1 赞,瞬间让我看懂了
Reign + 1 + 1 It's cool!
往生三川丶 + 1 + 1 用心讨论,共获提升!
天辰666 + 1 + 1 谢谢@Thanks!
52pojiememeda + 1 用心讨论,共获提升!
520小叮当 + 1 + 1 我很赞同!
fedor + 1 + 1 我很赞同!
gomg007 + 1 通俗易懂
木子木泗 + 1 + 1 谢谢@Thanks!
凉生i + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
mxn8639 + 1 初学中…… 看懂了什么是壳,壳的压缩部分需要脱掉吗?
灵魂修域 + 1 谢谢@Thanks!
chufan + 1 楼主加油!!!
星辰梦创始小智 + 1 十分感谢!辛苦了,对于我这种小白来说教程很有用
kenny1994 + 1 平时回复这个都是选择的,今天要打字才对得起LZ了。真心赞!感谢LZ!
小hihi + 1 谢谢@Thanks!
心若秦岭 + 1 谢谢@Thanks!
angelnoeye + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
infofans + 1 谢谢@Thanks!
拂晓天涯 + 1 谢谢@Thanks!
残情·离天 + 1 热心回复!
惜丶落叶无痕 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
qwerttqqaz + 1 我很赞同!
137310853 + 1 热心回复!
千寻梦 + 1 谢谢@Thanks!
inter_82 + 1 我很赞同!
superu + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
royoko + 1 我很赞同!
坏才不遇 + 1 这个必须要顶!!!!!!!!!!!
dhr008 + 1 鼓励转贴优秀软件安全工具和文档!
执笔丶述流年 + 1 热心回复!
shilinzhilang + 1 热心回复!
龟仔龟龟 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
tp5026 + 1 谢谢@Thanks!
丶木屐帽子 + 1 热心回复!
xingkongtianyu + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
aiwanqq + 1 鼓励转贴优秀软件安全工具和文档!
TDY-heaven + 1 热心回复!
albxsxgb + 1 谢谢@Thanks!
Zyc921 + 1 谢谢@Thanks!
dpf3642022 + 1 不赞一个怎么对得起自己
死神眯路 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
风源水境 + 1 谢谢@Thanks!
微博2016 + 1 热心回复!
windy123 + 1 我很赞同!
fenghaoda + 1 已答复!
jian1314 + 1 我很赞同!
tomoyii + 1 热心回复!
qaz003 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
朱泰榕 + 1 谢谢@Thanks!
a1235465a + 1 我很赞同!
ljrlove2008 + 1 我很赞同!
情谊 + 1 鼓励转贴优秀软件安全工具和文档!
w731883875 + 1 谢谢@Thanks!
蚯蚓翔龙 + 1 很特别
tony2526 + 1 我很赞同!
Missu + 1 哥们顺便把脱压缩壳的堆栈平衡用图文表述一.
dimo + 1 鼓励转贴优秀软件安全工具和文档!
alicc + 1 鼓励转贴优秀软件安全工具和文档!
﹏惗 + 1 谢谢@Thanks!
a564569425 + 1 谢谢@Thanks!
默默伤心 + 1 热心回复!
左还是右 + 1 收听了
godmaycry + 1 谢谢@Thanks!
lindian + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
逍遥一仙 + 1 谢谢@Thanks!
sqhs008 + 1 哥辛苦了。期待下一讲
bug_hunter + 1 谢谢@Thanks!
wuyounanhai + 1 谢谢@Thanks!学习
浮光略影 + 1 此贴不评何时评?
asylla + 1 我很赞同!
qianda66 + 1 已答复!
祈祷灬烦恼 + 1 鼓励转贴优秀软件安全工具和文档!
安然自若 + 1 我很赞同!
小生我怕怕 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
逍遥枷锁 + 1 谢谢@Thanks!
Hmily + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
隔壁老汪的汪 + 1 我很赞同!
Godfather.Cr + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
R18 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Cizel 发表于 2015-7-30 08:24
shenshen 发表于 2015-7-29 20:03
比如说一个文件并不知道是什么文件
但是从调用方式和二进制文件看出一定使用了压缩方式,当然从文件头 ...

压缩壳,一般都是在原来的代码的前面加一段代码的,所以不用担心。 压缩壳,单步跟就是可以找到ope的。
而且压缩壳一般都是可以自己解压的,如果不能那程序肯定是运行不了的~
 楼主| Cizel 发表于 2015-8-25 16:10
patton88 发表于 2015-8-25 15:48
大侠讲得很好,请问大侠讲的 第一次作业 的相关Exe程序在哪里下载?多谢

三.开始我被放在了硬盘里面(不 ...

第一次培训课里面的,http://www.52pojie.cn/thread-378612-1-1.html 这个里面下载第一次课作业
缺挂网络 发表于 2015-7-27 00:45
chinasmu 发表于 2015-7-27 01:31
哎哟,不错
隔壁老汪的汪 发表于 2015-7-27 02:06
作为新手,过来学习一下
 楼主| Cizel 发表于 2015-7-27 08:09
要是可以看懂这个了,会发现为什么要脱壳,怎么脱压缩壳
xlcomputer 发表于 2015-7-27 08:31
写得不错啊,生动形象。
楠神_ 发表于 2015-7-27 09:09
支持支持,写的很好、
头像被屏蔽
zzfafa 发表于 2015-7-27 12:57
支持,这种必须支持虽然有些不懂但是还是要学习才知道啊
XKQ 发表于 2015-7-27 13:02
感谢分享,学习了
 楼主| Cizel 发表于 2015-7-27 13:07
缺挂网络 发表于 2015-7-27 00:45
是啊   这个壳觉得简单

壳是比较简单的啦,但是还是得明白为什么要这么脱? 因为简单,所以才好搞明白原理
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 06:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表