首页
社区
课程
招聘
初学者的困惑
发表于: 2004-12-21 14:18 3875

初学者的困惑

2004-12-21 14:18
3875
简单的一句代码:
procedure TForm1.btn1Click(Sender: TObject);
begin
application.MessageBox('test','caption',MB_OK);
end;

反汇编的代码:
procedure TForm1.btn1Click(Sender : TObject);
begin
(*
0043F040   6A00                   push    $00

* Possible String Reference to: 'caption'
|
0043F042   B95CF04300             mov     ecx, $0043F05C

* Possible String Reference to: 'test'
|
0043F047   BA64F04300             mov     edx, $0043F064
0043F04C   A1D80B4400             mov     eax, dword ptr [$00440BD8]
0043F051   8B00                   mov     eax, [eax]

* Reference to: forms.TApplication.MessageBox(TApplication;System.PChar;System.PChar;System.Longint):System.Integer;
|
0043F053   E8C0E9FFFF             call    0043DA18
0043F058   C3                     ret

*)
end;

上面的'test','caption'等字符串在文件中的哪里?如何查找呢?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 210
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
刚才试了一下,用WinHex可以找到了。

谁给讲一下原理什么的?
就好像局部变量放在堆栈,参数通过寄存器传递一样。
2004-12-21 14:51
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
字符串一般不放到代码区,好象是在resc(记不清了?)就是资源模块里面,用rescope查看一下可以找到地址
2004-12-21 15:48
0
游客
登录 | 注册 方可回帖
返回
//