diff --git a/CMU-CSAPP/labs/bomb_lab/dbomb.asm b/CMU-CSAPP/labs/bomb_lab/dbomb.asm index 350b85d..3a8cbd6 100644 --- a/CMU-CSAPP/labs/bomb_lab/dbomb.asm +++ b/CMU-CSAPP/labs/bomb_lab/dbomb.asm @@ -650,30 +650,39 @@ Disassembly of section .text: # 0x603300 : 0x00000004000002b3 0x0000000000603310 # 0x603310 : 0x00000005000001dd 0x0000000000603320 # 0x603320 : 0x00000006000001bb 0x0000000000000000 + # this seems like a linked list 4011a9: eb cb jmp 401176 # goto L6OuterLoop3Begin # L6OuterLoop3Exit 4011ab: 48 8b 5c 24 20 mov 0x20(%rsp),%rbx 4011b0: 48 8d 44 24 28 lea 0x28(%rsp),%rax 4011b5: 48 8d 74 24 50 lea 0x50(%rsp),%rsi +# breakpoint 2 +# x/6xg ($rsp + 0x20) prints: +# 0x7fffffffd850: 0x00000000006032d0 0x00000000006032e0 +# 0x7fffffffd860: 0x00000000006032f0 0x0000000000603300 +# 0x7fffffffd870: 0x0000000000603310 0x0000000000603320 4011ba: 48 89 d9 mov %rbx,%rcx 4011bd: 48 8b 10 mov (%rax),%rdx 4011c0: 48 89 51 08 mov %rdx,0x8(%rcx) - 4011c4: 48 83 c0 08 add $0x8,%rax + 4011c4: 48 83 c0 08 add $0x8,%rax # rax seems like a pointer iterating through linked list 4011c8: 48 39 f0 cmp %rsi,%rax 4011cb: 74 05 je 4011d2 4011cd: 48 89 d1 mov %rdx,%rcx 4011d0: eb eb jmp 4011bd 4011d2: 48 c7 42 08 00 00 00 movq $0x0,0x8(%rdx) 4011d9: 00 - 4011da: bd 05 00 00 00 mov $0x5,%ebp - 4011df: 48 8b 43 08 mov 0x8(%rbx),%rax - 4011e3: 8b 00 mov (%rax),%eax + 4011da: bd 05 00 00 00 mov $0x5,%ebp # ebp is set to 5 +#L6Loop4Start + 4011df: 48 8b 43 08 mov 0x8(%rbx),%rax # rax = rbx->next + 4011e3: 8b 00 mov (%rax),%eax # eax = rax->value_low32bit 4011e5: 39 03 cmp %eax,(%rbx) - 4011e7: 7d 05 jge 4011ee + 4011e7: 7d 05 jge 4011ee # if next value >= current value, pass the test. + # This means the linked list should be in descending order. 4011e9: e8 4c 02 00 00 call 40143a 4011ee: 48 8b 5b 08 mov 0x8(%rbx),%rbx - 4011f2: 83 ed 01 sub $0x1,%ebp + 4011f2: 83 ed 01 sub $0x1,%ebp # ebp is the counter. 6 loops 4011f5: 75 e8 jne 4011df +#L6Loop4End 4011f7: 48 83 c4 50 add $0x50,%rsp 4011fb: 5b pop %rbx 4011fc: 5d pop %rbp diff --git a/CMU-CSAPP/labs/bomb_lab/pswd.txt b/CMU-CSAPP/labs/bomb_lab/pswd.txt index 3ff0a0c..8c1d899 100644 --- a/CMU-CSAPP/labs/bomb_lab/pswd.txt +++ b/CMU-CSAPP/labs/bomb_lab/pswd.txt @@ -3,3 +3,4 @@ Border relations with Canada have never been better. 0 207 7 0 )/.%&' +4 3 2 1 6 5