《万能数据库查询分析器》的EXE文件加壳技术
《万能数据库查询分析器》的EXE文件加壳技术
马根峰
( 广东联合电子收费股份有限公司, 广州510300)
作者博客:
新浪博客:/magenfeng
搜狐博客:/
QQ空间:/
0引言
对于一个程序开发单位或者个人而言,如何才能防止别人使用DEBUG工具来破解您的程序,更好地保护您的知识产权?
一个比较通用的做法就是把你的EXE文件进行加壳,即将EXE文件进行切分、加密。
对外您只需发布各个加密的EXE子文件,而不用提供EXE文件。
这样别人也就无法DEBUG 您的EXE文件来进行破解。
在系统启动时,通过运行EXE外壳程序,来对各个加密EXE子文件进行解密并加载到一块内存中,从而在内存中直接启动您的应用程序。
总之,在发布软件时,您可以不发布EXE文件,只发布各个加密的EXE子文件和EXE 外壳引导程序,实现对您的软件的保护。
1万能数据库查询分析器所采用的软件保护技术
中国本土程序员马根峰推出的个人作品----万能数据库查询分析器,其中文版本《DB 查询分析器》、英文版本《DB Query Analyzer》。
它集哈希技术、链表等多种数据结构于一体,使用先进系统开发技术,经历4年的研究、开发、测试周期,长达5万多行代码的工作量,使得万能数据库查询分析器具有强大的功能、友好的操作界面、良好的操作性、跨越数据库平台。
出于对对自已程序的保护,马根峰同样对中英文版本的EXE程序文件进行了加壳技术。
从系统产生至今的三个版本,1.0版本、1.03版本到1.04版本都采用了加壳技术,并且EXE 文件进行切分、加密是用自己开发的程序所完成。
发布的安装程序中“DB_part1.del”、“DB_part2.del”、“DB_part3.del”、“DB_part4.del”就是万能查询分析器中英文版本的EXE 文件所切分、加密后的密文文件,具体生成过程见图1所示。
图1 《万能数据库查询分析器》EXE文件的切分、加密过程
用户下载《万能数据库查询分析器》中英文版本安装程序,在计算机上安装后,就可以运行了。
整个程序运行的过程如图2所示。
图2 《万能数据库查询分析器》的装载与执行过程“DBQueryAnalyzer.ex_”(这是安装前的文件名,安装到计算机系统中之后,名称就变成“DBQueryAnalyzer.exe”),就是自己所编写的EXE外壳引导程序。
“DBQueryAnalyzer.ex_”的作用就是将EXE文件切分、加密后的四个子文件“DB_part1.del”、“DB_part2.del”、“DB_part3.del”、“DB_part4.del”解密,然后组装后装入内存,这时EXE外壳引导程序“DBQueryAnalyzer.exe”就退出运行,调用内存中“万能数据库查询分析器”的执行文件区域。
3加壳技术的美中不足
EXE文件加壳技术有效的保护了自己的软件,但由于其原理类似于病毒的工作原理,所以被相当一部分杀毒软件误认为是木马病毒,尽管本人已经发信给国内外的杀毒软件商,告知他们本人的程序,但由于别人财大气粗,效率不高,至今《万能数据库查询分析器》的中文版本《DB 查询分析器》、英文版本《DB Query Analyzer》的安装程序依然被当成木马病毒而误杀。
很不可思议的是,2007年5月份在国内外各大软件下载网站(包括国外的、,并且后者还声明说“DB Query Analyzer - SOFTPEDIA "100% CLEAN" AW ARD”)发布时,都没有被误杀啊,怎么今年就开始误杀了呢,木马病毒都出现了多少
年了噢,真是想不通啊!
技术交流的话,
联系方式:
QQ:630414817
MSN: magenfeng@
QQ添加好友时请输入验证信息:查询分析器。
exe加壳原理
exe加壳原理摘要:1.EXE 加壳原理简介2.EXE 加壳的目的和作用3.EXE 加壳的具体方法4.EXE 加壳的优点和缺点5.EXE 加壳的常见类型正文:1.EXE 加壳原理简介EXE 加壳,是指在计算机程序(可执行文件,即.exe 文件)的外部,通过特定的技术手段,将程序代码和数据进行加密、压缩或混淆,形成一个新的外壳(即保护壳),从而使程序在运行时,先执行外壳中的代码,再执行原始程序代码的一种技术。
这种技术通常用于保护程序的版权,防止破解和恶意修改。
2.EXE 加壳的目的和作用EXE 加壳的主要目的是为了保护程序的原始代码,防止黑客和病毒的攻击。
具体来说,EXE 加壳有以下几个作用:(1)防止程序被破解:通过加壳,可以使程序的代码变得难以理解,从而增加破解的难度。
(2)保护程序的完整性:加壳可以确保程序在运行时不被非法修改,从而保证程序的稳定性和可靠性。
(3)隐藏程序的真正功能:加壳可以使程序的真正功能被外壳所掩盖,从而增加安全性。
3.EXE 加壳的具体方法EXE 加壳的具体方法有很多种,常见的加壳工具有:ASPack、UPX、Petite 等。
这些工具的原理大致相同,都是通过将原始程序代码和数据进行加密、压缩或混淆,形成一个新的外壳,然后将原始程序代码和数据嵌入到外壳中。
在程序运行时,外壳中的代码先执行,然后调用原始程序代码。
4.EXE 加壳的优点和缺点EXE 加壳的优点包括:保护程序代码的安全性、防止程序被破解、提高程序的运行效率等。
但同时也存在一些缺点,如:可能导致程序体积增大、可能影响程序的兼容性和稳定性等。
5.EXE 加壳的常见类型常见的EXE 加壳类型有:(1)压缩壳:通过压缩技术,将程序代码和数据压缩,从而减小程序体积。
(2)加密壳:通过加密技术,将程序代码和数据进行加密,从而保护程序的版权。
(3)混淆壳:通过混淆技术,将程序代码和数据进行混淆,从而增加破解的难度。
总结来说,EXE 加壳是一种有效的程序保护技术,可以有效地保护程序的版权和完整性。
《万能数据库查询分析器》的EXE文件加壳技术
《万能数据库查询分析器》的EXE文件加壳技术万能数据库查询分析器(Universal Database Query Analyzer)是一款常用的数据库查询工具,可以连接多种类型的数据库,并通过简单的语法来执行查询操作。
为了保护软件的安全性和版权,开发者常常会使用加壳技术来防止被破解或篡改。
在本文中,我们将介绍《万能数据库查询分析器》的EXE文件加壳技术。
加壳技术是一种将原始可执行文件(EXE)包装在壳程序中的方法。
它可以提供一层保护,使得破解者难以直接分析和修改程序的逻辑和代码。
加壳技术的主要目的是增强软件的抗逆向工程能力和安全性。
在《万能数据库查询分析器》的EXE文件中,可以采用如下的加壳技术:1. 加壳器选择:选择一个合适的加壳器是第一步。
常见的加壳器有Themida、UPX、Enigma Protector等。
根据软件的特点和需求,选择一个适合的加壳器进行加壳操作。
2.加壳过程:加壳器通过修改可执行文件的文件头和代码区段来进行加壳。
首先,加壳器会创建一个壳程序,并将原始可执行文件插入到壳程序中的一些位置,形成新的加壳文件。
然后,加壳器会对加壳文件进行一系列的修改和加密操作,包括改变文件结构、加密代码段、混淆控制流等。
3.动态解壳:在运行时,加壳文件会首先执行壳程序,进行解壳操作。
解壳操作包括解密代码段、还原文件结构等。
解壳后,程序会开始正常执行。
加壳技术可以提供多种保护功能,如:1.反调试功能:加壳器可以通过修改PE结构中的调试信息或使用反调试技术来防止调试器的使用。
2.加密保护:加壳器可以对加壳文件的代码段进行加密,使得破解者无法直接获取和分析代码。
3.完整性保护:加壳器可以通过校验和或数字签名等方式验证加壳文件的完整性,防止被篡改。
4.虚拟机保护:加壳器可以通过使用虚拟机技术,在运行时创建一个隔离的执行环境,防止逆向分析和调试操作。
然而,加壳技术也有一些缺点和挑战:1.兼容性问题:加壳技术可能会导致一些兼容性问题,如无法在一些环境中正常运行或与其他软件冲突等。
加壳与脱壳应用及实现
加壳与脱壳的应用与实现一、加壳 (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.12.加壳原因就把这样的程序称为“壳”了。
作者编好软件后,编译成exe可执行文件。
1)有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名,即为了保护软件不被破解,通常都是采用加壳来进行保护。
2)需要把程序搞的小一点,从而方便使用。
于是,需要用到一些软件,它们能将exe可执行文件压缩。
3)在黑客界给木马等软件加壳脱壳以躲避杀毒软件。
实现上述功能,这些软件称为加壳软件。
3.壳的加载过程1)获取壳自己所需要使用的API地址如果用PE编辑工具查看加壳后的文件,会发现未加壳的文件和加壳后的文件的输入表不一样,加壳后的输入表一般所引入的DLL和API函数很少,甚至只有Kernel32.dll以及GetProcAddress这个API 函数。
壳实际上还需要其他的API函数来完成它的工作,为了隐藏这些API,它一般只在壳的代码中用显式链接方式动态加载这些API函数2)解密原程序的各个区块(Section)的数据壳出于保护原程序代码和数据的目的,一般都会加密原程序文件的各个区块。
在程序执行时外壳将会对这些区块数据解密,以让程序能正常运行。
壳一般按区块加密的,那么在解密时也按区块解密,并且把解密的区块数据按照区块的定义放在合适的内存位置。
软件加壳实验报告
一、实验目的1. 理解软件加壳的基本原理和作用。
2. 掌握常用的软件加壳工具的使用方法。
3. 分析加壳对软件性能和安全性影响。
4. 探索软件加壳技术在实际应用中的挑战和解决方案。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3. 加壳工具:UPX、ASProtect4. 被加壳软件:一个简单的Python脚本三、实验内容1. 软件加壳基本原理软件加壳是一种将软件进行压缩、加密或变形处理的技术,目的是为了保护软件不被未经授权的篡改或破解。
加壳后的软件在运行时会自动解壳,恢复原始形态。
2. 加壳工具使用(1)UPX加壳- 使用UPX加壳工具对Python脚本进行加壳处理。
- 执行命令:`upx --ultra --best your_script.py`- 观察加壳前后的文件大小变化。
(2)ASProtect加壳- 使用ASProtect加壳工具对Python脚本进行加壳处理。
- 注册并下载ASProtect软件。
- 根据ASProtect提供的教程进行加壳操作。
3. 加壳对软件性能影响- 使用Python脚本运行时间作为指标,对比加壳前后的运行时间。
- 使用内存占用作为指标,对比加壳前后的内存占用。
4. 加壳对软件安全性影响- 使用静态分析工具对加壳前后的软件进行代码分析,对比发现代码结构变化。
- 使用动态分析工具对加壳前后的软件进行运行分析,对比发现运行行为变化。
四、实验结果与分析1. UPX加壳结果- 加壳前文件大小:1.2MB- 加壳后文件大小:0.5MB- 运行时间:加壳前后基本无差异- 内存占用:加壳前后基本无差异2. ASProtect加壳结果- 加壳前文件大小:1.2MB- 加壳后文件大小:0.6MB- 运行时间:加壳后运行时间略长- 内存占用:加壳后内存占用略高3. 加壳对软件安全性影响- UPX加壳:代码结构变化不大,安全性提升有限。
- ASProtect加壳:代码结构变化较大,安全性提升明显。
软件加壳技术及实现
软件加壳技术及实现软件加壳是一种常见的软件保护技术,通过将原始的可执行文件进行加密和封装,增加软件的安全性和难度,提高软件的抵抗逆向工程、防止破解的能力。
下面将介绍软件加壳技术的原理及实现方法。
1.软件加壳原理软件加壳的基本原理是将原始可执行文件进行加密处理,生成一个加密后的壳程序,再将原始可执行文件嵌入到壳程序中,并根据可执行文件的特征信息进行相应的处理和解密,最终执行原始程序。
具体的加壳流程如下:(1)加密原始可执行文件:使用对称加密算法(如AES、DES等)对原始可执行文件进行加密处理,使其不可读。
(2)生成壳程序:编写一个壳程序,包括解密原始可执行文件、加载和执行原始程序等功能。
壳程序本身一般是已经加密的,以防止被分析破解。
(3)将原始可执行文件嵌入到壳程序中:将加密后的原始可执行文件隐藏在壳程序中,一般是作为一个资源或数据块存在。
(4)运行壳程序:用户双击运行壳程序,壳程序首先进行解密处理,获取原始可执行文件,然后进行加载和执行。
2.软件加壳实现方法(1)静态加壳:在编译链接阶段对可执行文件进行加壳处理。
静态加壳可以通过修改可执行文件的文件头信息和重定位表等方式实现。
(2)动态加壳:在运行时对可执行文件进行加壳处理。
动态加壳使用的是运行时加载原始程序的方式,可以提高软件的安全性,但也会增加运行的开销。
3.加壳脱壳工具目前市面上有很多成熟的加壳脱壳工具可供使用,如UPX、ASPack、FSG等。
这些工具可以方便地对可执行文件进行加壳和脱壳操作,但也容易被黑客用来破解软件。
总结:软件加壳技术是一种常用的软件保护手段,通过加密和封装原始可执行文件,增加软件的安全性和防破解能力。
加壳脱壳工具能够方便地实现对可执行文件的加壳和脱壳操作,但需要注意合理的加密算法和技术选型,以提高软件的安全性。
exe加壳原理
exe加壳原理摘要:一、exe加壳的背景和意义1.计算机病毒的威胁2.安全防护的需求3.exe加壳的必要性二、exe加壳的基本原理1.壳的概念和作用2.加壳的过程和方法3.常见的壳类型及特点三、exe加壳的实现技术1.代码加密技术2.代码混淆技术3.壳的自校验和保护机制四、exe加壳的破解方法1.静态破解分析2.动态破解分析3.反汇编工具的使用五、我国对exe加壳的监管政策1.我国对计算机病毒的态度2.相关法律法规的规定3.合法使用和防范的建议正文:exe加壳是一种在计算机病毒防护领域广泛应用的技术手段,对于保护用户信息安全具有重要的意义。
本文将详细介绍exe加壳的原理、实现技术以及破解方法,并在此基础上提出我国对exe加壳的监管政策建议。
首先,我们需要了解exe加壳的背景和意义。
随着互联网的普及,计算机病毒日益猖獗,给用户的信息安全带来了严重的威胁。
为了有效防范病毒攻击,安全防护技术应运而生,exe加壳技术便是其中的一种。
通过将可执行文件(exe)加上一个外壳,可以有效地隐藏和保护病毒的原始代码,使其在运行过程中不易被检测和破解。
接下来,我们来探讨exe加壳的基本原理。
壳是一种特殊的可执行文件,其作用是将原始的可执行文件包裹起来,并在运行时提供一个临时的执行环境。
加壳的过程实际上就是将原始代码与壳的代码进行混合,形成一个新的可执行文件。
常见的壳类型有Aspack、UPX、Armadillo等,它们各自具有不同的特点和保护强度。
在了解了exe加壳的基本原理后,我们进一步探讨其实现技术。
exe加壳主要依赖于代码加密、代码混淆以及壳的自校验和保护机制等技术。
代码加密技术可以有效防止病毒代码被静态破解分析,而代码混淆技术则使得病毒代码在运行时难以被反汇编工具识别。
壳的自校验和保护机制则可以确保加壳后的文件在运行过程中不会被非法篡改或破坏。
然而,道高一尺,魔高一丈。
exe加壳技术虽然具有一定的保护作用,但仍然可以被破解。
加壳与脱壳的原理 -回复
加壳与脱壳的原理-回复"加壳与脱壳的原理"加壳(Packaging)是指对一个可执行文件或者库文件进行额外的处理,以使其更难以被逆向工程或者破解。
而脱壳(Unpacking)则是指将已经加壳的文件还原为原始的可执行文件或者库文件。
加壳与脱壳的原理涉及到计算机的底层操作以及程序解释执行的过程。
在理解加壳与脱壳的原理之前,我们需要先了解几个相关的概念。
1. 可执行文件(Executable File):指计算机中的一种文件类型,包含一系列的二进制指令,可以被操作系统加载和执行。
2. 动态链接库(Dynamic Link Library,DLL):是一种包含可执行程序、函数、类或其他数据的模块,可以被多个程序同时使用,提供了代码复用的机制。
3. 虚拟内存(Virtual Memory):是计算机操作系统中为执行程序而虚拟化出来的内存,使得程序运行时感觉自己拥有连续的可用内存,实际上是由操作系统进行了地址映射和管理。
加壳的原理如下:1. 加壳算法选择:选择适合的加壳算法进行加壳操作。
常见的加壳算法有简单的多层字节替换、代码混淆、指令重排、函数重命名等。
2. 加壳过程:将被保护的可执行文件或库文件加载到内存中,通过加壳算法对文件进行处理。
加壳算法会在文件的原始指令之前或之后添加额外的指令,以及加密或混淆文件的内容。
这样就改变了文件的结构和指令的布局,使得逆向工程师难以进行分析或者修改。
3. 跳转到加壳后的指令:在加壳过程完成后,控制权会被转移到加壳后的代码,加壳后的代码会负责解密或还原文件的原始指令,然后再将控制权转交给原始指令。
脱壳的原理如下:1. 检测加壳文件:首先需要确定一个文件是否经过加壳处理,可以通过静态或动态分析来判断。
一些特征线索包括文件的大小、文件的进程行为、使用的加密算法等。
2. 脱壳过程:脱壳工具或程序会加载加壳文件到内存中,并且通过特定的算法和技术还原文件的原始指令。
exe加壳原理
exe加壳原理摘要:一、exe 加壳概述1.壳的概念2.壳的作用3.壳的分类二、exe 加壳原理1.加壳工具的工作原理2.壳的加载过程3.壳的卸载过程三、exe 加壳与反汇编的关系1.反汇编的基本概念2.加壳对反汇编的影响3.反汇编在加壳破解中的应用四、我国对exe 加壳的监管1.我国法律法规对exe 加壳的规定2.我国对exe 加壳的监管措施3.合法合规使用exe 加壳的建议正文:exe 加壳是一种在计算机软件中广泛应用的技术,它可以保护软件的知识产权,防止软件被非法复制和传播。
然而,exe 加壳也给软件安全带来了一定的挑战,一些恶意软件利用加壳技术来逃避安全软件的检测。
本文将对exe 加壳的原理进行详细解析,以帮助读者更好地理解这一技术。
一、exe 加壳概述exe 文件是Windows 操作系统中的一种可执行文件格式,它可以包含程序代码、数据和资源等信息。
在计算机软件领域,壳(Shell)是指一种位于exe 文件最外层的保护程序,它的主要作用是保护exe 文件内部的代码和数据不被非法访问和修改。
壳可以分为简单壳、压缩壳、加密壳等多种类型,它们在功能和实现方式上有所差异。
二、exe 加壳原理1.加壳工具的工作原理加壳工具通过对exe 文件进行打包,生成一个新的exe 文件。
在这个过程中,加壳工具会将原始代码、数据和资源信息加密或编码,并将其嵌入到新生成的exe 文件中。
同时,加壳工具还会生成一个用于解密和还原原始信息的密钥。
这样,只有拥有密钥的人才能解密和运行原始exe 文件。
2.壳的加载过程当用户运行加壳后的exe 文件时,操作系统会将壳文件加载到内存中。
壳内部的代码和数据首先被解密,然后操作系统将控制权交给壳内部的解密代码。
解密代码会获取原始exe 文件的头信息,并根据头信息找到原始代码和数据在内存中的位置,将它们解密和还原。
3.壳的卸载过程当程序运行完毕后,壳会负责将原始代码和数据从内存中清除,以防止它们被非法保存和传播。
exe加壳原理
exe加壳原理
EXE加壳是指将一个可执行文件(EXE文件)通过加密或压
缩等方式进行加壳处理,以增加其安全性和防止被病毒分析者和逆向工程师分析和修改。
加壳的原理大致可以分为以下几个步骤:
1. 壳程序加载:首先,加壳程序将会加载到内存中,并获取原始可执行文件的位置和大小。
2. 加密或压缩原始文件:壳程序会将原始文件进行加密或压缩,以防止被分析者直接查看和修改。
3. 执行壳程序:壳程序会执行一些初始化操作,如解密或解压缩原始文件,然后将其加载到内存中。
4. 反调试和防破解:壳程序可能会实施一些反调试和防破解的技术,如检测调试器的存在、检查注册表或文件的完整性,防止被逆向工程师进行逆向分析。
5. 执行原始文件:当壳程序完成初始化和反调试操作后,会将控制权转交给原始文件,使其开始执行。
加壳的目的是为了增加可执行文件的安全性,防止被非法使用和分析。
通过加密或压缩等方式对源文件进行加壳处理,可以使得分析者更难直接获取源码和敏感信息,增加逆向工程的难
度。
同时,加壳技术还可以实现软件版权保护和授权管理等功能。
软件加壳技术对数据库安全的作用
统计与管理二○一五·二双基建设软件加壳技术对数据库安全的作用刘兰娟数据库安全包含两层含义:第一层是指系统运行安全,系统运行安全通常受到的威胁如下,一些网络不法分子通过网络、局域网等途径入侵电脑使系统无法正常启动,或超负荷让机子运行大量算法,并关闭CPU风扇,使CPU过热烧坏等破坏性活动; 第二层是指数据库管理系统(简称DBMS)信息安全,DBMS安全通常受到的威胁如下,黑客对数据库入侵,并盗取想要的资料。
我们主要研究一下数据库管理系统信息安全。
一个医院或一个企业为保障数据的正常运行需要数据库后台的支持和数据库管理系统(简称DBMS),DBMS就是软件系统也就是所谓的窗口程序。
窗口程序里边有.exe执行文件和配置文件,配置文件记录有DBMS信息、数据库名称、数据库密码及服务器名称等重要信息。
为了保证数据库的重要信息不被泄露我们引进了加壳技术。
一、加壳技术的概念所谓加壳,是一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变(目前还有一些加壳软件可以压缩、加密驱动程序),以达到缩小文件体积或加密程序编码的目的。
这类似于WinZip的效果,只不过这个压缩之后的文件可以独立运行,解压过程完全隐蔽,都在内存中完成。
二、程序加壳后的工作原理程序加壳其实就是加壳工具在文件头里加了一段指令,告诉CPU,怎么才能解压自己。
现在的CPU都很快,所以这个解压过程你看不出什么东西。
软件一下子就打开了,只有你机器配置非常差,才会感觉到不加壳和加壳后的软件运行速度的差别。
当你加壳时,其实就是给可执行的文件加上个外衣。
用户执行的只是这个外壳程序。
当你执行这个程序的时候这个壳就会把原来的程序在内存中解开,解开后,以后的就交给真正的程序。
所以,这些的工作只是在内存中运行的,是不可以了解具体是怎么样在内存中运行的。
通常说的对外壳加密,都是指很多网上免费或者非免费的软件,被一些专门的加壳程序加壳,基本上是对程序的压缩或者不压缩。
