首页
社区
课程
招聘
[求助]DELPHI 编译选项 Include TD32 debug info OllyDbg 识别问题 D2007 编译出来的不能识别 D7编译的却可以
发表于: 2008-8-28 12:20 8751

[求助]DELPHI 编译选项 Include TD32 debug info OllyDbg 识别问题 D2007 编译出来的不能识别 D7编译的却可以

2008-8-28 12:20
8751
测试如下
1 使用 DELPHI 7  编译如何程序  (在link 页选上 Include TD32 debug info)
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

begin
  Writeln('Hellow World');
  Readln;
end.

生成EXE 文件大小为 644K  OD 载入后  

71A48238 > $  55            push    ebp
71A48239   .  8BEC          mov     ebp, esp
71A4823B   .  83C4 F0       add     esp, -10
71A4823E   .  A1 B093A471   mov     eax, dword ptr [71A493B0]
71A48243   .  C600 01       mov     byte ptr [eax], 1
71A48246   .  B8 F881A471   mov     eax, 71A481F8
71A4824B   .  E8 44C7FFFF   call    Sysinit::InitExe
71A48250   .  A1 0493A471   mov     eax, dword ptr [71A49304]
71A48255   .  BA 8882A471   mov     edx, 71A48288        ;  ASCII "Hellow World"
71A4825A   .  E8 D9BCFFFF   call     System::Write0LString

71A4825F   .  E8 98AAFFFF   call     System::WriteLn

71A48264   .  E8 C3A3FFFF   call     System::_IOTest

71A48269   .  A1 7093A471   mov     eax, dword ptr [71A49370]

71A4826E   .  E8 71A8FFFF   call     System::ReadLn

71A48273   .  E8 B4A3FFFF   call    System::_IOTest

71A48278   .  E8 CFB7FFFF   call    System::Halt0

很详细的信息  哈哈  内部函数的名字 都有

去掉 Include TD32 debug info  选项后 再次编译 生成EXE 文件大小为 45K
OD载入

71A48238 > $  55            push    ebp
71A48239   .  8BEC          mov     ebp, esp
71A4823B   .  83C4 F0       add     esp, -10
71A4823E   .  A1 B093A471   mov     eax, dword ptr [71A493B0]
71A48243   .  C600 01       mov     byte ptr [eax], 1
71A48246   .  B8 F881A471   mov     eax, 71A481F8
71A4824B   .  E8 44C7FFFF   call    71A44994
71A48250   .  A1 0493A471   mov     eax, dword ptr [71A49304]
71A48255   .  BA 8882A471   mov     edx, 71A48288                    ;  ASCII "Hellow World"
71A4825A   .  E8 D9BCFFFF   call    71A43F38
71A4825F   .  E8 98AAFFFF   call    71A42CFC
71A48264   .  E8 C3A3FFFF   call    71A4262C
71A48269   .  A1 7093A471   mov     eax, dword ptr [71A49370]
71A4826E   .  E8 71A8FFFF   call    71A42AE4
71A48273   .  E8 B4A3FFFF   call    71A4262C
71A48278   .  E8 CFB7FFFF   call    71A43A4C

....没有调试信息了  函数名字也没了

再换用 DELPHI2007  也同样选上   Include TD32 debug info  选项
生成 EXE 大小为 684 K
OD载入

00409134 >  55              push    ebp
00409135    8BEC            mov     ebp, esp
00409137    83C4 F0         add     esp, -10
0040913A    A1 A0AA4000     mov     eax, dword ptr [40AAA0]
0040913F    C600 01         mov     byte ptr [eax], 1
00409142    B8 808B4000     mov     eax, 00408B80
00409147    E8 F0C1FFFF     call    0040533C
0040914C    A1 F4A94000     mov     eax, dword ptr [40A9F4]
00409151    BA 84914000     mov     edx, 00409184                    ; ASCII "Hellow World"
00409156    E8 E1B7FFFF     call    0040493C
0040915B    E8 A8A4FFFF     call    00403608
00409160    E8 779CFFFF     call    00402DDC
00409165    A1 60AA4000     mov     eax, dword ptr [40AA60]
0040916A    E8 81A2FFFF     call    004033F0
0040916F    E8 689CFFFF     call    00402DDC
00409174    E8 B7B2FFFF     call    00404430

