新手学软件破解第一课-破解软件的几个基础知识

          对于新手来说,程序是什么语言编写的?程序到底有没有加壳?程序加了什么壳?一直在他们心中充满了疑惑,本文我将根据一些实例解答一下这些问题,并实例提供下载方便大家分析理解,文章有不足之处欢迎大家跟帖指出。本教程主要都收集于网络,有什么不对,可以Q-Q1.1.8.9.0.5.6.8互相交流

一个程序从编译出来的时候一般都是没有壳的,不同编译器编译出的无壳程序也是不相同的,认识了不同编译器编译出来的无壳的程序,再去看无壳程序被加壳程序加壳后的样子就轻松很多,经过对比从而了解不同语言无壳程序和加壳后程序的特征是什么,特征主要从“入口点代码”、“程序区段”和“加载模块”等信息来确定。

作为一名关注windows程序加密解密行业的老兵有必要给新同学传递一些信息,近两年从行业看已经很少有新的windows加壳软件出现了,大部分开发者都转战移动平台,由于windows加密商业需求逐渐降低,所以加壳程序的增长也是有限了,并不会增加太多,我会在这篇文章中把绝大多数目前还在流行使用的windows加壳和对应例子提供一下,供大家学习参考。

一:程序是什么语言编译的

从目前国内接触到程序看,比较流行的编译器有:VC系列、易语言、.NET、Delphi,一些曾经用的很多但渐渐少了有:VB、ASM、BC++,还有一些用的比较少的有:AutoIt、PB、QT等,下面提供一些由论坛同学编译出来的试炼品,结合实例来看看“入口点代码”、“程序区段”和“加载模块”等特征。

二:如何识别加壳

1、通过PEiD、Exeinfo PE等查壳工具内置各种壳的十六进制特征码进行对比查壳,说下优缺点吧。

PEiD、FFI、FastScanner、RDG Packer Detector这类程序都是通过目录下的userdb.txt(查壳程序不同可能数据库名有出入)数据库进行加壳程序特征对比的,由于userdb.txt文件都是好多年前的了,全球基本都在用fly在09年发布的UpKPEiDSign,即使有新的也都基于他制作的版本之上进行更新的,而且更新都没有太好效果,由于原理都是通过加壳程序的特征进行对应,而这些加壳特征都是个人总结而来,对加壳程序的模糊搜索对比造成可靠性不高,特别是对于VMProtect这类加密壳程序,经常被识别成一些算七八糟都没见过的加壳内容,特别是显示UPolyX,基本都是误报,对新手的误导很严重,但对于传统的一些压缩壳的识别效果还是很好的,当然了,有利有弊,正是由于它的开放性特征库,也方便给大家提供自己编写特征的方法,来识别一些新的壳,期待大家能做出自己的加壳特征来。

三:程序加的是什么壳

目前在我看来windows程序状态大体可以分为以下几种类型:未加壳、压缩壳、传统加密壳、代码虚拟化保护、.Net程序加密

四,待续

by Hmily

猜你喜欢

转载自blog.csdn.net/tianshanet/article/details/86556427