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() 내부에서 플래그를 생성할 때 카운터 값이 활용되기 때문에

카운터 값이 틀리면 올바르게 플래그가 생성되지 않으므로 올바른 카운터 값이 필요한 것입니다.

2024.03.21. 18:06
kimht
공부벌레

아니면, b *main+325로 브레이크 포인트를 설정하였다는 의미일까요?

b *main+325는 단순히 프로그램을 실행하는 과정에서 main+325를 만나면 실행을 중단하라는 의미일 뿐, flag_gen()을 바로 호출하라는 의미의 명령어가 아닙니다.

(카운터 값이 올바르지 않으면 main+325를 만나지 않으므로 프로그램은 도중에 중단되지 않고 종료됩니다)

2024.03.21. 18:08
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기