为什么 DELPHI 2007  编译的程序..OD看不到详细的调试信息呢?????????
如何 能让 DELPHI 2007 编译出来的东西也能像 D7 的那样..OD可以看到详细的函数名.???????????/
大牛们请指点

附件是分别使用 D7 和 D2007 编译出来的 前面的例程 都使用了 Include TD32 debug info  选项

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
delphi 程序 使用dede分析下看看
2008-8-28 17:24
0
雪    币: 553
活跃值: (887)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
多谢楼上回复...不过...您审题好像错了.....
2008-8-28 21:07
0
雪    币: 553
活跃值: (887)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
???????????????
各位老大  帮个忙啊
2008-9-3 13:22
0
雪    币: 182
活跃值: (55)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
用MAP吧= =通用性高。
2008-9-3 18:02
0
雪    币: 437
活跃值: (273)
能力值: ( LV12,RANK:240 )
在线值:
发帖
回帖
粉丝
6
用MAP调试很爽的~~
2008-9-3 18:10
0
雪    币: 553
活跃值: (887)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
MAP 远远没有   TD32 debug info 详细
2008-9-4 14:09
0
雪    币: 212
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我调试搂主的程序怎么显示不一样呢?搂主的是::,我的是@和@@,不好看,这是在哪儿设呀?
71A48238 > $  55            PUSH EBP
71A48239   .  8BEC          MOV EBP,ESP
71A4823B   .  83C4 F0       ADD ESP,-10
71A4823E   .  A1 B093A471   MOV EAX,DWORD PTR DS:[71A493B0]
71A48243   .  C600 01       MOV BYTE PTR DS:[EAX],1
71A48246   .  B8 F881A471   MOV EAX,D7.71A481F8
71A4824B   .  E8 44C7FFFF   CALL D7.@Sysinit@@InitExe
71A48250   .  A1 0493A471   MOV EAX,DWORD PTR DS:[71A49304]
71A48255   .  BA 8882A471   MOV EDX,D7.71A48288                              ;  ASCII "Hellow World"
71A4825A   .  E8 D9BCFFFF   CALL D7.@System@@Write0LString
71A4825F   .  E8 98AAFFFF   CALL D7.@System@@WriteLn
71A48264   .  E8 C3A3FFFF   CALL D7.@System@@_IOTest
71A48269   .  A1 7093A471   MOV EAX,DWORD PTR DS:[71A49370]
71A4826E   .  E8 71A8FFFF   CALL D7.@System@@ReadLn
71A48273   .  E8 B4A3FFFF   CALL D7.@System@@_IOTest
71A48278   .  E8 CFB7FFFF   CALL D7.@System@@Halt0
71A4827D   .  0000          ADD BYTE PTR DS:[EAX],AL
71A4827F   .  00FF          ADD BH,BH

另外,我今天也在查ollydbg调试delphi程序的问题,我的问题是ollydbg不能载入不在当前目录下的源码,我一直没找到答案,有人说是要生成.pdb文件,但delphi好像根本没有这个功能,它的调试信息是直接嵌入exe文件的,如果是大一点的程序,肯定是把源代码分门别类放在不同的目录下的,如果ollydbg不支持,确实有些不方便,本来我以为delphi2007能产生.pdb文件,结果也不行,连调试信息ollydbg都看不到,我想可能是因为delphi2007推出的时间晚于ollydbg的缘故。
2008-9-8 16:24
0
游客
登录 | 注册 方可回帖
返回
//