ELF文件加壳技术
软件的壳一般运行在原始程序的外面,用来保护程序,在对原始程序加壳的过程中,原始程序的入口地址等信息被保存,在外壳运行的过程中,外壳程序会动态的修改任务的入口地址等信息,外壳程序结束后,原始层序开始执行,一般对原始程序加壳时,原始程序首先被加密,在运行外壳程序的时候,外壳程序会对原始程序进行动态的内存解密,使得原始程序恢复其来了的面貌。
只有经过解密后的原始程序才能正常执行。在解密的过程中,外壳程序会对原始程序解密密码或者解密密钥进行验证,只有在密码或者密钥正确的时候才对原始程序解密,后则外壳程序退出这样的安全性和机密性等信息将会的到保护。由于加壳程序在运行过程中,是以整体的形式被加载到内存中,在内存中进行解密的,这种内存解密机制确保无临时文件生成,无原始程序还原等特性,因此可以实现对原始程序更好的保护。
软件加壳实际上是对原始程序及外壳程序进行合并的一个过程,加壳过程实现对原始程序的压缩加密等处理,同时将外壳程序添加到原始程序的开始或末尾,在合并过程中,原始程序的入口被保存,整个程序的入口被改成了外壳程序的入口。这样就可以保证在运行的时候,外壳程序会先被执行,在外壳程序执行的过程中,进行各种保护验证及信息查询,只有验证等信息正确的时候,外壳程序才会对原始程序进行解密还原等处理,并读取保存的原始程序入口,将整个程序的入口改为原始程序的入口,确保在外壳程序退出时原始程序被执行。
软件的加壳实际上是由外壳程序和加壳程序两部分构成的,外壳程序是运行在原始程序外面的代码段,在执行时,该部分代码段会先被执行。加壳程序是将 外壳程序和原始程序合并成代码。在加壳程序中,不仅要完成对文件的合并,文件结构的修改等功能,还要完成对原始程序的加密等功能。经过加壳后,程序将变成由外壳程序,原始程序及解密密钥等共同组成的程序段。
在外壳程序中,不仅要提供对原始程序文件提取、解密等功能,还要实现内存解密、解密后数据填回等功能,同时外壳程序还要实现对程序入口地址修改,控制权转意等功能。这样在外壳程序运行时,才能保证对原始程序进行正确的处理并保证原始程序可被执行。
常见的外壳加载过程分为四步:
1) 保存原程序的入口参数。外壳程序执行前,会读取各个寄存器的信息并将这些
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科Dex加壳解壳原理(2)全文阅读和word下载服务。
相关推荐: