Question

0x00000000004010cc <+0>:   push %r13 0x00000000004010ce <+2>:   push %r12 0x00000000004010d0 <+4>:   push %rbp 0x00000000004010d1 <+5>:   push %rbx...

0x00000000004010cc <+0>:   push %r13
0x00000000004010ce <+2>:   push %r12
0x00000000004010d0 <+4>:   push %rbp
0x00000000004010d1 <+5>:   push %rbx
0x00000000004010d2 <+6>:   sub $0x68,%rsp
0x00000000004010d6 <+10>:   mov %fs:0x28,%rax
0x00000000004010df <+19>:   mov %rax,0x58(%rsp)
0x00000000004010e4 <+24>:   xor %eax,%eax
0x00000000004010e6 <+26>:   mov %rsp,%rsi
0x00000000004010e9 <+29>:   callq 0x40159a <read_six_numbers>
0x00000000004010ee <+34>:   mov %rsp,%r12
0x00000000004010f1 <+37>:   mov $0x0,%r13d
0x00000000004010f7 <+43>:   mov %r12,%rbp
0x00000000004010fa <+46>:   mov (%r12),%eax
0x00000000004010fe <+50>:   sub $0x1,%eax
0x0000000000401101 <+53>:   cmp $0x5,%eax
0x0000000000401104 <+56>:   jbe 0x40110b <phase_6+63>
0x0000000000401106 <+58>:   callq 0x401564 <explode_bomb>
0x000000000040110b <+63>:   add $0x1,%r13d
0x000000000040110f <+67>:   cmp $0x6,%r13d
0x0000000000401113 <+71>:   je 0x401152 <phase_6+134>
0x0000000000401115 <+73>:   mov %r13d,%ebx
0x0000000000401118 <+76>:   movslq %ebx,%rax
0x000000000040111b <+79>:   mov (%rsp,%rax,4),%eax
0x000000000040111e <+82>:   cmp %eax,0x0(%rbp)
0x0000000000401121 <+85>:   jne 0x401128 <phase_6+92>
0x0000000000401123 <+87>:   callq 0x401564 <explode_bomb>
0x0000000000401128 <+92>:   add $0x1,%ebx
0x000000000040112b <+95>:   cmp $0x5,%ebx
0x000000000040112e <+98>:   jle 0x401118 <phase_6+76>
0x0000000000401130 <+100>:   add $0x4,%r12
0x0000000000401134 <+104>:   jmp 0x4010f7 <phase_6+43>
0x0000000000401136 <+106>:   mov 0x8(%rdx),%rdx
0x000000000040113a <+110>:   add $0x1,%eax
0x000000000040113d <+113>:   cmp %ecx,%eax
0x000000000040113f <+115>:   jne 0x401136 <phase_6+106>
0x0000000000401141 <+117>:   mov %rdx,0x20(%rsp,%rsi,2)
0x0000000000401146 <+122>:   add $0x4,%rsi
0x000000000040114a <+126>:   cmp $0x18,%rsi
0x000000000040114e <+130>:   jne 0x401157 <phase_6+139>
0x0000000000401150 <+132>:   jmp 0x40116b <phase_6+159>
0x0000000000401152 <+134>:   mov $0x0,%esi
---Type <return> to continue, or q <return> to quit---
0x0000000000401157 <+139>:   mov (%rsp,%rsi,1),%ecx
0x000000000040115a <+142>:   mov $0x1,%eax
0x000000000040115f <+147>:   mov $0x604300,%edx
0x0000000000401164 <+152>:   cmp $0x1,%ecx
0x0000000000401167 <+155>:   jg 0x401136 <phase_6+106>
0x0000000000401169 <+157>:   jmp 0x401141 <phase_6+117>
0x000000000040116b <+159>:   mov 0x20(%rsp),%rbx
0x0000000000401170 <+164>:   lea 0x20(%rsp),%rax
0x0000000000401175 <+169>:   lea 0x48(%rsp),%rsi
0x000000000040117a <+174>:   mov %rbx,%rcx
0x000000000040117d <+177>:   mov 0x8(%rax),%rdx
0x0000000000401181 <+181>:   mov %rdx,0x8(%rcx)
0x0000000000401185 <+185>:   add $0x8,%rax
0x0000000000401189 <+189>:   mov %rdx,%rcx
0x000000000040118c <+192>:   cmp %rsi,%rax
0x000000000040118f <+195>:   jne 0x40117d <phase_6+177>
0x0000000000401191 <+197>:   movq $0x0,0x8(%rdx)
0x0000000000401199 <+205>:   mov $0x5,%ebp
0x000000000040119e <+210>:   mov 0x8(%rbx),%rax
0x00000000004011a2 <+214>:   mov (%rax),%eax
=> 0x00000000004011a4 <+216>:   cmp %eax,(%rbx)
0x00000000004011a6 <+218>:   jge 0x4011ad <phase_6+225>
0x00000000004011a8 <+220>:   callq 0x401564 <explode_bomb>
0x00000000004011ad <+225>:   mov 0x8(%rbx),%rbx
0x00000000004011b1 <+229>:   sub $0x1,%ebp
0x00000000004011b4 <+232>:   jne 0x40119e <phase_6+210>
0x00000000004011b6 <+234>:   mov 0x58(%rsp),%rax
0x00000000004011bb <+239>:   xor %fs:0x28,%rax
0x00000000004011c4 <+248>:   je 0x4011cb <phase_6+255>
0x00000000004011c6 <+250>:   callq 0x400b00 <__stack_chk_fail@plt>
0x00000000004011cb <+255>:   add $0x68,%rsp
0x00000000004011cf <+259>:   pop %rbx
0x00000000004011d0 <+260>:   pop %rbp
0x00000000004011d1 <+261>:   pop %r12
0x00000000004011d3 <+263>:   pop %r13
0x00000000004011d5 <+265>:   retq   

This is the phase_6 from the bomb lab, looking for the answer. The answer should be six digits from 1 to 6, and distinc to each other.

Homework Answers

Answer #1

the node is :

0x603970 <node1> 0x000000f6
0x603978 <node1+8> 0x603960
0x603960 <node2> 0x00000304
0x693968 <node2+8> 0x603950
0x603950 <node3> 0x000000b7
0x603958 <node3+8> 0x603940
0x603940 <node4> 0x000000eb
0x603948 <node4+8> 0x603930
0x603930 <node5> 0x0000021f
0x603938 <node5+8> 0x603920
0x603920 <node6> 0x00000150
0x603928 <node6+8> 0x000000

So, the value of node1 to node6 are f6, 304, b7, eb, 21f, 150. I know b7 < eb < f6 < 150 < 21f < 304, so the order of nodes should be 3 0 5 4 1 2 (or 2 5 0 1 4 3 - in ascending order) and I should add +1 to all numbers.

On <+97> and <+102>, notice that the code sets %eax to 7 and subtracts (%rdx). In other words you have to put each of your 6 values into function f(x) = 7-x.

Know the answer?
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for?
Ask your own homework help question
Similar Questions
ADVERTISEMENT
Need Online Homework Help?

Get Answers For Free
Most questions answered within 1 hours.

Ask a Question
ADVERTISEMENT