08048db4 <puzzle_1>:
8048db4: push %ebp
8048db5: mov %esp,%ebp
8048db7: sub $0x38,%esp
8048dba: lea -0x24(%ebp),%eax
8048dbd: mov %eax,0x4(%esp)
8048dc1: mov 0x8(%ebp),%eax
8048dc4: mov %eax,(%esp)
8048dc7: call 804897e <read_six_numbers>
8048dcc: movl $0x1,-0xc(%ebp)
8048dd3: jmp 8048df9 <puzzle_1+0x45>
8048dd5: mov -0xc(%ebp),%eax
8048dd8: mov -0x24(%ebp,%eax,4),%eax
8048ddc: mov -0xc(%ebp),%edx
8048ddf: sub $0x1,%edx
8048de2: mov -0x24(%ebp,%edx,4),%edx
8048de6: add $0xbf,%edx
8048dec: cmp %edx,%eax
8048dee: je 8048df5 <puzzle_1+0x41>
8048df0: call 8048d93 <denied_nextstep>
8048df5: addl $0x1,-0xc(%ebp)
8048df9: cmpl $0x5,-0xc(%ebp)
8048dfd: jle 8048dd5 <puzzle_1+0x21>
8048dff: call 8048d73 <allow_nextstep>
8048e04: leave
8048e05: ret
0804897e <read_six_numbers>:
804897e: push %ebp
804897f: mov %esp,%ebp
8048981: push %edi
8048982: push %esi
8048983: push %ebx
8048984: sub $0x5c,%esp
8048987: mov 0xc(%ebp),%eax
804898a: add $0x14,%eax
804898d: mov %eax,-0x2c(%ebp)
8048990: mov 0xc(%ebp),%eax
8048993: lea 0x10(%eax),%edi
8048996: mov 0xc(%ebp),%eax
8048999: lea 0xc(%eax),%esi
804899c: mov 0xc(%ebp),%eax
804899f: lea 0x8(%eax),%ebx
80489a2: mov 0xc(%ebp),%eax
80489a5: add $0x4,%eax
80489a8: mov %eax,-0x3c(%ebp)
80489ab: mov $0x804917d,%ecx
80489b0: mov 0x8(%ebp),%edx
80489b3: mov -0x2c(%ebp),%eax
80489b6: mov %eax,0x1c(%esp)
80489ba: mov %edi,0x18(%esp)
80489be: mov %esi,0x14(%esp)
80489c2: mov %ebx,0x10(%esp)
80489c6: mov -0x3c(%ebp),%eax
80489c9: mov %eax,0xc(%esp)
80489cd: mov 0xc(%ebp),%eax
80489d0: mov %eax,0x8(%esp)
80489d4: mov %ecx,0x4(%esp)
80489d8: mov %edx,(%esp)
80489db: call 8048694 <__isoc99_sscanf@plt>
80489e0: mov %eax,-0x1c(%ebp)
80489e3: cmpl $0x5,-0x1c(%ebp)
80489e7: jg 80489ee <read_six_numbers+0x70>
80489e9: call 8048d93 <denied_nextstep>
80489ee: add $0x5c,%esp
80489f1: pop %ebx
80489f2: pop %esi
80489f3: pop %edi
80489f4: pop %ebp
80489f5: ret
사용자로부터 정답입력받고 확인하는건데
어셈블리어로 확인하니까 이코드나오는데
어떤식으로 돌아가는 로직인지 파악이안되ㅋㅋ
처음에 배열생성하고 read_six_numbers 콜해서 배열에 랜덤으로 6개숫자 넣어주는거 맞나?
그리고 나서 사용자가 입력한 값하고 비교하는건가?
그럼 배열에 저장되잇는값보려면 디버깅할때 어떤변수를 찍어봐야 하는거야?
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.