Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网络安全 > 黑客技术 > 实现调用加壳的外壳中的子程序的一点见解
【标  题】:实现调用加壳的外壳中的子程序的一点见解
【关键字】:程序
【来  源】:网络

实现调用加壳的外壳中的子程序的一点见解

Your Ad Here 加壳往往是实现对原PE的节数据加密、压缩,若能加壳的同时,让加壳后的程序调用壳中的某些子程序,那加壳强度大大增加。这样处理后,即使脱掉了壳,程序执行也肯定不正常,因为脱壳的同时也将这些子程序脱掉了!
怎样实现呢?作为探讨性的介绍,还是搞一个最基本的来说(假设现在您已经会写PE-exe、PE-dll等PE加壳程序):
我的实现是这样的:作为一个PE文件,多多少少程序中会有mov eax,1或mov eax,0的语句,就是从这里开刀,因为mov eax,xxxxxxxx这样的指令长度正好与Call xxxxxxxx指令的长度一样,处理起来相对简单。在加壳程序加壳时,查找这些语句统统换成:
call shellSub
//
shellSub实现如下:
shellSub()
{
mov eax,1 或 mov eax,0
}
当然,这里有个问题是怎样计算这个Call xxxxxxxx的xxxxxxxx,其实想一想也很简单,加壳时候我们已经计算出了外壳程序的入口RVA,只要以这个RVA为基准,就可以得到:(shellSub的RVA)-(mov eax,1的RVA)的差值,这个差值再减去5(Call的指令长度)就是xxxxxxxx。
这里仅仅抛砖引玉的介绍了最基本的方法,其实通过变化,可以对原程序的很多特定语句实现改成调用外壳中不同的sub,大大增加了外壳的保密强度。
这样处理后,可想而知,脱壳后的运行情况:Windows错误,某个地址不能为读或写。。呵呵,要的就是这个效果!!!
错误之处,恳请各位高手指正!
注册机编写器说明文件(1):【上一篇】
WinKawaks 1.45脱壳笔记(1):【下一篇】
【相关文章】
  • Windows下程序的反汇编
  • Win32 ASM详解-以对话框为主要界面的应用程序
  • 瑞星世纪版密钥盘制作源程序
  • CD-ROM出盒、入盒程序
  • KV3000密钥盘源程序 上
  • KV3000密钥盘源程序 下
  • 为程序添加显示注册码的Messagebox
  • 如何破解PB6.5编译的程序
  • 破P-code程序心得 上
  • 破P-code程序心得 下
  • 【随机文章】
  • Director 3D 基础(6)
  • Word2003新鲜体验:其他改进
  • 如何验证你写的网页是否正确?
  • Photoshop 7.0 扭曲滤镜(3)
  • 用代码来设置故障还原模型‘简单’以及‘收缩数据库
  • #define的用法
  • 用Freehand实现位图矢量化
  • 如何成为一名优秀的web设计师?
  • VBScript 减运算符 (-)
  • 用EDIT plus直接调用php
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.