C++ Programming: From Problem Analysis to Program Design
C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN: 9781337102087
Author: D. S. Malik
Publisher: Cengage Learning
expand_more
expand_more
format_list_bulleted
Bartleby Related Questions Icon
Related questions
Question
Transcribed Image Text:Character Hex value | Character Hex value Character Hex value
'A'
0x41
'J'
Ox4a
'S'
0x53
'B'
0x42
'K'
0x4b
"T"
0x54
0x43
'L'
Ox4c
'U'
0x55
0x44
'M'
0x4d
'V'
0x56
0x45
'N'
Ox4e
'W'
0x57
0x46
'0'
Ox4f
'X'
0x58
0x47
'P'
0x50
'Y'
0x59
0x48
'Q'
0x51
'Z'
Ox5a
'T'
0x49
'R'
0x52
'0円'
0x00
Now consider what happens on a Linux/x86 machine when callfoo calls foo with
the input string "ZYXWVUTSRQPONMLKJIHGFEDCBA".
A. On the left draw the state of the stack just before the execution of the instruction
at address Ox40053a; make sure to show the frames for callfoo and foo and
the exact return address, in Hex at the bottom of the callfoo frame.
Then, on the right, draw the state of the stack just after the instruction got
executed; make sure to show where the string "ZYXWVUTSRQPONMLKJIHGFEDCBA"
is placed and what part, if any, of the above return address has been overwritten.
B. Immediately after the ret instruction at address 0x400543 executes, what is
the value of the program counter register %rip? (That is the register that
contains the address of the next instruction to be executed.)
%rip = 0x_
Transcribed Image Text:The next problem concerns the following C code:
/copy input string x to buf */
void foo (char *x) {
char buf [8];
strcpy((char *) buf, x);
}
void callfoo() {
}
foo("ZYXWVUTSRQPONMLKJIHGFEDCBA");
Here is the corresponding machine code on a Linux/x86 machine:
0000000000400530 <foo>:
400530:
48 83 ec 18
sub
0ドルx18,%rsp
400534:
48 89 fe
mov
%rdi, %rsi
400537:
48 89 e7
mov
%rsp,%rdi
40053a:
e8 di fe ff ff
callq
400410 <strcpy@plt>
40053f:
48 83 c4 18
add
0ドルx18,%rsp
400543:
c3
retq
400544:
0000000000400544 <callfoo>:
48 83 ec 08
sub
0ドルx8,%rsp
400548:
bf 00 06 40 00
mov
0ドルx400600,%edi
40054d:
e8 de ff ff ff
callq 400530 <foo>
400552:
48 83 c4 08
add
0ドルx8,%rsp
400556:
c3
This problem tests your understanding of the program stack. Here are some notes to
help you work the problem:
⚫ strcpy(char *dst, char *src) copies the string at address src (including
the terminating '0円' character) to address dst. It does not check the size of
the destination buffer.
• You will need to know the hex values of the following characters:
Expert Solution
Check MarkThis question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
bartleby
Step by stepSolved in 2 steps
Knowledge Booster
Background pattern image
Recommended textbooks for you
- Text book imageC++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage LearningText book imageSystems ArchitectureComputer ScienceISBN:9781305080195Author:Stephen D. BurdPublisher:Cengage LearningText book imageC++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology Ptr
- Text book imageMicrosoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,Text book imageEBK JAVA PROGRAMMINGComputer ScienceISBN:9781337671385Author:FARRELLPublisher:CENGAGE LEARNING - CONSIGNMENTText book imageNew Perspectives on HTML5, CSS3, and JavaScriptComputer ScienceISBN:9781305503922Author:Patrick M. CareyPublisher:Cengage Learning
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
Systems Architecture
Computer Science
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Cengage Learning
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
Microsoft Visual C#
Computer Science
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Cengage Learning,
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
New Perspectives on HTML5, CSS3, and JavaScript
Computer Science
ISBN:9781305503922
Author:Patrick M. Carey
Publisher:Cengage Learning