안 쓰던 블로그

리버싱-실행 프로그램 변경 본문

CTF/Reversing

리버싱-실행 프로그램 변경

proqk 2020. 8. 26. 14:55
반응형

.exe파일을 실행하면 계산기가 실행되는데, 메모장이 실행되게 하는 문제

 

일단 올리디버거로 열어준다

브레이크 포인트 걸고 F9로 여기까지 이동

push로 calc.exe문자열을 넣어주고 call을 해서 계산기를 실행시키고 있다

즉, call은 시스템 함수임을 알 수 있다

시스템 함수는 notepad.exe를 하면 메모장이 열리고 그런 의미다

 

우클릭-덤프에서 따라가기로 00406030 주소로 이동하면 calc.exe가 있다

이 부분을 notepad.exe로 바꾸면 될 것이다

 

바꾸는 건 아스키코드표에 HEX값 참고해서 바꿔준다

덤프 창에서 해당 부분 스페이스바 누르면 바꿀 수 있다

notepad.exe = 6E 6F 74 65 70 61 64 2E 65 78 65

 

근데 이 부분이 덮어쓰기를 하는 거라 지금은 문자열이 짧았지만 만약 문자열이 길거나 그런 경우에 다른 부분을 건드리게 되는 경우도 있는데,

건드린 데이터 영역이 프로그램의 구동과 관게없는 쓰레기 데이터 부분이라면 문제가 생기지 않치만 프로그램 구동에 중요한 값을 참조하는 부분은 건드렸다면 구동이 안될 수도 있다

그런경우에는 코드영역 자체에 어셈블리어를 수정해야 한다

 

 

다 바꾸고 파일 패치로 .exe저장

실행하면 메모장이 잘 뜬다

반응형

'CTF > Reversing' 카테고리의 다른 글

abex crackme 3번-keyfile채우기  (0) 2020.08.26
리버싱-분기문 우회  (0) 2020.08.26
리버싱-PE분석 및 수정  (0) 2020.08.26
리버싱-문자열 탐색  (0) 2020.08.26
레지스터와 PE구조  (0) 2020.08.26
Comments