[2024.08.19]
local1이 30, local2가 50
1D가 29고
프로그램은 현재 실행 흐름을 중단하고
0x404006 주소로 점프하여 그 위치에 있는 코드를 실행하게 된다
현재 코드에서 명령어를 조작하여 출력 값을 20으로 만드는 것을 연습한다
해당 부분을 JLE가 아닌 JG로 바꾸게 되어도 값이 20으로 출력된다
명령어 조작 후 출력된 값을 확인했을 때 20이라는 값이 나온 걸 확인할 수 있다
해당 부분에서 JLE가 아닌 JGE로 수정시켜도 값이 20으로 출력된다
위의 코드에서 CRACK을 진행하는데, 변경된 메모리 값과 코드를 드래그 후
오른쪽 마우스를 클릭하고 Edit에서 Copy to executable을 선택한다
그렇게 되면 선택한 화면들이 나열되고 그 각각의 화면에서 오른쪽 마우스 선택
이번에는 save file을 눌러 준다
해당 화면이 나오면 예를 눌러 주고
그런 다음 파일명을 지정하고 저장한 다음 파일을 열면 저장된 값을 부를 수 있다
파일을 부를 때 파일 형식을 소스가 아닌 any로 변경시켜야 화면에 보인다
crack을 위해 변경된 값의 파일을 각각 실행시켰다면 00403040의 메모리 주소에서 더블 클릭 후
ASCII 값을 내가 원하는 문자로 아무거나 TEST를 입력 후 다시 저장한다
저장한 파일을 열어서 실행하게 되면 값을 입력해 넣었던 TEST가 정상적으로 출력된다
강의 소감
아직 if문 계산에서 막히기도 하고, 명령어들을 익혀야 될 구간인 것 같다
오늘 강의를 들으면서도 이해가 안 되는 부분이 많았기 때문에
이 시간 외에도 남는 시간을 활용하여 강의 녹화본을 한 번 더 보고
해당 게시물은 추가적으로 수정해야 될 것 같다