Oppure

Loading
14/01/08 13:40
Galatolo_Federico
Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....


ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE xfffffff0,%esp 0x0804820f <main+7>: pushl 0xfffffffc(%ecx) 0x08048212 <main+10>: push %ebp 0x08048213 <main+11>: mov %esp,%ebp 0x08048215 <main+13>: push %ecx 0x08048216 <main+14>: sub Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x214,%esp 0x0804821c <main+20>: mov %gs:0x14,%eax 0x08048222 <main+26>: mov %eax,0xfffffff8(%ebp) 0x08048225 <main+29>: xor %eax,%eax 0x08048227 <main+31>: movl Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x809e4e8,(%esp) 0x0804822e <main+38>: call 0x8048cf0 <puts> 0x08048233 <main+43>: movl Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x809e50a,0x4(%esp) 0x0804823b <main+51>: movl Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x809e51c,(%esp) 0x08048242 <main+58>: call 0x8048c90 <printf> 0x08048247 <main+63>: lea 0xfffffe04(%ebp),%eax 0x0804824d <main+69>: mov %eax,0x4(%esp) 0x08048251 <main+73>: movl Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x809e51c,(%esp) 0x08048258 <main+80>: call 0x8048cc0 <scanf> 0x0804825d <main+85>: lea 0xfffffe04(%ebp),%eax 0x08048263 <main+91>: mov %eax,0x8(%esp) 0x08048267 <main+95>: movl Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x809e51f,0x4(%esp) ---Type <return> to continue, or q <return> to quit--- 0x0804826f <main+103>: movl Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x809e51c,(%esp) 0x08048276 <main+110>: call 0x8048c90 <printf> 0x0804827b <main+115>: mov 0xfffffff8(%ebp),%edx 0x0804827e <main+118>: xor %gs:0x14,%edx 0x08048285 <main+125>: je 0x804828c <main+132> 0x08048287 <main+127>: call 0x8050d70 <__stack_chk_fail> 0x0804828c <main+132>: add Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x214,%esp 0x08048292 <main+138>: pop %ecx 0x08048293 <main+139>: pop %ebp 0x08048294 <main+140>: lea 0xfffffffc(%ecx),%esp 0x08048297 <main+143>: ret End of assembler dump. (gdb)


lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....


ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE xfffffff0,%esp pushl 0xfffffffc(%ecx) push %ebp mov %esp,%ebp push %ecx sub Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x214,%esp mov %gs:0x14,%eax mov %eax,0xfffffff8(%ebp) xor %eax,%eax movl Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x809e4e8,(%esp) call 0x8048cf0 <puts> movl Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x809e50a,0x4(%esp) movl Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x809e51c,(%esp) call 0x8048c90 <printf> lea 0xfffffe04(%ebp),%eax mov %eax,0x4(%esp) movl Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x809e51c,(%esp) call 0x8048cc0 <scanf> lea 0xfffffe04(%ebp),%eax mov %eax,0x8(%esp) movl Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x809e51f,0x4(%esp) movl Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x809e51c,(%esp) call 0x8048c90 <printf> mov 0xfffffff8(%ebp),%edx xor %gs:0x14,%edx je 0x804828c <main+132> call 0x8050d70 <__stack_chk_fail> add Scusate ragazzi se è tanto che non mi faccio sentire ma ho avuto da fare....

ecco il problema: perche se faccio un programma ad esempio :
int main(){
printf ("%s","Ciauuu - Benvenuto in GalatolOS !\n");
printf ("%s","Come Ti Chiami : ");
char nome[500];
scanf("%s",nome);
printf ("%s","Ciao ",nome);
}



