flag_gen() 호출
cmp 문에서 5를 넣어서 조건문을 참으로 유도해서 flag_gen()
을 호출하는 방법은 되는데
왜 b *main+325
으로 flag_gen()
을 바로 호출하면 프로그램이 바로 종료되는 건가요?
#reversing
작성자 정보
답변
2
kimht
공부벌레
안녕하세요, ch4n3ew0r!D님.
b *main+325
로 어떻게 flag_gen()
을 바로 호출하였는지 이해가 잘 가지 않아 추가적으로 설명을 달아주시면 정확한 답변을 드리는데에 도움이 될 것 같습니다.
우선, cmp 문에 5를 넣어서 조건문을 참으로 유도하는 대신에 프로그램 카운터를 직접 수정해서 flag_gen()
을 호출하는 경우로 생각하고 답변을 드리자면,
flag_gen()
내부에서 플래그를 생성할 때 카운터 값이 활용되기 때문에
카운터 값이 틀리면 올바르게 플래그가 생성되지 않으므로 올바른 카운터 값이 필요한 것입니다.
kimht
공부벌레
아니면, b *main+325
로 브레이크 포인트를 설정하였다는 의미일까요?
b *main+325
는 단순히 프로그램을 실행하는 과정에서 main+325
를 만나면 실행을 중단하라는 의미일 뿐, flag_gen()
을 바로 호출하라는 의미의 명령어가 아닙니다.
(카운터 값이 올바르지 않으면 main+325
를 만나지 않으므로 프로그램은 도중에 중단되지 않고 종료됩니다)