DelphiÏÂÉú³ÉMapÎļþ·½·¨£¬Ãâɱ»òµ÷ÊÔÓõÄ
ÒÔǰ¿´ÁË Í¨¹ý±ÀÀ£µØÖ·ÕÒ´íÎóÐÐÊýÖ®VC°æ ÄÇʱºò»¹Ã»ÓÃDELPHI
×òÍí¸ÕºÃÓÖ¿´µ½ÁË ËùÒÔ¾ÍÊÔÁËÒ»ÏÂDELPHIµÄ£¬Óë´ó¼Ò¹²Ïí ^_^
ʲôÊÇ MAP Îļþ£¿¼òµ¥µØ½²£¬ MAP ÎļþÊdzÌÐòµÄÈ«¾Ö·ûºÅ¡¢Ô´ÎļþºÍ´úÂëÐкÅÐÅÏ¢µÄΨһµÄÎı¾±íʾ·½·¨£¬Ëü¿ÉÒÔÔÚÈκεط½¡¢ÈκÎʱºòʹÓ㬲»ÐèÒªÓжîÍâµÄ³ÌÐò½øÐÐÖ§³Ö¡£¶øÇÒ£¬ÕâÊÇΨһÄÜÕÒ³ö³ÌÐò±ÀÀ£µÄµØ·½µÄ¾ÈÐÇ¡£
DELPHIÏÂÉú³ÉMAPÎļþµÄ·½·¨:żֻ֪µÀÏÂÃæÁ½ÖÖ£¬Èç¹ûËÖªµÀÆäËûµÄ·½·¨ ¾´Çë¸æÖª ¶àл
Éú³ÉÏêϸµÄMAPÐÅÏ¢µÄ·½·¨
1. project -> options -> Linker -> Map file Ñ¡Ôñdetailed.
2. D:\Fred\Code\DELPHI\MyPas\ErrLineByAddr2>dcc32 -GD project1.dpr
ÎÒÃǵĴúÂëΪ£º
unit Unit1;
//{$D+,L+}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
I, J: Integer;
p: PChar;
begin
I := 10;
J := 0;
//I := I div J; // 32
//ShowMessage(IntToStr(I));
p := nil;
p^ := 'A'; // 38
end;
end.
// Ïë±Ø´ó¼Ò¿´µ½ÁË »áÓзµ»Ø0µØÖ·´íÎó....ÎÒÃÇÕâÀï¾ÍÊÇÒªÈÃËü±ÀÀ££¬ÈÃÎÒÈÃÄã±ÀÀ£ ^_^
È»ºóÖ´ÐÐ µã»÷ È»ºó³ö´í ÎҵĻúÆ÷ÉÏ ±ÀÀ£µØÖ·Îª0044d946
Èç¹ûÒª²éÕÒ´úÂëÐкţ¬ÐèҪʹÓÃÏÂÃæµÄ¹«Ê½×öһЩʮÁù½øÖƵļõ·¨ÔËË㣺
±ÀÀ£ÐÐÆ«ÒÆ = ±ÀÀ£µØÖ·£¨Crash Address£© - »ùµØÖ·£¨ImageBase Address£© - 0x1000
¼õÈ¥ºóµÃµ½ 0004c946 È»ºó²éÕÒ 0004c946
0044d946 - 00400000 = 0004d946 - 00001000 = 0004c946 <= ºóÃæÁгöµÄ
0004C946 ¾ÍÊÇËüÁË ÎÒÃÇÓÃultraedit32Ö®ÀàµÄ¹¤¾ß´ò¿ª .mapÎļþ ËÑË÷ 0004C94,ÕÒµ½ÁË£¬È»ºó¾ÍÕÒ
<= 0004c946µÄÄǸöµØÖ· È»ºó¿´µ½ÁË
Line numbers for Unit1(Unit1.pas) segment .text
37 0001:0004C944 38 0001:0004C946 39 0001:0004C949 41 0001:0004C97C
&nbs
Ïà¹ØÎĵµ£º
ÔÚÖ÷½çÃæµÄimplementation {$R *.dfm} Ï·ÅÈëÒÔÏ´úÂ룺
procedure PatchInt3;
var
NOP: Byte;
NTDLL: THandle;
BytesWritten: DWORD;
Address: Pointer;
begin
if Win32Platform <> VER_PLATFORM_WIN32_NT then
Exit;
NTDLL := GetModuleHandle('NTDLL.DLL');
if NT ......
¹¹½¨ Windows SOAP ·þÎñÆ÷Ó¦ÓóÌÐò
Ê×ÏÈÔÚ Windows ÉϹ¹½¨·þÎñÆ÷£¬È»ºóÔÚ Linux ÉϹ¹½¨¿Í»§»ú¡££¨Èç¹ûÐèÒª£¬¿ÉÒÔʹÓÃÆäËü·½·¨ — »òÕß½«ËüÃÇÈ«²¿¹¹½¨ÔÚ Windows »ò Linux ÉÏ¡££©¶ÔÓÚ Windows SOAP ·þÎñÆ÷£¬Æô¶¯ Delphi 7 Enterprise£¬Ö´ÐÐ File -> New -> Other£¬×ªÖÁ¶ÔÏó×ÊÔ´¿â£¨Object Repository£©µÄ ......
Ò»¡¢Òý×Ó£º
ÏÖÔÚµÄWindowsÓ¦ÓóÌÐò¼¸ºõ¶¼Ê¹ÓÃͼ±ê¡¢Í¼Æ¬¡¢¹â±ê¡¢ÉùÒôµÈ£¬ÎÒÃdzÆËüÃÇΪ×ÊÔ´£¨Resource£©¡£×î¼òµ¥µÄʹÓÃ×ÊÔ´µÄ°ì·¨ÊǰÑÕâЩ×ÊÔ´µÄÔ´Îļþ´òÈëÈí¼þ°ü£¬ÒÔ·½±ã³ÌÐòÐèÒªµÄʱºòµ÷Óá£×ÊÔ´ÊdzÌÐòµÄÒ»²¿·Ö£¬³ÌÐòÒªÕý³£ÔËÐоÍÀë²»ÁË×ÊÔ´Îļþ¡£µ«ÊÇËüÊDz»¿ÉÖ´ÐдúÂë¡£
ΪÁ˸üºÃµØ¹ÜÀí×ÊÔ´£¬DelphiÖÐÌṩÁËÒ»ÖÖ.RESÀàÐ ......
ʲôÊÇÁ÷£¿Á÷,¼òµ¥À´Ëµ¾ÍÊǽ¨Á¢ÔÚÃæÏò¶ÔÏó»ù´¡ÉϵÄÒ»ÖÖ³éÏóµÄ´¦ÀíÊý¾Ý
µÄ¹¤¾ß¡£ÔÚÁ÷ÖУ¬¶¨ÒåÁËһЩ´¦ÀíÊý¾ÝµÄ»ù±¾²Ù×÷£¬Èç¶ÁÈ¡Êý¾Ý£¬Ð´ÈëÊý¾ÝµÈ£¬
³ÌÐòÔ±ÊǶÔÁ÷½øÐÐËùÓвÙ×÷µÄ£¬¶ø²»ÓùØÐÄÁ÷µÄÁíһͷÊý¾ÝµÄÕæÕýÁ÷Ïò¡£Á÷²»
µ«¿ÉÒÔ´¦ÀíÎļþ£¬»¹¿ÉÒÔ´¦Àí¶¯Ì¬ÄÚ´æ¡¢ÍøÂçÊý¾ÝµÈ¶àÖÖÊý¾ÝÐÎʽ¡£Èç¹ûÄã¶Ô
Á÷µÄ²Ù×÷·Ç³£ÊìÁ·£¬ÔÚ³ ......
Ãû³Æ ÀàÐÍ ËµÃ÷
abort º¯Êý ÒýÆð·ÅÆúµÄÒâÍâ´¦Àí
abs º¯Êý ¾ø¶ÔÖµº¯Êý
addexitproc º¯Êý ½«Ò»¹ý³ÌÌí¼Óµ½ÔËÐÐʱ¿âµÄ½áÊø¹ý³Ì±íÖÐ
addr º¯Êý ·µ»ØÖ¸¶¨¶ÔÏóµÄµØÖ·
adjustlinebreaks º¯Êý ½«¸ø¶¨×Ö·û´®µÄÐзָô·ûµ÷ÕûΪcr/lfÐòÁÐ
align ÊôÐÔ Ê¹¿Ø¼þλÓÚ´°¿Úij²¿·Ö
alignment ÊôÐÔ ¿ ......