e poi prendo il codice assembly con GDB
federico@crash-overflow:~/GalatolOS$ gdb main
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) disass main
Dump of assembler code for function main:
0x08048208 <main+0>:    lea    0x4(%esp),%ecx
0x0804820c <main+4>:    and    {parsed_message}xfffffff0,%esp
0x0804820f <main+7>:    pushl  0xfffffffc(%ecx)
0x08048212 <main+10>:   push   %ebp
0x08048213 <main+11>:   mov    %esp,%ebp
0x08048215 <main+13>:   push   %ecx
0x08048216 <main+14>:   sub    {parsed_message}x214,%esp
0x0804821c <main+20>:   mov    %gs:0x14,%eax
0x08048222 <main+26>:   mov    %eax,0xfffffff8(%ebp)
0x08048225 <main+29>:   xor    %eax,%eax
0x08048227 <main+31>:   movl   {parsed_message}x809e4e8,(%esp)
0x0804822e <main+38>:   call   0x8048cf0 <puts>
0x08048233 <main+43>:   movl   {parsed_message}x809e50a,0x4(%esp)
0x0804823b <main+51>:   movl   {parsed_message}x809e51c,(%esp)
0x08048242 <main+58>:   call   0x8048c90 <printf>
0x08048247 <main+63>:   lea    0xfffffe04(%ebp),%eax
0x0804824d <main+69>:   mov    %eax,0x4(%esp)
0x08048251 <main+73>:   movl   {parsed_message}x809e51c,(%esp)
0x08048258 <main+80>:   call   0x8048cc0 <scanf>
0x0804825d <main+85>:   lea    0xfffffe04(%ebp),%eax
0x08048263 <main+91>:   mov    %eax,0x8(%esp)
0x08048267 <main+95>:   movl   {parsed_message}x809e51f,0x4(%esp)
---Type <return> to continue, or q <return> to quit---
0x0804826f <main+103>:  movl   {parsed_message}x809e51c,(%esp)
0x08048276 <main+110>:  call   0x8048c90 <printf>
0x0804827b <main+115>:  mov    0xfffffff8(%ebp),%edx
0x0804827e <main+118>:  xor    %gs:0x14,%edx
0x08048285 <main+125>:  je     0x804828c <main+132>
0x08048287 <main+127>:  call   0x8050d70 <__stack_chk_fail>
0x0804828c <main+132>:  add    {parsed_message}x214,%esp
0x08048292 <main+138>:  pop    %ecx
0x08048293 <main+139>:  pop    %ebp
0x08048294 <main+140>:  lea    0xfffffffc(%ecx),%esp
0x08048297 <main+143>:  ret    
End of assembler dump.
(gdb) 



lo metto in un file (boot.asm) non va?

boot.asm:
lea    0x4(%esp),%ecx
and    {parsed_message}xfffffff0,%esp
pushl  0xfffffffc(%ecx)
push   %ebp
mov    %esp,%ebp
push   %ecx
sub    {parsed_message}x214,%esp
mov    %gs:0x14,%eax
mov    %eax,0xfffffff8(%ebp)
xor    %eax,%eax
movl   {parsed_message}x809e4e8,(%esp)
call   0x8048cf0 <puts>
movl   {parsed_message}x809e50a,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048cc0 <scanf>
lea    0xfffffe04(%ebp),%eax
mov    %eax,0x8(%esp)
movl   {parsed_message}x809e51f,0x4(%esp)
movl   {parsed_message}x809e51c,(%esp)
call   0x8048c90 <printf>
mov    0xfffffff8(%ebp),%edx
xor    %gs:0x14,%edx
je     0x804828c <main+132>
call   0x8050d70 <__stack_chk_fail>
add    {parsed_message}x214,%esp
pop    %ecx
pop    %ebp
lea    0xfffffffc(%ecx),%esp
ret    


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE x214,%esp pop %ecx pop %ebp lea 0xfffffffc(%ecx),%esp ret


PS. esiste un altro programma per prendere il codice assembly???

GRAZIEEEE
aaa
21/01/08 19:51
Devid H.C.B.X.
Sì esiste!
prova a scrivere un programma in c++
poi scarica un disassembler,
prova così a ricavare il codice sorgente in ASM

enjoy!!

Devid H.C.B.X.
aaa
21/01/08 20:03
Dark_Limit
Il fatto che non ti funziona è perchè hai incluso in un file .asm assembly i caratteri '%' al massimo prova a toglierli e linka di nuovo il file sorgente in asm se non ti funziona ti scarichi un disassemblatore qualunque consiglio wdasm..:k:
aaa