Advertisement
Guest User

Assembly

a guest
Aug 30th, 2017
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.21 KB | None | 0 0
  1. 00000000004007d6 <correct>:
  2. 4007d6: 55 push rbp
  3. 4007d7: 48 89 e5 mov rbp,rsp
  4. 4007da: 48 83 ec 20 sub rsp,0x20
  5. 4007de: 48 89 7d e8 mov QWORD PTR [rbp-0x18],rdi
  6. 4007e2: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  7. 4007e6: 48 89 c7 mov rdi,rax
  8. 4007e9: e8 a2 fe ff ff call 400690 <strlen@plt>
  9. 4007ee: 48 83 f8 0b cmp rax,0xb
  10. 4007f2: 74 0a je 4007fe <correct+0x28>
  11. 4007f4: b8 00 00 00 00 mov eax,0x0
  12. 4007f9: e9 4b 01 00 00 jmp 400949 <correct+0x173>
  13. 4007fe: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  14. 400802: 48 83 c0 05 add rax,0x5
  15. 400806: 0f b6 00 movzx eax,BYTE PTR [rax]
  16. 400809: 3c 43 cmp al,0x43
  17. 40080b: 74 0a je 400817 <correct+0x41>
  18. 40080d: b8 00 00 00 00 mov eax,0x0
  19. 400812: e9 32 01 00 00 jmp 400949 <correct+0x173>
  20. 400817: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  21. 40081b: 48 83 c0 06 add rax,0x6
  22. 40081f: 0f b6 00 movzx eax,BYTE PTR [rax]
  23. 400822: 3c 4a cmp al,0x4a
  24. 400824: 74 0a je 400830 <correct+0x5a>
  25. 400826: b8 00 00 00 00 mov eax,0x0
  26. 40082b: e9 19 01 00 00 jmp 400949 <correct+0x173>
  27. 400830: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  28. 400834: 48 83 c0 05 add rax,0x5
  29. 400838: 0f b6 00 movzx eax,BYTE PTR [rax]
  30. 40083b: 0f be d0 movsx edx,al
  31. 40083e: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  32. 400842: 0f b6 00 movzx eax,BYTE PTR [rax]
  33. 400845: 0f be c0 movsx eax,al
  34. 400848: 83 e8 15 sub eax,0x15
  35. 40084b: 39 c2 cmp edx,eax
  36. 40084d: 74 0a je 400859 <correct+0x83>
  37. 40084f: b8 00 00 00 00 mov eax,0x0
  38. 400854: e9 f0 00 00 00 jmp 400949 <correct+0x173>
  39. 400859: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  40. 40085d: 48 83 c0 01 add rax,0x1
  41. 400861: 0f b6 00 movzx eax,BYTE PTR [rax]
  42. 400864: 0f be d0 movsx edx,al
  43. 400867: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  44. 40086b: 0f b6 00 movzx eax,BYTE PTR [rax]
  45. 40086e: 0f be c0 movsx eax,al
  46. 400871: 83 c0 01 add eax,0x1
  47. 400874: 39 c2 cmp edx,eax
  48. 400876: 74 0a je 400882 <correct+0xac>
  49. 400878: b8 00 00 00 00 mov eax,0x0
  50. 40087d: e9 c7 00 00 00 jmp 400949 <correct+0x173>
  51. 400882: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  52. 400886: 48 83 c0 02 add rax,0x2
  53. 40088a: 0f b6 00 movzx eax,BYTE PTR [rax]
  54. 40088d: 3c 50 cmp al,0x50
  55. 40088f: 74 0a je 40089b <correct+0xc5>
  56. 400891: b8 00 00 00 00 mov eax,0x0
  57. 400896: e9 ae 00 00 00 jmp 400949 <correct+0x173>
  58. 40089b: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  59. 40089f: 48 83 c0 03 add rax,0x3
  60. 4008a3: 0f b6 00 movzx eax,BYTE PTR [rax]
  61. 4008a6: 0f be d0 movsx edx,al
  62. 4008a9: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  63. 4008ad: 0f b6 00 movzx eax,BYTE PTR [rax]
  64. 4008b0: 0f be c0 movsx eax,al
  65. 4008b3: 83 e8 02 sub eax,0x2
  66. 4008b6: 39 c2 cmp edx,eax
  67. 4008b8: 74 0a je 4008c4 <correct+0xee>
  68. 4008ba: b8 00 00 00 00 mov eax,0x0
  69. 4008bf: e9 85 00 00 00 jmp 400949 <correct+0x173>
  70. 4008c4: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  71. 4008c8: 48 83 c0 04 add rax,0x4
  72. 4008cc: 0f b6 00 movzx eax,BYTE PTR [rax]
  73. 4008cf: 0f be d0 movsx edx,al
  74. 4008d2: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  75. 4008d6: 0f b6 00 movzx eax,BYTE PTR [rax]
  76. 4008d9: 0f be c0 movsx eax,al
  77. 4008dc: 83 e8 0b sub eax,0xb
  78. 4008df: 39 c2 cmp edx,eax
  79. 4008e1: 74 07 je 4008ea <correct+0x114>
  80. 4008e3: b8 00 00 00 00 mov eax,0x0
  81. 4008e8: eb 5f jmp 400949 <correct+0x173>
  82. 4008ea: c7 45 f8 00 00 00 00 mov DWORD PTR [rbp-0x8],0x0
  83. 4008f1: c7 45 fc 00 00 00 00 mov DWORD PTR [rbp-0x4],0x0
  84. 4008f8: c7 45 fc 07 00 00 00 mov DWORD PTR [rbp-0x4],0x7
  85. 4008ff: eb 2d jmp 40092e <correct+0x158>
  86. 400901: 8b 55 f8 mov edx,DWORD PTR [rbp-0x8]
  87. 400904: 89 d0 mov eax,edx
  88. 400906: c1 e0 02 shl eax,0x2
  89. 400909: 01 d0 add eax,edx
  90. 40090b: 01 c0 add eax,eax
  91. 40090d: 89 c1 mov ecx,eax
  92. 40090f: 8b 45 fc mov eax,DWORD PTR [rbp-0x4]
  93. 400912: 48 63 d0 movsxd rdx,eax
  94. 400915: 48 8b 45 e8 mov rax,QWORD PTR [rbp-0x18]
  95. 400919: 48 01 d0 add rax,rdx
  96. 40091c: 0f b6 00 movzx eax,BYTE PTR [rax]
  97. 40091f: 0f be c0 movsx eax,al
  98. 400922: 83 e8 30 sub eax,0x30
  99. 400925: 01 c8 add eax,ecx
  100. 400927: 89 45 f8 mov DWORD PTR [rbp-0x8],eax
  101. 40092a: 83 45 fc 01 add DWORD PTR [rbp-0x4],0x1
  102. 40092e: 83 7d fc 0a cmp DWORD PTR [rbp-0x4],0xa
  103. 400932: 7e cd jle 400901 <correct+0x12b>
  104. 400934: 81 7d f8 e1 07 00 00 cmp DWORD PTR [rbp-0x8],0x7e1
  105. 40093b: 75 07 jne 400944 <correct+0x16e>
  106. 40093d: b8 01 00 00 00 mov eax,0x1
  107. 400942: eb 05 jmp 400949 <correct+0x173>
  108. 400944: b8 00 00 00 00 mov eax,0x0
  109. 400949: c9 leave
  110. 40094a: c3 ret
  111.  
  112. 000000000040094b <get_flag>:
  113. 40094b: 55 push rbp
  114. 40094c: 48 89 e5 mov rbp,rsp
  115. 40094f: 48 83 ec 50 sub rsp,0x50
  116. 400953: 64 48 8b 04 25 28 00 mov rax,QWORD PTR fs:0x28
  117. 40095a: 00 00
  118. 40095c: 48 89 45 f8 mov QWORD PTR [rbp-0x8],rax
  119. 400960: 31 c0 xor eax,eax
  120. 400962: 48 8d 3d eb 01 00 00 lea rdi,[rip+0x1eb] # 400b54 <_IO_stdin_used+0x4>
  121. 400969: e8 e2 fc ff ff call 400650 <puts@plt>
  122. 40096e: 48 8d 35 e8 01 00 00 lea rsi,[rip+0x1e8] # 400b5d <_IO_stdin_used+0xd>
  123. 400975: 48 8d 3d e3 01 00 00 lea rdi,[rip+0x1e3] # 400b5f <_IO_stdin_used+0xf>
  124. 40097c: e8 4f fd ff ff call 4006d0 <fopen@plt>
  125. 400981: 48 89 45 b8 mov QWORD PTR [rbp-0x48],rax
  126. 400985: 48 8b 55 b8 mov rdx,QWORD PTR [rbp-0x48]
  127. 400989: 48 8d 45 c0 lea rax,[rbp-0x40]
  128. 40098d: 48 89 d1 mov rcx,rdx
  129. 400990: ba 2a 00 00 00 mov edx,0x2a
  130. 400995: be 01 00 00 00 mov esi,0x1
  131. 40099a: 48 89 c7 mov rdi,rax
  132. 40099d: e8 be fc ff ff call 400660 <fread@plt>
  133. 4009a2: 48 8b 45 b8 mov rax,QWORD PTR [rbp-0x48]
  134. 4009a6: 48 89 c7 mov rdi,rax
  135. 4009a9: e8 d2 fc ff ff call 400680 <fclose@plt>
  136. 4009ae: 48 8d 45 c0 lea rax,[rbp-0x40]
  137. 4009b2: 48 89 c7 mov rdi,rax
  138. 4009b5: e8 96 fc ff ff call 400650 <puts@plt>
  139. 4009ba: 90 nop
  140. 4009bb: 48 8b 45 f8 mov rax,QWORD PTR [rbp-0x8]
  141. 4009bf: 64 48 33 04 25 28 00 xor rax,QWORD PTR fs:0x28
  142. 4009c6: 00 00
  143. 4009c8: 74 05 je 4009cf <get_flag+0x84>
  144. 4009ca: e8 d1 fc ff ff call 4006a0 <__stack_chk_fail@plt>
  145. 4009cf: c9 leave
  146. 4009d0: c3 ret
  147.  
  148. 00000000004009d1 <check>:
  149. 4009d1: 55 push rbp
  150. 4009d2: 48 89 e5 mov rbp,rsp
  151. 4009d5: 48 83 ec 20 sub rsp,0x20
  152. 4009d9: 64 48 8b 04 25 28 00 mov rax,QWORD PTR fs:0x28
  153. 4009e0: 00 00
  154. 4009e2: 48 89 45 f8 mov QWORD PTR [rbp-0x8],rax
  155. 4009e6: 31 c0 xor eax,eax
  156. 4009e8: ba 11 00 00 00 mov edx,0x11
  157. 4009ed: 48 8d 35 74 01 00 00 lea rsi,[rip+0x174] # 400b68 <_IO_stdin_used+0x18>
  158. 4009f4: bf 01 00 00 00 mov edi,0x1
  159. 4009f9: e8 72 fc ff ff call 400670 <write@plt>
  160. 4009fe: 48 8b 15 7b 06 20 00 mov rdx,QWORD PTR [rip+0x20067b] # 601080 <stdin@@GLIBC_2.2.5>
  161. 400a05: 48 8d 45 ec lea rax,[rbp-0x14]
  162. 400a09: be 0c 00 00 00 mov esi,0xc
  163. 400a0e: 48 89 c7 mov rdi,rax
  164. 400a11: e8 9a fc ff ff call 4006b0 <fgets@plt>
  165. 400a16: 48 8d 45 ec lea rax,[rbp-0x14]
  166. 400a1a: 48 89 c7 mov rdi,rax
  167. 400a1d: e8 b4 fd ff ff call 4007d6 <correct>
  168. 400a22: 85 c0 test eax,eax
  169. 400a24: 74 0c je 400a32 <check+0x61>
  170. 400a26: b8 00 00 00 00 mov eax,0x0
  171. 400a2b: e8 1b ff ff ff call 40094b <get_flag>
  172. 400a30: eb 0c jmp 400a3e <check+0x6d>
  173. 400a32: 48 8d 3d 41 01 00 00 lea rdi,[rip+0x141] # 400b7a <_IO_stdin_used+0x2a>
  174. 400a39: e8 12 fc ff ff call 400650 <puts@plt>
  175. 400a3e: 90 nop
  176. 400a3f: 48 8b 45 f8 mov rax,QWORD PTR [rbp-0x8]
  177. 400a43: 64 48 33 04 25 28 00 xor rax,QWORD PTR fs:0x28
  178. 400a4a: 00 00
  179. 400a4c: 74 05 je 400a53 <check+0x82>
  180. 400a4e: e8 4d fc ff ff call 4006a0 <__stack_chk_fail@plt>
  181. 400a53: c9 leave
  182. 400a54: c3 ret
  183.  
  184. 0000000000400a55 <init>:
  185. 400a55: 55 push rbp
  186. 400a56: 48 89 e5 mov rbp,rsp
  187. 400a59: 48 83 ec 10 sub rsp,0x10
  188. 400a5d: 64 48 8b 04 25 28 00 mov rax,QWORD PTR fs:0x28
  189. 400a64: 00 00
  190. 400a66: 48 89 45 f8 mov QWORD PTR [rbp-0x8],rax
  191. 400a6a: 31 c0 xor eax,eax
  192. 400a6c: c6 45 f7 00 mov BYTE PTR [rbp-0x9],0x0
  193. 400a70: 48 8b 05 f9 05 20 00 mov rax,QWORD PTR [rip+0x2005f9] # 601070 <stdout@@GLIBC_2.2.5>
  194. 400a77: 48 8d 75 f7 lea rsi,[rbp-0x9]
  195. 400a7b: b9 01 00 00 00 mov ecx,0x1
  196. 400a80: ba 00 00 00 00 mov edx,0x0
  197. 400a85: 48 89 c7 mov rdi,rax
  198. 400a88: e8 33 fc ff ff call 4006c0 <setvbuf@plt>
  199. 400a8d: 90 nop
  200. 400a8e: 48 8b 45 f8 mov rax,QWORD PTR [rbp-0x8]
  201. 400a92: 64 48 33 04 25 28 00 xor rax,QWORD PTR fs:0x28
  202. 400a99: 00 00
  203. 400a9b: 74 05 je 400aa2 <init+0x4d>
  204. 400a9d: e8 fe fb ff ff call 4006a0 <__stack_chk_fail@plt>
  205. 400aa2: c9 leave
  206. 400aa3: c3 ret
  207.  
  208. 0000000000400aa4 <main>:
  209. 400aa4: 55 push rbp
  210. 400aa5: 48 89 e5 mov rbp,rsp
  211. 400aa8: b8 00 00 00 00 mov eax,0x0
  212. 400aad: e8 a3 ff ff ff call 400a55 <init>
  213. 400ab2: b8 00 00 00 00 mov eax,0x0
  214. 400ab7: e8 15 ff ff ff call 4009d1 <check>
  215. 400abc: b8 00 00 00 00 mov eax,0x0
  216. 400ac1: 5d pop rbp
  217. 400ac2: c3 ret
  218. 400ac3: 66 2e 0f 1f 84 00 00 nop WORD PTR cs:[rax+rax*1+0x0]
  219. 400aca: 00 00 00
  220. 400acd: 0f 1f 00 nop DWORD PTR [rax]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement