banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Cần giúp đỡ về Assembly  XML
  [Programming]   Cần giúp đỡ về Assembly 13/11/2007 16:15:12 (+0700) | #1 | 97315
thaihabk05
Member

[Minus]    0    [Plus]
Joined: 04/09/2006 16:04:56
Messages: 8
Offline
[Profile] [PM]
Mình đang nghiên cứu bài viết về "Lỗi tràn bộ đệm".
Khi mình debug thử 1 chương trình đơn giản như ví dụ trong bài viết thì nó ra một số đoạn lệnh không giống như trong ví dụ và cả các vùng nhớ cho các biến.
Mong các bro giúp đỡ giải thích cho mình kỹ càng đoạn mã assembly này với.
Cái này mình debug trên linux.
Mấy bạn xem giùm mấy chỗ chú thích lệnh của mình đã đúng chưa, và giúp giải thích nốt các lệnh còn lại nhé.
/* fct.c */
void toto(int i, int j)
{
char str[5] = "abcde";
int k = 3;
j = 0;
return;
}

int main(int argc, char **argv)
{
int i = 1;
toto(1, 2);
i = 0;
printf("i=%d\n",i);
}
Dump of assembler code for function main:
0x080483aa <main+0>: push %ebp//dua ebp vao stack
0x080483ab <main+1>: mov %esp,%ebp//chep ebp cho esp
0x080483ad <main+3>: sub $0x8,%esp//giam esp di 8 bytes,de cap phat vung nho cho bien i

0x080483b0 <main+6>: and $0xfffffff0,%esp
0x080483b3 <main+9>: mov $0x0,%eax
0x080483b8 <main+14>: sub %eax,%esp
0x080483ba <main+16>: movl $0x1,0xfffffffc(%ebp)//gan i=1
0x080483c1 <main+23>: sub $0x8,%esp //cap phat 8 byte o nho bang cach giam esp di 8 bytes

0x080483c4 <main+26>: push $0x2//add cac tham so vao stack
0x080483c6 <main+28>: push $0x1
0x080483c8 <main+30>: call 0x8048384 <toto>
//goi ham toto
0x080483cd <main+35>: add $0x10,%esp//sau khi thuc hien ham thi tang esp len 16 byte

0x080483d0 <main+38>: movl $0x0,0xfffffffc(%ebp)
//gan i =0
0x080483d7 <main+45>: sub $0x8,%esp//giam esp xuong 8 byte
0x080483da <main+48>: pushl 0xfffffffc(%ebp)
0x080483dd <main+51>: push $0x804850a
0x080483e2 <main+56>: call 0x80482b0 <_init+
56>
0x080483e7 <main+61>: add $0x10,%esp
0x080483ea <main+64>: leave
0x080483eb <main+65>: ret

[Up] [Print Copy]
  [Question]   Re: Cần giúp gấp về Assembly 13/11/2007 18:43:17 (+0700) | #2 | 97323
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
Tại sao phải gấp? Đề nghị đặt lại cái tiêu đề. Cám ơn.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Re: Cần giúp gấp về Assembly 14/11/2007 01:01:36 (+0700) | #3 | 97361
thaihabk05
Member

[Minus]    0    [Plus]
Joined: 04/09/2006 16:04:56
Messages: 8
Offline
[Profile] [PM]

conmale wrote:
Tại sao phải gấp? Đề nghị đặt lại cái tiêu đề. Cám ơn. 

Hix hix tại mình sắp làm đề tài về cái này, nên cần hiểu kỹ nó một chút.Mong các bác giúp đỡ.
[Up] [Print Copy]
  [Question]   Re: Cần giúp gấp về Assembly 15/11/2007 12:15:58 (+0700) | #4 | 97695
langmaninternet
Member

[Minus]    0    [Plus]
Joined: 24/08/2004 15:18:38
Messages: 22
Offline
[Profile] [PM]

thaihabk05 wrote:

conmale wrote:
Tại sao phải gấp? Đề nghị đặt lại cái tiêu đề. Cám ơn. 

Hix hix tại mình sắp làm đề tài về cái này, nên cần hiểu kỹ nó một chút.Mong các bác giúp đỡ. 



Mod nói đúng đây bạn nên để tiêu đề nó dản dị hơn. Nhìn tiêu đề của bạn mình thưa` chữ gấp. Như thế sẽ gây 1 cảm giác không thích với người khác.

Tại sao phải gấp? mod hỏi câu này là đúng rồi nếu là mình cũng sẽ hỏi câu này. Học hỏi cũng phải có cách đó .

Bạn nên tìm hiểu kĩ về nội quy.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|