黑客防线,在攻与防的对立统一中寻求突破!2001年创刊的黑客技术专业刊物!

设为首页
收藏本站
联系我们
网站导航

黑客软件下载 - 专题资源 - 免杀技术专题 - 浏览 - [第48课]手工重建输入表

[第48课]手工重建输入表

授权类型:  

特别说明:
1.本站非VIP资料均从网上收集,仅供网络安全爱好者学习、研究所用,请勿用于非法用途,违者责任自负。
2.本站VIP资料专为VIP会员提供,至2008年2月1日起,所有VIP软件、课程均设置有压缩包密码,此密码一月一更新。获取当月VIP压缩密码请到“VIP论坛”、“服务版”查看置顶贴,或在登陆VIP会员帐户后,点击如下连接进入:VIP资料每月密码公布
3.本站VIP资料专署于所有VIP会员共同所有,任何个人、团体共享、发布、盗连均视为侵权,一经发现,严惩不怠!

软件分类: 免杀技术专题
文件大小: 68.39MB
星级评定:
发 布 人:
发布时间: 2008-8-21 1:20:06
下载权限: 10,9,8,7,6,5,11,12,13
权限说明: 0 游客;1 普通用户;2 C培训班;3 工具培训班;4 脚本培训班; 5 黑客防线技术团队;6 银牌VIP;7 金牌VIP;8 钻石VIP; 9 铂金VIP;10 管理用户;11 贵宾组;12 核心组;13 顾问组; 15 linux培训班;16 漏洞发掘培训班;17 delphi培训班; 18 java培训班;19 综合实战班.
*无下载权限显示则表示所有注册会员均可下载。
下载次数: 1010 人次
下载地址: 下载地址1
                           48. 手工重建输入表

讲师:小鱼

  
    当调用来自其他DLL的函数时候,这些函数称为输入函数。当PE文件被装入时,windows 加载器会定位所有的输入函数和数据,并且修正IAT地址表(此表存放所有引入函数的地址表)。这个过程通过我们的输入表来完成。


输入表结构

typedef struct _IMAGE_IMPORT_DESCRIPTOR {

    union {

        DWORD   Characteristics;

        DWORD   OriginalFirstThunk;                //指向输入名称表的RVA 地址。

    };

    DWORD   TimeDateStamp;        //32位时间标志

    DWORD   ForwarderChain;   // 一般为0 没什么用

    DWORD   Name;                //指向引入的dll名称的RVA

    DWORD   FirstThunk;        //指向输入地址表(iat)的RVA地址

} IMAGE_IMPORT_DESCRIPTOR;

引入几个DLL就有几个这样的_IMAGE_IMPORT_DESCRIPTOR 结构。(简称IID)

OriginalFirstThunk和FirstThunk指向的数组一般指向相同的结构。

                                


IMAGE_IMPORT_DESCRIPTOR                                      IMAGE_IMPORT_BY_NAME

+--------------------+   +--> +------------------+     +----------------------+
                                 INT
| OriginalFirstThunk | --+    | IMAGE_THUNK_DATA | --> | 023B |  ExitProcess   | <--+ |
                                                                                                                                                      |
                                 IAT                                                                                                                                |
|FirstThunk| ------------     | IMAGE_THUNK_DATA |  ---------


叙述下输入表构建过程。
        
      1. 编译器编译我们的源代码,这时候会产生一个obj文件,obj文件包含了我们调用这些函数的公共符号。链接器在链接的时会从导入库中读取与公共符号相匹配的函数名,然后构建输入表结构,并修正相关调用绑定地址。

        而输入表结构呢,我们的PE头结构的数据目录段结构第二个成员指向的则为输入表结构,所以一般我们移动输入表一定要修改其数据目录段所指向的偏移和大小。

  
附带一个下载者例程,自己可以C32打开修改其下载地址然后做测试。。 很简单,不懂的论坛提问,不过我基本都讲过吧...???。。



此课程没有做的很完美,中途停了两次,抱歉。。   由于中途接了两个电话,哎,编辑部没法做课程。真郁闷