首页
社区
课程
招聘
[讨论]求教各位怎么利用IDA查看程序各段的详细信息
发表于: 2013-5-18 23:34 4177

[讨论]求教各位怎么利用IDA查看程序各段的详细信息

2013-5-18 23:34
4177
IDA工具用的不熟练,有些功能也不会用,请问各位过路的高手怎么查看一个程序反编译后各段
的下列表中的信息。。这个表怎么调出来?
section     virtual size   virtual offset    Raw size     Row offset    Charactristics
.text            。。            。。                     。。             。。                   。。
.rdata         。。            。。                    。。                  。。                   。。
.data           。。            。。                   。。               。。                  。。
.reloc          。。              。。                   。。             。。                  。。
        

”。。“代替数据了。
然后可以根据数据可以求 机器码地址,继而在HDX中修改目的机器码。
现在该怎么调出这个表呢??

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2

就是这个表怎么调出来查看信息啊?
2013-5-18 23:36
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
3
如下图所示,按照图片的数据结构格式去读取pe文件,想怎么玩都可以。。。。。。。。

上传的附件:
2013-5-18 23:56
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
4
Microsoft 可移植执行文件和通用目标文件格式说明

修正版6.0 –1999年2月

Note   This document is provided to aid in the development of tools and applications for Microsoft Windows NT® but is not guaranteed to be a complete specification in all respects. Microsoft reserves the right to alter this document without notice.
Microsoft, MS, MS-DOS, and CodeView are registered trademarks, and Windows, Windows NT, Win32, Win32s, and Visual C++ are trademarks of Microsoft Corporation in the USA and other countries.
Alpha AXP is a trademark of Digital Equipment Corporation. Intel is a registered trademark, and Intel386 is a trademark of Intel Corporation. MIPS is a registered trademark of MIPS Computer Systems, Inc. Unicode is a trademark of Unicode, Incorporated. UNIX is a registered trademark of UNIX Systems Laboratories. Other product and company names mentioned herein may be the trademarks of their respective owners.
© 1999 Microsoft Corporation. All rights reserved.

目录
1. 一般概念        4
2. 概述        5
3. 文件头部        7
3.1. MS-DOS Stub (仅映像文件)        7
3.2. 标志 (仅映像文件)        7
3.3. COFF 文件头部 (目标文件和映像文件)        7
3.4. 可选头部 (常规映像文件)        10
4. 节表(节头部)        16
4.1. 节标志        17
4.2. 聚合节 (仅目标文件)        19
5. 文件的其他内容        20
5.1. 节数据        20
5.2. COFF 重定位项 (仅目标文件)        20
5.3. COFF 行数        28
5.4. COFF 符号表        29
5.5. 辅助性的符号记录        34
5.6. COFF 串表        38
5.7. 属性验证表 (仅映像文件)        38
5.8 延迟加载引入表 (仅映像文件)        39
6. 专用节        41
6.1. .debug 节        42
6.2. .drectve 节 (仅目标文件)        45
6.3.  .edata节 (仅映像文件)        45
6.4. .idata 节        49
6.5. .pdata 节        51
6.6. .reloc 节 (仅映像文件)        52
6.7. .tls 节        54
6.8. .rsrc 节        57
7. 档案文件 (库)文件格式        61
7.1. 档案文件签名        62
7.2. 档案成员头部        62
7.3. 第一连接成员        63
7.4. 第二连接成员        64
7.5. 长名成员        65
8. 引入库结构        65
8.1. 引入头部        65
8.2. 引入类型        66
8.3. 引入名称类型        66
附录: 目标文件示例        67
附录: 计算映像文件的信息摘要        72
未包含在摘要中的字段         72

详细文档下载: PE文件格式说明.doc
上传的附件:
2013-5-19 00:01
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢前辈指点http://imgsrc.baidu.com/forum/w%3D580/sign=cbdb46b9b64543a9f51bfac42e168a7b/7af40ad162d9f2d32feebca2a8ec8a136227cc84.jpg
这张图的内容怎么快速找到呢,要用HxD修改一个跳转指令,所以要先找到这个机器码的位置,通过这些信息
求file offset = 指令地址 – 指令段地址 – ( virtual offset – raw offset ) ,这公式对吧?就是不知道怎么看这个表。。。
2013-5-19 00:27
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
6
在要修改的地方附近找一段机器码,搜索就是了,何必计算,费事。

如果代码在第一个节表而且没重定位可以用个公式计算出来,否则,麻烦。用特征码搜索最方便。
2013-5-19 00:41
0
雪    币: 2506
活跃值: (2323)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
7
快捷键Ctrl+G
2013-5-19 12:07
0
雪    币: 141
活跃值: (1130)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
8
楼主的本意可能是在IDA中看到了某段需要修改的代码,但不知道它在可执行文件中对应的位置,因而无法修改。
有几种途径供参考:
1. 用IDA的Edit->Patch program->Change bytes...修改,然后File->Produce File->Create DIF file...生成修改信息文件(修改后的文件与修改前的文件比较后的结果,相当于命令行窗口下的fc /b file1 file2 >file_dif.txt)。从生成的文件里就可以找到你要的信息--文件偏移量。
2. 把光标定位到要修改的地方,然后看汇编窗口左下角的信息:000xxxxx | 004yyyyy: Code:004yyyyy,这里的000xxxxx即为可执行文件的偏移位置(这个信息也可以在第一种方法的弹出窗口中看到,File offset后面的数字就是这个偏移量)。
3. 在对话框Options->General->Disamssembly下设置Number of opcode bytes10,就可以看到二进制代码字节序列,即所谓的特征码。然后在二进制文件编辑器中搜索相应的二进制代码(要想定位准确的话,二进制代码序列最好要长一些,一般大于10个字节比较可靠)。

简言之,要想修改二进制可执行文件,先要定位文件偏移量,然后才能进行修改。
2013-5-19 16:08
0
雪    币: 1866
活跃值: (95)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
6.4版本支持直接修改保存!
2013-5-19 19:19
0
雪    币: 8026
活跃值: (2511)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
[QUOTE=提莫快走;1178710]
就是这个表怎么调出来查看信息啊?[/QUOTE]

lordpe、peid等工具的结果吧
2013-5-21 07:45
0
雪    币: 3758
活跃值: (3282)
能力值: ( LV15,RANK:500 )
在线值:
发帖
回帖
粉丝
11
IDA没有这个界面.
和这个接近的是View->Open subviews->Segments
2013-5-21 15:59
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
谢谢您的解答,你说的很对,我这是在做那个破解练习。刚刚接触IDA,很多都不懂,学习了~
2013-7-29 18:16
0
游客
登录 | 注册 方可回帖
返回
//