首页
社区
课程
招聘
[旧帖] [邀请码已发][原创]自己做的一个PE解析工具(内付制作思路)。[申请邀请码 ] 0.00雪花
发表于: 2010-4-16 00:48 1992

[旧帖] [邀请码已发][原创]自己做的一个PE解析工具(内付制作思路)。[申请邀请码 ] 0.00雪花

2010-4-16 00:48
1992
大家好!!
来看雪半年了,
断断续续也学了半年(汗)。这俩天心血来潮(主要是闲大了),
做了一个简单的PE解析器,有兴趣的兄弟可以下来玩玩。
版主如果觉的还可以的话,赏一个邀请码。
不胜感激!!!
谢谢。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 148
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没人顶。。。。。。。。。。。。。。
进来的兄弟说句话啊!
又不花Kx。。。。。
2010-4-16 18:57
0
雪    币: 15
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
想听听你的制作思路,可以吗?
2010-4-16 19:04
0
雪    币: 148
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
其实也不是什么思路,先说一下PE文件的格式吧,相信你看了之后就明白了。
  
+-------------------+
    | DOS-stub          |    --DOS-头
    +-------------------+
    | file-header       |    --文件头
    +-------------------+
    | optional header   |    --可选头
    |- - - - - - - - - -|
    |                   |
    | data directories  |    --数据目录
    |                   |
    +-------------------+
    |                   |
    | section headers   |     --节头
    |                   |
    +-------------------+
    |                   |
    | section 1         |     --节1
    |                   |
    +-------------------+
    |                   |
    | section 2         |     --节2
    |                   |
    +-------------------+
    |                   |
    | ...               |
    |                   |
    +-------------------+
    |                   |
    | section n         |     --节n
    |                   |
    +-------------------+

                   DOS-stub                               
        --------------------------------------------
        |   DOS-stub第60字节往后4byte的值                               
        |  就是PE文件头(file-header)             
        |  的位置                                              
        --------------------------------------------          
             
                                   ↓
                       File-Header
              --------------------------------------
             |OFFSET byte          成员                   
             |  0            2              Machine                     
             |  2            2             NumberOfSections      
             |  4            4             TimeDateStamp         
20byte  |  8            4             PointerToSymbolTable         
             |  12            4             NumberOfSymbols             
             |  16            2             SizeOfOptionalHeader         
             |  18            2             Characteristics             
              --------------------------------------
                                  |
                                     ↓
                        optional header
               -----------------------------------------------------------------------
             |OFFSET  byte          成员
             |  0            28        标准成员------------>       
                                                                   OFFSET  byte    成员                                                              
             |                                                        0        2        Magic       
             |                                                              2        1        MajorLinkerVers               
             |                                                              3        1        MinorLinkerVersn       
             |                                                              4        4        SizeOfCode               
             |                                                              8        4        SizeOfInitialize        dData
             |                                                            12        4        SizeOfUninitiali        zedData
             |                                                            16        4        AddressOfEntryPoint
             |                                                            20        4        BaseOfCode
             |                                                            24        4        BaseOfData
             | ----------------------------------------------------------------------
             |  28          68        Windows固有成员----->
             |                                                            28        4        ImageBase
             |                                                            32        4        SectionAlignment       
             |                                                            36        4        FileAlignment                                               
             |                                                            40        2 MajorOperatingSystemVersion       
             |                                                            42        2 MinorOperatingSystemVersion       
             |                                                            44        2        MajorImageVersion
             |                                                            46        2        MinorImageVersion
             |                                                            48        2        MajorSubsystemVersion
             |                                                            50        2        MinorSubsystemVersion
             |                                                            52        4        ReservedDd
             |                                                            56        4        SizeOfImage
             |                                                            60        4        SizeOfHeaders。
             |                                                            64        4        CheckSum
             |                                                            68        2        Subsystem
             |                                                            70        2        DllCharacteristi        cs       
             |                                                            72        4        SizeOfStackReserve
             |                                                            76        4        SizeOfStackCommit
             |                                                            80        4        SizeOfHeapReserve
224byte|                                                            84        4        SizeOfHeapCommit
             |                                                            88        4        LoaderFlags               
             |                                                            92        4        NumberOfRvaAndSizes
              ------------------------------------------------------------------------
             |  96         128        数据目录------->      
             |                                                            96        8        Export Table
             |                                                           104        8        Import Table
             |                                                           112        8        Resource Table
             |                                                           120        8        Exception Table
             |                                                           128        8        Certificate Tabl        e
             |                                                           136        8        Base RelocationTable
             |                                                           144        8        Debug       
             |                                                           152        8        Architecture
             |                                                           160        8        Global Ptr
             |                                                           168        8        TLS Table
             |                                                           176        8        Load Config Table
             |                                                           184        8        Bound Import
             |                                                           192        8        IAT
             |                                                           200        8        Delay Import Descriptor       
             |                                                           208        16        Reserved
              ---------------------------------------------------------------------------------------------
                                                   ・
                          ・
                                                   ・
就写到数据目录吧,太长了。。。。
你看懂了吗?我的思路就是顺藤摸瓜,
因为所有的数据的顺序和长度都是规定好了的。
你只要找到了PE头文件地址你就等于成功了80%了。
写的比较乱,希望你能看懂。
看到的兄弟帮顶啊!!!!!!!!!!!!!
2010-4-16 22:18
0
雪    币: 80
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
高!不知何时才有楼主的水平
2010-4-16 23:50
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
是不错的思路,不过我只会下来看看,以后不一定会去用,我们在这是学技术的,老是用别人的工具那天才可以提高呀
2010-4-17 00:00
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼主辛苦了。不过好像用不着吧?
2010-4-17 00:55
0
雪    币: 15
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢lz的详细介绍。我是新手希望以后能更多交流。俺先好好做足功课。
2010-4-17 12:40
0
雪    币: 148
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢楼上几位兄弟,
大家一起进步!!!!!!
2010-4-17 13:36
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
能不能把分析iat部分说说,很是迷惑
2010-4-21 18:24
0
雪    币: 148
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
从Pe文件头入口地址开始往后第220字节处,
就是iat的位置。
220字节~227字节就是iat的存储内容。
明白了吗?
2010-4-21 20:19
0
雪    币: 148
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
转正成功。高兴!!!!
谢谢楼上几位兄弟。
大家加油!!!!
2010-4-21 20:20
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
写的不错,特别是最我们这些小鸟学习来说,希望有时间多写写入门篇,大家都入门了,再努力向大牛们看齐!
2010-4-21 20:40
0
雪    币: 267
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
友情帮顶,友情帮顶
2010-4-22 08:48
0
雪    币: 47
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
学习了!!!!!
2010-4-22 09:09
0
游客
登录 | 注册 方可回帖
返回
//