binary값 변경 이후 프로그램 먹통
안녕하세요 해당 문제를 gdb를 이용해 실시간으로 데이터를 바꿔주어 nanosleep()을 우회하는 방식으로 풀었는데, ghidra를 통해서 opcode를 patch해서도 풀어보고 싶어서
위 사진처럼 jz를 jnz로 변경하고 Export Program -> Original File로 변경된 파일을 저장했습니다. 이를 리눅스 환경으로 옮겨서 기존 파일이 가지고있던 모든 권한을 다 주고 실행을 해보면
특정 부분에서 무한 루프가 걸려서 아예 메인 함수로 못넘어가고 있는거 같습니다.
의심되는 걸로는 이 부분 때문인거 같은데 이 부분도 마찬가지로 jump 부분을 다르게 변경해보아도 똑같더라구요.
혹시 이유를 아시는 분이 계실까요..?
#패치
#메인함수
#기드라
#바이너리패치
#무한루프
작성자 정보
답변
1
bincat
세계수
nanosleep을 실행하기전에 프로그램의 데이터 integrity를 검사하는 부분이 존재합니다!